STATION 00 — ENTRY
See the whole cave
before you swim it.
CaveViewer is a free 3D viewer built for cave divers and survey teams, made to open photogrammetry scans too large for anything else — from a few hundred megabytes up past 150GB — and fly through them smoothly on Windows, macOS, or Linux.
Inside an actual cave scan, fully textured — headlamp and ambient fill lighting both visible, minimap bottom-left, controls bottom-right.
Station 01
The Tool
Built for scans too big to open anywhere else
A multi-gigabyte cave scan will choke most viewers. CaveViewer splits the model into a 3D grid of spatial chunks and only keeps the chunks near your current position loaded — so frame rate stays smooth no matter how large the full system is.
Navigation
Fly through it like you're really there
Free-fly camera with WASD movement, mouse look, vertical movement, barrel rolls, and a speed boost — plus camera bookmarks (save a view with Ctrl+1–9, jump back with 1–9) for returning to a spot instantly.
Lighting
Headlamp, plus an ambient fill when you need it
Adjustable headlamp brightness for the cone in front of you, and a separate global ambient light to wash out shadows across the whole cave when you want to see everything at once.
Orientation
A minimap that knows where the passage actually is
Click anywhere on the minimap to jump there instantly — it lands you inside the actual passage near your current depth, not floating in empty rock.
Inspection
Mesh, texture, or flat-faceted shading
Toggle wireframe to inspect scan density and quality, toggle photo texture on or off, and switch between smooth and flat-faceted shading to see the raw triangulation of the scan.
Multiple maps
Switch caves without closing the program
Open a different map mid-session with one click. First-time imports show real progress in-window; maps you've opened before load instantly from a local cache.
Always current
Check for updates from the launch screen
One click checks for a newer version and installs it automatically — no separate downloads to track down by hand.
Any machine
Windows, macOS, and Linux, the same way
Download the build for your system and run it — no Python install, no terminal commands, no dependencies to track down. The controls and features are identical everywhere.
No size limit
Built for scans way past what fits in memory
Very large exports are read in a single streaming pass and written straight to disk in spatial pieces, so opening a scan never requires loading the whole thing into RAM at once — even when the file is far bigger than your computer's memory.
Tuning
Advanced settings for underpowered laptops and huge caves
An optional settings panel lets you cap how much RAM and GPU memory CaveViewer is allowed to use, how many background threads help load chunks, and how big those chunks are — useful if you're running on a laptop, or importing a scan on the larger end.
Customization
Set the void to whatever color helps you see
The empty space beyond the scan doesn't have to be black — drag the R, G, and B sliders in the Color panel to pick a background that makes wireframe or thin passages easier to read against.
Station 02
Compatibility
Bring your own scan
CaveViewer reads the formats survey and photogrammetry software actually export. Drop in a folder, and it figures out the rest.
Station 03
On Screen
Everything you need is one column, one corner
Every adjustable control — headlamp, global light, render distance, mesh and texture toggles, the background color picker, switching maps — lives in a single column anchored to the bottom-right corner. A live readout above the minimap shows your current frame rate and how many chunks are loaded, in real time.
The whole column, live — Mesh, Texture, and the new Shade toggle for switching between smooth and flat-faceted surfaces.
This full reference appears automatically while a map loads, and anytime after via the HELP button — including camera bookmark slots (save with Ctrl+1–9, recall with 1–9).
Station 04
Getting In
Install
Grab the build for your system — no Python install, no terminal commands to memorize, no dependencies to hunt down.
-
Download the build for your platform
From the Releases page, grab the
.dmgfor macOS (Apple Silicon), the.zipfor Windows, or the.AppImagefor Linux (matching your CPU — x86_64 or aarch64). -
Install it
macOS: open the DMG and drag CaveViewer into Applications. The first time it opens, go to Settings → Privacy & Security and allow it to run.
Windows: extract the zip anywhere, then double-clicklaunch.batinside the folder.
Linux: runchmod +x CaveViewer-*.AppImage, then launch it directly — no system install needed. -
Launch CaveViewer
You'll land on the splash screen with a Select Map button — or click Download Sample Maps if you don't have a scan of your own yet and want to try it out first.
-
Point it at your map
Select the folder containing your
.obj+.mtlor.glbfile. First time opening a new map, it imports and caches it once — every open after that is instant.
What you see on launch — click Select Map and pick your map folder, or try a sample map instead.
First time opening a new map only — every open after this is instant.
No scan of your own yet? Download a real cave system from the Sample Maps dialog and open it the same way.
Station 06
Field Notes
The dives behind the data
The scans CaveViewer opens come from real mapping expeditions. Here's footage from two of the systems the tool has been tested and used on.
Watch on YouTube
Wes Skiles Peacock Springs State Park — 3D Mapping Initiative
Peacock Springs, near Live Oak, Florida, is one of the longest underwater cave systems in the continental U.S. — nearly 33,000 feet of surveyed passage across two major springs and six sinkholes. This covers the effort to map it in 3D.
Watch on YouTube
Devil's Eye — Mapping Update, February 2026
Devil's Eye is one of the entrances into the Ginnie Springs cave system in High Springs, Florida, and one of the most-dived training cave systems in the world. This is a progress update from the ongoing effort to map it.
Station 07
Surface
Built by people who use it
CaveViewer started as a way to actually look at the survey data from real dives, not just collect it.