Skip to content

Scenes

A scene is one file — something.tetravox.json — that remembers what you were looking at: which files were open, how every layer was set up, the crosshair, the panes on screen, each camera, your region edits, your measurements and the theme. It is a few kilobytes of readable JSON and does not contain your data; it points at the files on disk.

⌘S / Ctrl+SSave. A sheet the first time, then the same file with no dialog
⇧⌘S / Ctrl+Shift+SSave As…
⌘O, a drop, File ▸ Open Recent, or a double-click in the file managerOpen one

The first Save sheet opens beside your data, offering <the first dataset's folder>/<its name>.tetravox.json. The title bar tells you where you stand: a bare Tetravox means nothing open or nothing changed, a means unsaved changes, and a name means a scene file. The is deliberately eager — it appears for anything that could have changed the scene, including a camera you moved and put back. Saving again costs a keystroke; not being told costs the work.

Opening a scene replaces what is on screen. Dropping a scene and three volumes at once is the one thing not to do: the scene wins and the volumes land on top of it.

When the data has moved, Tetravox looks in three places in order — the path recorded relative to the scene file (which is what makes "copy the whole folder" work), the absolute path it had when saved, and the file's own name next to the scene. If a file is in none of them the Locate dialog lists what is missing, what was tried, and the fingerprint recorded for each; point it at the file and confirm. Nothing loads until you have answered, because half a scene with the wrong files in it is worse than no scene. You can Skip a file — its layers are left out and the rest opens.

The fingerprint (tvxfp1-…) identifies a file by its length and a digest of three windows of its bytes. It tells you whether the file you are pointing at is the one the scene was built on. It is not a security check, and it will not notice an edit deep inside a large file that missed all three windows.

Two things to know if you edit a scene by hand: a threshold with no bound is written as null, not Infinity (JSON has no infinity), and version is 2 — files written by older builds say 1 and are upgraded on load, while a version this build does not know is refused rather than guessed at.

Reopen last scene on launch is off by default, in Settings ▸ Scenes. It is off because reopening a scene reloads every file in it and a head mesh can be well over 100 MB. A file named on launch always wins over the remembered scene.

MIT licensed. macOS and Linux first; a Windows build is published too.