From a capture to a splat you can walk through.
You capture in the field; the platform does the heavy lifting. A Mac coordinates and runs the light work, while the GPU-bound Structure-from-Motion and training stages dispatch to a CUDA worker. Processing is local, your footage stays on your hardware.
capture Capture on your iPhone or iPad, LiDAR paint, an optional 360° pass, or an aerial flight, sealed into one session.
ingest The Mac receiver lands the session and sorts footage into a bucketed (public / private) project.
extract ffmpeg v360: equirect 360° → pinhole rig views, operator hidden in the nadir.
sfm COLMAP / GLOMAP solve camera poses + a sparse point cloud on a CUDA worker.
train gsplat learns millions of 3D gaussians (hierarchical for neighborhood scale).
deliver Master .ply → .splat / .spz for web · VR · cinematic, fetched back to your phone.
You capture. The studio computes.
Your devices
capture
Your iPhone or iPad, with an optional 360° camera, captures the scene and seals it into one session, no laptop in the field.
The Mac
coordinator
The studio receives the session, sorts footage into public and private buckets, runs the light stages, and orchestrates the rest in one click.
The GPU worker
cuda
The heavy lifting: COLMAP / GLOMAP Structure-from-Motion and gaussian training on a CUDA GPU, dispatched with a plan you can inspect before it runs.
Where your data lives.
Capture and processing are local-first. Only the exterior models you choose to publish are streamed, and only after a reviewed allowlist clears them.
The concepts, briefly.
3D Gaussian Splatting (3DGS)
Instead of polygons or a NeRF, the scene is millions of tiny 3D gaussian particles, each with a position, scale, orientation, colour and opacity. They render in real time in a browser and look photographic, with none of the meshing artifacts of classic photogrammetry.
Structure-from-Motion
COLMAP / GLOMAP take the extracted frames and solve where each camera was, producing a sparse 3D point cloud. GLOMAP is a faster global mapper that drops in for neighborhood-scale sets.
Gaussian training
The trainer optimises millions of gaussians to reproduce every input view on a CUDA GPU. A hierarchical variant handles scenes too large for a single tile, like a whole street.
Pinhole rig reprojection
SfM wants perspective images, not 360°. Each equirect frame is reprojected into pinhole 'rig' views; shooting the rig at the horizon hides the operator in the nadir.
Capture QC
Before any expensive processing, footage is graded, blur, exposure clipping, auto-exposure drift, so bad clips are caught at capture time, not after an overnight train.
Metric scale
iPhone LiDAR and surveyed ground markers rescale the splat to true-world dimensions, so distances measured in the model are real distances.