Skip to content

v1.0

Choose a tag to compare

@amariichi amariichi released this 23 Aug 05:35
· 13 commits to main since this release
6f86a01

The first release that does not carry a fork of the SuperSplat editor.

What you can do that you could not before

Look around a scene by moving, on a phone. /viewer.html uses the front camera to find where your head is and draws the scene from that point, so the screen behaves like a window onto something standing just behind the glass. Moving your head is what reveals the shape. One finger slides the scene within the frame, two fingers zoom, twist to turn it, drag together to tip it up to 55°.

Free-view a pair cross-eyed. Side-by-side output was parallel-view only, which cannot be fused on a display wider than your eyes. There is now a swap, and exports follow it.

Get a scene in about three and a half seconds instead of sixteen and a half. ml-sharp is kept warm in one process rather than started per image, for byte-identical output. A 360 scene went from about a hundred seconds to thirty.

What was wrong and is now fixed

  • The stereo was toe-in — two cameras rotated inward, which introduces vertical disparity growing toward the corners that eyes cannot fuse comfortably. It is off-axis now, measured at exactly zero vertical disparity.
  • 360 scenes were different every time. They were recentred on a bounding box measured from a random subsample, which also moved the capture point away from the eye. Two runs of one image gave centres of z=-20.1 and z=-4.6.
  • A 360 job with no merge tool reported success and showed nothing, with the explanation rendered inside the section that never appeared.
  • Generated scenes were deleted whenever the backend restarted. Since each upload already clears the data root, that only ever destroyed work.
  • Opening a local .ply deleted whatever was on the server — including whatever a phone was looking at — although the file never reaches the server at all.
  • Three stereo controls did nothing: Framing lock, Comfort lock, Comfort strength. The zero-parallax "Double click" mode never responded to a double click either; it is now Fixed distance, with a field.

New

  • An optional treatment for a sky overexposed to flat white, where the depth model has nothing to measure and a quarter of the sky can be placed at the subject's own distance — a white wall around the head. Measured on one photograph: 25.7% → 2.9%. Off by default, because it helps where that is the fault and mildly hurts where it is not.
  • The editor is laid out around the preview rather than as numbered panels.
  • CI on every branch and pull request.

Before you install

Two conditions are set by other people, not by this project, and both are in docs/THIRD_PARTY_NOTICES.md:

  • The ml-sharp model weights are released for research — "for the sole purpose of scientific research of artificial intelligence and machine-learning technology". Read LICENSE_MODEL before using the output for anything else.
  • The phone viewer downloads MediaPipe from a CDN when it starts, so that one page needs an internet connection and tells two hosts it was opened. Everything else runs on your machine.

Node 20.19+ is required (22 or 24 recommended). ml-sharp is installed separately; nothing is vendored here.