What a sparse model actually contains
COLMAP writes three files that reference each other. cameras holds the intrinsics — the lens. images holds one pose per photograph plus every 2D feature it detected. points3D holds the triangulated points, each with the track of photographs it was seen in. This tool opens all three, in binary or text form, from a folder, from loose files, or from a zip.
The 3D view
The sparse cloud is drawn in its own colours, with a wireframe frustum at every photograph's real pose. The frustum is built from the actual intrinsics, so a wide lens draws a wide frustum, and a small notch on the top edge shows the roll of each shot.
Two conventions trip up most home-made COLMAP viewers, and both are handled here. COLMAP is RDF — x right, y down, z forward — while three.js and glTF are RUB, so every position and direction is converted; skip that and the whole scene renders upside down. And the stored pose is world-to-camera, so a camera's place in the world is −Rᵀt, not t.
Reading the health of a reconstruction
- Mean track length — how many photographs saw each point. Three to four is normal for a handheld capture; under 2.5 means weak matching.
- Mean reprojection error — in pixels. Under about 1.5 px is healthy.
- Triangulation rate — observations divided by detected features. A few percent is normal, not a fault: most detected features never survive into a 3D point.
- Observations per image — an image with very few is barely contributing, and is the first candidate for the COLMAP Cleaner.
Everything runs in your browser; the reconstruction is never uploaded.
Tiny Online Tools







