Commit Graph
47 Commits
Author SHA1 Message Date
thunderheronightandClaude Opus 5.5 de6c632267 Split a long video into parts that become one room
Each part gets up to 500 image pairs; parts are cut losslessly with the original time stamps, converted
one after the other and put together as a room. The original stays (asked once more before deleting).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:02:44 +02:00
thunderheronightandClaude Opus 5.5 05fd105480 README (en/de) for the 0.3.0 preview; German README catches up with 0.2.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 20:46:33 +02:00
thunderheronightandClaude Opus 5.5 5c35fbb15c Mark 0.3 as experimental
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 20:02:52 +02:00
thunderheronightandClaude Opus 5.5 0e223a18fb Rooms in the web interface: room groups, homes made of rooms, nested display
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 19:10:56 +02:00
thunderheronightandClaude Opus 5.5 b9b60fa5a0 Rooms made of several recordings: combine, floor plan and groups (core, no UI yet)
A group can be a room (several recordings of one room); any other group may hold scenes and rooms and
is put together from the recordings, each in its room. Recordings of one room no longer count as
walking in to each other, which also hid a real walk-in from another room.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 19:06:23 +02:00
thunderheronightandClaude Opus 5.5 b5a9b5a0f1 Review fixes: group scale for floor plans, move waits for uploads, more tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.2.3
2026-10-14 18:41:34 +02:00
thunderheronightandClaude Opus 5.5 a1f9df0d1f Delete a single recording on the Frame or on this PC (trash)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:35:53 +02:00
thunderheronightandClaude Opus 5.5 bc3345a5aa Fetch several recordings from the Frame at once (all or a selection, one after the other)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:30:21 +02:00
thunderheronightandClaude Opus 5.5 daf6a17241 Scenes go to Gaussian XR's personal scenes folder; 1 M splats recommended for the Frame
Documents/GaussianXR is left alone by Steam updates. Old copies in the app's own Scenes folder
move over when copied again, or all at once from the On the Frame tab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:17:54 +02:00
thunderheronightandClaude Opus 5.5 e69961ad3e "On the Frame" tab; no backup copies on the Frame any more
The tab lists everything in Gaussian XR's gallery on the Frame with its preview image and what it
is (scene, tour, version, or not from Splat Workshop) and takes any of it off the Frame. Scenes are
copied straight into the gallery; copies left in Documents/GaussianSplats go along with their scene.
The tour dialog offers 0.75–2 M or an own size. 250 tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 14:40:16 +02:00
thunderheronightandClaude Opus 5.5 dfaa6a4a1c Versions: take a version off the Frame (its gallery folder and backup copy, nothing else)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 14:32:10 +02:00
thunderheronightandClaude Opus 5.5 7e64f039d6 Versions: several sizes and scales of a scene or tour side by side, each copyable to the Frame
For the Frame 0.75 / 1 / 1.5 / 2 M, for the PC all / 3 / 5 / 8 M, plus an own size; with a scale
also walkable in the original's size. Every version is a complete scene in <run>/versions/<key>/
and gets its own scene folder on the Frame, so e.g. 0.75 M and 2 M can be compared in the gallery.
The tour dialog offers 0.75–2 M or an own size for its Frame version. Measured frame rates are
shown as information only. 14 new tests (240 in all).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 14:15:44 +02:00
thunderheronightandClaude Opus 5.5 fb1c0ff515 0.2.3: scale for models (e.g. a model railway), for scenes and groups
Floor plan, sizes, scale bar and measuring tool in the original's size; the floor plan measures
walls and floors in the model's scale. Optionally Gaussian XR's worldScale is set when copying to
the Frame (not tested on the Frame yet). The floor plan no longer fails without walls.
13 new tests (226 in all).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 13:44:10 +02:00
thunderheronightandClaude Opus 5.5 fd8cd8dbb3 Tests, second review round: no desktop actions or silent exits from broken code; last gaps
- Fakes for kdialog, zenity and xdg-open; every test catches shutdown/os._exit
- Broken download, frame folder found on rename, nested values in non-text fields,
  Start over from the cancelled runs, the watcher's notification and tidying up
  (watcher split into watch_once for that)
