- Scenes can be grouped (with a name); a group shows collapsed with its tour or expanded
with its scenes. Scenes recorded right after each other are suggested as a group.
- "Put the tour together" (scripts/combine.sh + combine.py) as a background job: full version
for the PC and a reduced one for the Frame, floor plan as preview, optional copy to the Frame.
- Corrections to choose: A Frame only, B all images (default), C + shift the overlaps,
D + shift and turn; borders through doors (walk in/out ignored) or nearest camera.
The group shows how well the overlaps match, and when its scenes changed since.
- Memory estimate before starting; the full version can be left out.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The scene keeps its folder on the Frame (frame_folder); an upload removes the files
under the old name there, so the folder holds one scene. A renamed folder can only be
started over, like a renamed recording. Renaming with the same name tidies up the folder.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The scenes use a Y-down frame; seen from above, x has to run right to left on screen.
Cached plans are drawn anew when floorplan.py changes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The server puts a scene from runs/.previous back when splat.sh was killed before it could
(SIGKILL after cancelling, power cut) and no run of that scene is going
- While a scene is computed again it stays in the list, marked, without actions
- No leftovers after success: empty .previous folder and the "previous" key are removed
- Scene cards knew too late that no Frame is configured (frame_configured from /api/ping)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Start over keeps the finished scene until the new one is done and restores
it (with its settings) if the run fails, is cancelled or never finishes
- LAN mode checks the client's real address, not only the Host header
- Requests from other websites (Sec-Fetch-Site) are refused, except opening the page
- Invalid requests get a 400 instead of a dropped connection; timeouts everywhere
- At most two floor plans drawn at once; no cache entries for unknown Frame names
- Server also checks the recording before starting; downloads never overwrite
- Metadata written atomically and under a lock
- Scripts run as one block, so updating them does not affect a running job
- Page: offline notice, no polling in background tabs, long names wrap,
thumbnails with quotes in the name, dialog padding click, contrast
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Recordings on this PC can be renamed. The original name is remembered, so the
date, the match with the Frame listing, thumbnails and check results stay.
- Scenes can be renamed: new name plate for the gallery, optionally copied to the Frame.
- Each scene shows its disk usage. The clean-up dialog deletes intermediate data
(training checkpoint, SfM working files) or the training images. Scene, floor
plan and Spirula viewer keep working; after deleting the images a run can only
be started over.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pipeline only reuses completed stages and refuses an incomplete training
directory. Remove it, so images and camera positions are reused and only the
training runs again.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Scenes from one recording session share the Steam Frame's tracking frame,
so their floor plans line up without manual alignment. scripts/floorplan.py
draws a colour top view with walls and the camera path ("pretty") or a
glowing point density ("classic"), rotated so walls are axis-aligned.
The web UI gets a "Floor plan" button per scene and a "Combined floor plan"
dialog; plans are cached and can be saved as PNG.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Web interface, tray icon and recording check for turning Arcturus Vision
Camera recordings from the Steam Frame into Gaussian splats and copying
them into the Gaussian XR gallery.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>