iOS LiDAR Scanner
3D scanning and surface reconstruction on LiDAR-equipped iPhones and iPads.
- Role
- Developer
- Areas
- XR, Computer Vision, Apps, VFX

Recent iPhones and iPads carry a LiDAR sensor next to the RGB camera. We built a Unity framework on AR Foundation and ARKit that turns that sensor into a 3D scanner, for object scanning, AR visualization and 3D asset creation.
The pipeline
- Scanning. Point clouds are captured in real time, and each 3D point is projected into the camera image to pick up its color. There are two modes: freeform, with the device held in the hand, and turntable, with the device fixed and the object rotating, captured a step at a time.
- Processing. Modular filters clean the cloud: voxel-grid downsampling, statistical outlier removal, radius outlier filtering and bounding-box clipping, with a one-level undo.
- Spatial structure. The cleaned cloud goes into a generic adaptive octree, used for spatial queries, level of detail and meshing. An editor gizmo draws the octree's leaves for debugging.
- Reconstruction. Meshes come at three levels of detail:
- LOD0: a fast voxel-cube preview.
- LOD1: an optimized cube mesh with hidden faces culled.
- LOD2: a smooth surface from marching cubes over a voxel signed distance field, with color carried through.
- Visualization. The scan and the live mesh preview are overlaid on the camera feed.
Design
Each stage is its own component with a small public API: capture, processing, octree building and meshing can each be swapped or extended independently. Mesh generation runs asynchronously and raises an event when a result is ready, so the interface stays responsive while it works. The reconstruction architecture is designed to take Poisson reconstruction or a learned mesher as another level of detail.
Scanning real objects into usable meshes connects to our capture work in CameraSmartPlate and to the asset side of b2c3d.



