""" Large-scale / out-of-core reconstruction example. When your point cloud has millions of points (e.g. a full building or outdoor LiDAR scan), NKSR supports chunking: the scene is split into overlapping blocks, each reconstructed independently, and then fused into a single implicit field. """ from pathlib import Path from nksr_wrapper import NKSRMeshReconstructor, load_point_cloud, save_mesh ply_path = Path("assets/large_scene.ply") points, normals = load_point_cloud(ply_path) recon = NKSRMeshReconstructor( device="cuda:0", config="ks", chunk_tmp_device="cpu", # offload finished chunks to CPU RAM ) mesh = recon.reconstruct( points=points, normals=normals, chunk_size=50.0, # each chunk is a 50-unit cube overlap_ratio=0.05, # 5 % overlap for smooth transitions approx_kernel_grad=True, # faster gradient approximation solver_tol=1e-4, # slightly looser tolerance — huge scenes mise_iter=1, ) save_mesh("large_scene_mesh.ply", mesh.vertices, mesh.faces) print(f"Reconstructed {len(mesh.vertices):,} vertices, {len(mesh.faces):,} faces")