Spaces:
Running on Zero
Running on Zero
Commit History
-
Merge UI migration and redesign: gradio.Server, dark 3D-studio shell, file-size telemetry, viewer overlay fix
c00b083 -
Fix Invalid URL crash in runPipeline and surface file sizes
new URL(artifactUrl) threw because the artifact URL is a relative path ("/gradio_api/file=..."). Drop the URL parse; instead return the file size from each @app.api() endpoint alongside the URL, so the UI can show real byte counts in the Scene tree and Telemetry grid.769d659 -
Redesign UI as a professional 3D studio shell
Replace the soft white card layout with a dark 3D-studio app shell inspired by Blender/Cinema 4D: 44px toolbar, 3-column workspace (input · viewport · inspector), and a 24px status bar. Key additions: - Top toolbar with logo, scene name (untitled.gsplat), Reconstruct button with keyboard shortcut hint, GitHub/Project links - Viewport with corner HUD: top-left stage badge, bottom-left scene name, bottom-right floating control cluster (reset / zoom +/-) - Inspector with collapsible Scene tree (per-stage status rows), Telemetry grid (gaussians, artifact/ply/viewer sizes, GPU and total time), live Pipeline log with timestamps, and Examples grid - Status bar with status dot (idle/running/error), GPU state, queue depth, stage progress, and attribution - Keyboard shortcut: R triggers Reconstruct - Viewport postMessage hooks for reset/zoom (iframe-side opt-in) - All numeric/telemetry uses JetBrains Mono with tabular numerals - Amber accent (#ffb547) on dark slate with subtle panel b…85f764f -
Fix viewer overlay state hiding the reconstructed iframe
After a successful reconstruction, the pipeline called setViewerState('idle') — which shows the "Ready / Upload an image" overlay on top of the iframe. The overlay covered the loaded 3D scene, making it look stuck. Add a 'ready' state that hides every overlay and reveals the iframe. Use 'ready' at both completion points (iframe onload and after HTML bundling) instead of 'idle'.e89850a -
Pass file URLs between pipeline stages instead of re-uploading blobs
The JS client was re-fetching each stage's output, wrapping it as a File, and re-uploading it to the next endpoint. The server-side preprocess then tried to move the resulting /gradio_api/file=... URL into its cache directory, which fails because that path doesn't exist on disk — hence the KeyError: 'path' on the second call. Switch the downstream endpoints (export_ply, export_viewer, export_html, viewer_html) to take plain string URLs and return {"url": ...} dicts. The JS client now passes each result's URL straight into the next call via plain string parameters, no handle_file() wrapping, no re-upload. reconstruct still uses FileData because it needs the user-uploaded bytes.3b8c22c -
Fix @app .api() endpoint name resolution
gradio_client compares "/" + config_api_name == api_name when looking up endpoints, so passing name="/reconstruct" caused it to register as config_api_name="/reconstruct" and the client searched for "//reconstruct". Drop the leading slash from each api() decorator name so the client can match /reconstruct, /export_ply, /export_viewer, /export_html, and /viewer_html correctly. Also remove the unused /examples endpoint.c386668 -
Migrate UI to gradio.Server with custom HTML frontend
Replace gr.Blocks demo with gradio.Server + @app.api() endpoints so the inference pipeline runs through Gradio's queue (concurrency, ZeroGPU, gradio_client). Serve a polished vanilla HTML/CSS/JS UI via @app.get("/") that talks to the backend through the Gradio JS client. - Split pipeline into /reconstruct (GPU), /export_ply, /export_viewer, /export_html, /viewer_html @app.api() endpoints - Custom UI: drag-and-drop upload, live progress, viewer iframe fade-in, toast notifications, example gallery, responsive layout - Preloads viewer template for instant first paint when results arrivebfb77f8
-
Update project and repository links
Verified signatureSync the latest Hugging Face demo branch and point the UI to the official zju3dv project page and GitHub repository.1db10da
-
Update example gallery
Verified signatureAdd the expanded curated example set and responsive aspect-aware gallery layout.1be1197
-
Shorten input guidance
Verified signaturebbef0dc -
Fix online gallery and panel layout
Verified signatureda3ef7c -
Add bedroom example and refine input guidance
Verified signature386744b -
Add meerkat demo and Node 22 runtime
Verified signaturea6825eb -
Sync floater filter tests
Verified signatureea5ee54 -
Sync Hugging Face runtime tests
Verified signaturee08fcbd -
Tighten ZeroGPU duration from measured runtime
Verified signature4507f2a -
Prefer warmed npm cache for viewer conversion
Verified signature5343446 -
Tune ZeroGPU duration and add performance timings
Verified signature6fcd530 -
Add floater filtering and staged downloads
Verified signaturee0eac06 -
Optimize viewer loading and expose download readiness
Verified signatureeeff2ec -
Deploy InfiniSplat ZeroGPU demo
Verified signature41ff959 -
initial commit
Verified signaturedc22079