84 Commits
Author SHA1 Message Date
thunderheronightandClaude Opus 5.5 94b4cd431a 0.6.1: pick the upright picture on import; photo scenes from Spirula Studio are Z up
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.6.1
2026-10-17 15:34:40 +02:00
thunderheronightandClaude Opus 5.5 bfe3939754 Import: pictures per orientation and a guess which way is up
The dialog shows a small picture per choice of up, as the scene would stand
on the Frame, with the likely one preselected. Labels by symptom. Spirula
Studio's photo-only scenes are Z up, not Y down.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 15:21:28 +02:00
thunderheronightandClaude Opus 5.5 68d88e9a62 0.6.0 – import your own splats; the page updates again
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.6.0
2026-10-17 13:31:29 +02:00
thunderheronightandClaude Opus 5.5 c6aa71d7ed Page: the footer above the script – below it, setting up its link failed and the status updates never started (since 0.5.1)
A test checks that everything the script sets up on load is already in the page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 13:26:03 +02:00
thunderheronightandClaude Opus 5.5 887406dba4 Import: general wording in the script and tests, too
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 13:20:27 +02:00
thunderheronightandClaude Opus 5.5 5baa4b532f Import: plainer wording, not tied to one example
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 13:20:19 +02:00
thunderheronightandClaude Opus 5.5 8ebc020e7f Import dialog: the name field in the usual style
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 13:17:18 +02:00
thunderheronightandClaude Opus 5.5 6ba8f71c5b 0.6 (in progress): import your own splats as scenes (scripts/import.sh, dialog, tests)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 13:16:32 +02:00
thunderheronightandClaude Opus 5.5 7f297781c2 0.5.1 – update note and check, version and links at the bottom, copy progress, mesh download and Open in Blender
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.5.1
2026-10-17 13:02:25 +02:00
thunderheronightandClaude Opus 5.5 9ddfaf28bf Open in Blender: import once Blender's window is ready (at start-up the import was refused: context is incorrect)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:50:08 +02:00
thunderheronightandClaude Opus 5.5 e43201ab68 0.5.1 (in progress): after a mesh – download its files, open it in Blender, open the folder
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:44:48 +02:00
thunderheronightandClaude Opus 5.5 a227d6f451 0.5.1 (in progress): note when a newer release is out; how to update in the README
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:33:59 +02:00
thunderheronightandClaude Opus 5.5 2a9260dd42 CLAUDE.md: new scripts need --chmod=+x on the NTFS checkout
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.5.0
2026-10-16 23:21:53 +02:00
thunderheronightandClaude Opus 5.5 ec1f119e37 mesh.sh executable in git (the NTFS checkout ignores file modes)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 23:19:26 +02:00
thunderheronightandClaude Opus 5.5 e84f0836b3 0.5.0 – mesh export; README screenshots (example data, rendered in Blender)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 23:12:35 +02:00
thunderheronightandClaude Opus 5.5 6f46a2b94a Mesh: OBJ with Y up as Blender (and OBJ custom) expects – checked every format by importing it in Blender 5.2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 23:06:34 +02:00
thunderheronightandClaude Opus 5.5 d01571fadd 0.5: mesh dialog polish, changelog and READMEs; "1 version" in the job card
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:52:02 +02:00
thunderheronightandClaude Opus 5.5 24513b7483 WIP 0.5: mesh export (scripts/mesh.sh, scripts/upright.py), server job, dialog, tests
Spirula Studio meshes the splats inside the room (clean.py --outside); the result stands upright with the
floor at height 0 – Z up for OBJ/PLY/STL, Y up for GLB. Texture when the training images are still there.
Tested on real scenes (kitchen without images: colours per corner; textured on one with images) and with a
fake spirula mesh in the tests (579 passing). Not done yet: look at the dialog in the browser, changelog,
README, release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:13:17 +02:00
thunderheronightandClaude Opus 5.5 a4ef32f28a README: screenshots of the new versions dialog and the unfolded versions (example data, placeholder art)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 17:57:22 +02:00
thunderheronightandClaude Opus 5.5 cc6c96b242 0.4.2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.4.2
2026-10-15 16:43:38 +02:00
thunderheronightandClaude Opus 5.5 08f049c7be Unfold groups and versions at once; Frame listing renewed in the background; version upload off while the Frame is offline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:42:36 +02:00
thunderheronightandClaude Opus 5.5 376d197f47 Docs: thanks to @andzejsp for spotting the fixed pipeline (#2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:26:02 +02:00
thunderheronightandClaude Opus 5.5 e0f8e92c5d Docs: the pipeline from October 2026 (faad5aac4) fixes the PyAV 19 error; the pin is only for older ones
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:23:38 +02:00
thunderheronightandClaude Opus 5.5 20b1262fa9 0.4.1: clearer setup – config typos named, full path for splat-transform, PyAV 19 spotted
From issues #1 and #2:
- Unknown settings in config.toml (e.g. splat-transform instead of splat_transform) show up in the
  setup hints and in install.sh, with the right spelling.
- install.sh writes the full path of splat-transform into a new config or prints the line for an
  existing one: started from the desktop, the app does not see the shell's PATH.
- The setup guide's npm --prefix instructions match the path they tell you to configure.
- A pipeline not pinned below PyAV 19 is spotted before a run; a run failing on it says why.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.4.1
2026-10-15 16:06:01 +02:00
thunderheronightandClaude Opus 5.5 080e9d0b97 0.4.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.4.0
2026-10-15 15:20:17 +02:00
thunderheronightandClaude Opus 5.5 536340e468 0.4: tidier action bars – do, look, change; unfolding lists on their own line; one versions button
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:14:19 +02:00
thunderheronightandClaude Opus 5.5 6a62720554 0.4: versions by purpose, unfolding under their scene, openable in Spirula
- Dialog: for the Frame (one size, with measured fps) or for the PC (all splats); clean-up; optionally
  the same without; a preview of what will be made and what it replaces; one version per click.
- Names carry the clean-up strengths; As template takes a version's settings into the form.
- A cleaned PC version keeps its ply; /api/open opens a version in Spirula Studio.
- Versions unfold under their scene or tour, with Spirula, Frame, template and delete.
- The PC sizes 3/5/8 M are gone; measured frame rates updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:37:36 +02:00
thunderheronightandClaude Opus 5.5 7e1b7fecf8 0.4: changelog and READMEs for cleaning up versions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:21:14 +02:00
thunderheronightandClaude Opus 5.5 addb45e2c2 0.4: free space from the cameras' lines of sight – experimental, not wired in
A splat clearly in front of what an image saw (its SfM points; optionally the solid splats where SfM saw
nothing) sat in the camera's line of sight: free space. On a real living room only 0.4 % were found.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:13:17 +02:00
thunderheronightandClaude Opus 5.5 b44e4de901 0.4: clean-up sliders in the versions dialog, tests for clean.py and cleaned versions
- clean.py: the ceiling is the highest strong line where walls meet it (a cupboard top lies lower).
- The API takes the clean-up as a flat string (ceiling=0.5,haze=0.3), like every other field.
- tests/test_clean.py: a synthetic living room with thin ceiling, veil, cupboard top, bird cage,
  haze, a hole in the floor and things beyond the walls – each told apart by its colour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:00:23 +02:00
thunderheronightandClaude Opus 5.5 fca8e81422 WIP 0.4: clean up a scene (ceiling, floor, haze, outside) as part of its versions
scripts/clean.py and an optional clean-up field for versions.sh and /api/versions. No interface and no
tests yet; tried on a real living room (the ceiling as liked in the Studio; haze now by the smallest axis,
so the bars of a bird cage are no haze any more – not checked yet).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:00:23 +02:00
thunderheronightandClaude Opus 5.5 d34c68a553 CLAUDE.md: release checklist (notes keep the series' highlights), tests, scripts, file systems
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:58:03 +02:00
thunderheronightandClaude Opus 5.5 2ce2c5696b 0.3.1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.3.1
2026-10-15 12:04:24 +02:00
thunderheronightandClaude Opus 5.5 fccaf4afc6 Folder names without a trailing dot (NTFS refuses them)
Found moving the runs to an NTFS disk: the tour "Rundgang 12.10." (folder Rundgang-12.10.) was not copied.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:02:35 +02:00
thunderheronightandClaude Opus 5.5 3cf0e81aef Fixes from the review; release 0.3.0
- The watcher reports the next part (or putting the parts together) as running in the tick that
  starts it: no false standby notice between parts.
- Deleting an unfinished part deletes its piece of video in runs/.parts too.
- combine.sh keeps the floor plan's labels (plan.json).
- Tests: the chain through the watcher's tick (twice), one standby notice per chain, the own lock
  released before suspending, rooms of the same name, view-dependent colour matched, the preview plan
  of a home named by rooms; notifications are awaited instead of checked too early.
- 0.3.0: version, changelog, READMEs without the preview notice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.3.0
2026-10-15 11:41:49 +02:00
thunderheronightandClaude Opus 5.5 ae9655bd3d Standby when done; kept awake between jobs; renamed rooms get a new floor plan
- A checkbox on the running job: when everything is finished (parts, putting them together, copying),
  a minute's notice, then systemctl suspend; cancelling a job switches it off; a refused standby is
  reported. Our own lock is released first (it kept the PC up in a first try by hand).
- One sleep lock of the server spans the seconds between two jobs (parts of a long recording).
- A renamed room's floor plan and previews are drawn again with the new name.
- Rooms of the same name: "Kitchen (2)"; the combine dialog and job card speak of a room's recordings.
- README: filming tips for ceilings and light; 0.3 notes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:54:40 +02:00
thunderheronightandClaude Opus 5.5 58cc77d2f3 Rooms: no dark holes from recordings that had nothing there; one brightness for all recordings
A place only goes to a recording that really has something there (a quarter of the richest one's splat
opacity, over the place and its neighbours). Colours of all recordings are matched per channel from the
places they share (--colour match|keep, COLOUR for combine.sh).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 09:55:21 +02:00
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