- Fake pipeline refuses to continue an unfinished extraction, like the real one
213 tests, every mutation of both review rounds is caught.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.2.2
2026-10-14 13:22:52 +02:00
thunderheronightandClaude Opus 5.5 da00372c5a 0.2.2: tests hardened after an independent review; strict types for all text fields
206 tests instead of 57; every surviving mutation of the review is caught now. New fakes for
ffprobe, ssh/scp (the Frame as a folder) and notify-send; synthetic rooms with tracking noise,
scale error, turned splats, tracking turn and an adjustable walk-in. Fixed: wrongly typed
members/key/align/partition gave a 500 or were stored.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:52:56 +02:00
thunderheronightandClaude Opus 5.5 a8a6aa5188 0.2.1: automated tests and GitHub Actions; a cancelled job only ends with its last process
57 tests without GPU, recordings or Frame: fake pipeline, fake splat-transform and trash, and
synthetic rooms with a known error for putting rooms together. Found on the way: after cancelling,
the job counted as finished when systemd-inhibit ended, while splat.sh was still putting the
previous scene back – pid_alive now looks at the whole process group.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.2.1
2026-10-14 12:22:30 +02:00
thunderheronightandClaude Opus 5.5 49124eacc8 README: "No root, no jailbreak" badges and note, release badge
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:03:28 +02:00
thunderheronightandClaude Opus 5.5 4f339b2150 README: screenshots of groups and tours (example data, placeholder art)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:58:52 +02:00
thunderheronightandClaude Opus 5.5 b49ecd4cc5 Clean up all scenes of a group at once
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.2.0
2026-10-14 11:53:24 +02:00
thunderheronightandClaude Opus 5.5 ca6471c9f1 Group dialog: offer only scenes that are in no other group (one group per scene)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:50:46 +02:00
thunderheronightandClaude Opus 5.5 5e7720d5a0 0.2.0: changelog, "New in 0.2" in the READMEs; fix the "+ Group" button
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:48:17 +02:00
thunderheronightandClaude Opus 5.5 d2fbb3e81f Remove the combined floor plan button: plans of several scenes come from their group
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:43:34 +02:00
thunderheronightandClaude Opus 5.5 92b884c8a0 Groups of scenes and putting a tour together
- 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>
2026-10-14 11:38:04 +02:00
thunderheronightandClaude Opus 5.5 3628f71b9a Cancelled runs: list them, resume or start over, delete
Runs without a finished scene (and leftover logs) show up below the finished scenes with
how far they got and their size. Resume where the pipeline can continue (camera positions
complete), otherwise start over with the same settings; delete moves them to the trash.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:38:36 +02:00
thunderheronightandClaude Opus 5.5 1cfbcc4e01 Renaming a scene also renames its folder, files and log
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>
2026-10-13 13:32:53 +02:00
thunderheronightandClaude Opus 5.5 e44a9a1eac Scene cards: broom for clean-up, trash can deletes the scene
Deleting asks first and moves the scene folder, log and settings to the desktop trash
(recoverable); a copy on the Frame is not touched.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:27:39 +02:00
thunderheronightandClaude Opus 5.5 5d7325cdf1 Floor plan: draw the top view, not its mirror image
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>
2026-10-13 13:14:20 +02:00
thunderheronightandClaude Opus 5.5 a415b490e0 Start over: restore a hidden scene after a hard kill; keep it listed meanwhile
- 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>
2026-10-13 13:07:03 +02:00
thunderheronightandClaude Opus 5.5 1f44b29536 Review fixes: safer start-over, LAN and cross-site checks, robustness
- 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>
2026-10-13 12:55:20 +02:00
thunderheronightandClaude Opus 5.5 2ff2f92c46 Renaming a recording: protect runs that use it
The pipeline stores the recording's path and refuses to resume with another one.
Renaming is blocked while a run of the recording is unfinished; finished runs
remember it, and the UI offers only a fresh start for them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:37:25 +02:00
thunderheronightandClaude Opus 5.5 ca8e68e284 README: renaming and clean-up
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:34:13 +02:00
thunderheronightandClaude Opus 5.5 9ed3c5e581 Rename recordings and scenes; show disk usage per scene and clean up
- 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>
2026-10-13 11:34:03 +02:00
thunderheronightandClaude Opus 5.5 ea8e8dca8e Resume: restart an interrupted training instead of failing
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>
2026-10-13 11:21:16 +02:00
thunderheronightandClaude Opus 5.5 3c9bdff3c7 Default the target to "PC only" while the Frame is not reachable
Follows the Frame status until the user picks a target themselves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:20:05 +02:00
thunderheronightandClaude Opus 5.5 b63c644096 Setup guide: read the Spirula revision from the pipeline README instead of hard-coding it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:52:51 +02:00
thunderheronightandClaude Opus 5.5 a9a7c4e22f Add a step-by-step guide for setting up the Arcturus pipeline and Spirula
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:46:26 +02:00
thunderheronightandClaude Opus 5.5 363eee0afc Keep the PC from suspending while converting, copying or downloading
Jobs run under systemd-inhibit --what=sleep; KDE and GNOME respect the lock.
The lock belongs to the job process, so it ends with the job even if the server stops.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 09:26:25 +02:00
thunderheronightandClaude Opus 5.5 4cb73f70ce Configurable video player for "Open in video player"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 23:00:20 +02:00
thunderheronightandClaude Opus 5.5 a4c7cd43e8 Mark floor plans as experimental
Combining rooms has only been tested with two rooms so far.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:09:44 +02:00
thunderheronightandClaude Opus 5.5 e3c5b63bb3 README: floor plan screenshot (synthetic example home)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:08:07 +02:00
thunderheronightandClaude Opus 5.5 64aa770a3c Measuring: draw points even when the scale is unknown and say why
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:00:27 +02:00
thunderheronightandClaude Opus 5.5 ea1334b669 Floor plans: measuring tool
Click points on a floor plan to get segment lengths and the total distance,
with a live preview to the mouse pointer. The server sends the plan's scale
as X-Pixels-Per-Metre.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:55:57 +02:00
thunderheronightandClaude Opus 5.5 b668c693c4 Floor plans: per scene and combined, in two styles
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>
2026-10-12 19:53:07 +02:00
thunderheronightandClaude Opus 5.5 1ba541532e Docs: correct SSH setup on the Steam Frame, state platform support
SSH is enabled via Developer Mode and "Set User Password" (Valve docs),
not via passwd/systemctl. Linux only; macOS untested; Windows unsupported.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:23:45 +02:00
thunderheronightandClaude Opus 5.5 53542016fe Describe Splat Workshop as a GUI for the Arcturus Vision pipeline
The reconstruction itself is done by the Arcturus Vision pipeline and
Spirula Studio. Also drop the people/person examples.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:20:47 +02:00
thunderheronightandClaude Opus 5.5 1cfd3bd981 README: not just rooms, recording tips for objects and people, AI transparency note
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:17:47 +02:00
thunderheronightandClaude Opus 5.5 29b3acf5b9 Splat Workshop 0.1.0
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>
v0.1.0
2026-10-12 18:30:31 +02:00