6 Commits
Author SHA1 Message Date
thunderheronightandClaude Opus 5.5 8b625b7498 Smooth surfaces and simple colours: two training options, on by default
Spirula's own options do not pass through the Arcturus pipeline, so splat.sh hands it
scripts/spirula-train.sh: with NORMALS=1 it estimates depth and normals first
(spirula geometry), with SH0=1 it trains with --sh-degree 0. The web interface
shows both as checkboxes with what they cost, counts the normal maps as progress,
includes them in the time estimate, cleans them up with the training images and
keeps a scene's choice on resume.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 18:15:34 +01: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 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 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 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>
2026-10-12 18:30:31 +02:00