The gallery was sorted by filename (DL3DV, iPhone, Mip-NeRF). Sort by
dataset prefix instead so Mip-NeRF 360 comes first, then DL3DV, then
our own captures.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A line of plain text links below the TTB-DVSM title: Project Page / Code,
opening in a new tab (the Space runs in an iframe). The arXiv link is
prepared but left out until ARXIV_URL is filled in.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The header keeps the TTB-DVSM title and the one-line description; the
spelled-out method name under the title is gone, which moves the app row
up by one line.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Share one token budget between the frames and width sliders
An upload may use at most the tokens of 64 views at 960 px. Moving one
slider past the budget lowers the other just enough to fit (client side),
so a lower width buys more frames, up to 128 at 672 px. The width step
goes from 64 to 32 so that 128 frames land on 672 rather than 640.
reconstruct_cb checks the real token count as well: an input taller than
16:9 has more tokens per frame, so it is given fewer, evenly spaced frames
and the status line says so. Values outside the slider ranges are clamped.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Use the general checkpoint for uploads; drop "MLP" from the title
Uploaded images and videos are now reconstructed with
DVSM-TTB-p8-general-960p. The gallery examples were baked with
DVSM-TTB-p8-DL3DV-960p, so both models are loaded and a live session
renders each artifact with the model named in its hf_variant.
APP_MODEL_DIR now points at a directory with one sub-directory per
variant (the nvidia/DVSM layout) instead of a single model directory.
Wording: the subtitle reads "Test-time Baking ..." and the tagline says
"TTB bakes the scene ...".
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Also repair dynamo's stale CUDA interface in ZeroGPU workers
With the handler assertion out of the way, torch.compile got as far as
inductor's autotuner and failed with "Both events must be completed before
calculating elapsed time". torch._dynamo.device_interface.CudaInterface
copies torch.cuda functions when it is imported; the app imports it in the
main process, where ZeroGPU has swapped in CPU-side dummies, so the worker
kept a no-op synchronize and timed CUDA events that had not finished.
Rebind those copies to the real torch.cuda functions in the worker, next
to the earlier fix, and log what was repaired.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Fix torch.compile AssertionError in ZeroGPU workers on torch 2.13
Rebuilding the Space picked up torch 2.13.0 from the ZeroGPU base image.
In a GPU worker, spaces 0.51.3 restores torch.cuda._maybe_exchange_device
to the _exchange_device builtin; torch 2.13's dynamo registers one handler
per function and fails on the duplicate ("Handler already registered for
<built-in function _cuda_exchangeDevice>"), so every viewer session died
during renderer warm-up.
Restore the real builtin at the start of both @spaces.GPU functions,
before anything compiles. No-op when the two are already distinct.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>