--- title: Point Cloud Sampling Strategies emoji: 🟦 colorFrom: blue colorTo: gray sdk: static app_file: index.html pinned: false --- # Sampling more points on the surface Four ways to turn `bigpointcloud_001.ply` (11,357 points, a scan of a motherboard) into a fixed-budget point cloud, each scored against the object's **true surface** (`motherboard.stl`, 477,957 triangles) rather than against the input cloud: | strategy | what it does | | --- | --- | | `random` | random subsample of the input cloud | | `voxel` | voxel downsample of the input cloud, voxel size bisected to hit the budget exactly | | `surface` | 200,000 Poisson-disk points drawn on the mesh surface, then voxel-downsampled to the budget | | `surface_pd` | Poisson-disk sampled straight onto the mesh at the budget | The page has a side-by-side WebGL viewer with locked cameras, metric tables at 2,048 / 4,096 / 8,192 points, and static renders. **Headline:** at a fixed budget, sampling the mesh does *not* beat plain voxel downsampling on coverage — the two are within noise of each other. What it buys is (a) no density ceiling, so the dense 200k resample reaches 4.3× better surface coverage than the input cloud can, and (b) exact accuracy and blue-noise spacing, since Poisson-disk points lie on the surface by construction instead of being voxel centroids that float off it. Generated by `compare_sampling.py` and `voxel_downsample.py` (Open3D 0.18).