Spaces:
Running on Zero
Running on Zero
Commit History
26 days ago
-
Ground-slab strip also removes thick hollow or solid box slabs Running
Bobby +1: Claude Opus 5.5The webapp always generates at seed 0, and there the shadowed studio motorcycle PNGs (fx350, husqvarna) produce a ground box, not a 1-voxel plate: on fx350 the raw SS layers are 10 = 2304 (bottom face), 11-13 = 196-306 (walls), 14 = 2281 (top face), with the bike from 15. The plate rule found the bottom face, but took contact support from layer 11, the box's own wall ring; fill_holes turned it into the whole footprint, so nothing was removed. Before the plate rule, each candidate bottom layer now looks for a box: every layer up to MAX_BOX_LAYERS above it must span the bottom face's filled footprint, and the top face must be solid (>= SPAN_FRACTION of the bottom), a spike over the layer above, inside the lower LOWER_FRACTION of the object, and carry little (<= MAX_BOX_SUPPORT of the footprint). Contact support then comes from the layer above the top face, and the contact pad keeps only the top face. Car underbodies are rejected by the height ceiling and the support share. Dev, paired o…401a762
27 days ago
-
Strip drop-shadow ground slab from the sparse structure for shadowed RGBA inputs
Bobby +1: Claude Opus 5.5Studio PNGs with a soft cast shadow (carimagesapi) made TRELLIS build a one-voxel ground plate, sometimes with phantom wheels standing on it. When the input alpha carries a cast shadow, the SS occupancy is checked for a thin layer-count spike near the bottom; voxels in it outside the filled tyre-contact footprint are dropped before SLAT, plus small components that only touched the plate. Paired seeds on dev: motorcycle slab 8/16 -> 0/16 with 0 duplicates; car front34 singles slab 12/12 -> 1/12 (a fragmentary plate below the spike threshold). Shadow-free inputs and the 6 multi-view runs are untouched. Positional APIs unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>ce565eb -
Relicense bundled FlexiCubes headers to Apache-2.0 from nv-tlabs/FlexiCubes
Bobby +1: Claude Opus 5.5The vendored copy carried NVIDIA's 2023 non-commercial notice; NVIDIA now publishes the same code (tables.py identical) under Apache-2.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KXSkmXs3cT4eey3SxPAKoe1f390b8
-
Fix dark 3D AI exports: set metallicFactor so GLB materials are not fully metallic
Bobbytrimesh omits metallicFactor when unset, and glTF defaults it to 1.0, so every exported GLB was fully metallic. A metal surface has no diffuse response and the SkyeBrowse viewer has no environment map, so imported models rendered near-black.0f78268
27 days ago
-
Decode meshes with FlexiCubes instead of CPU marching cubes
Bobby +1: Claude Opus 5.52026-10-16 dev A/B (3dai-benchmarks/2026-10-16/mc-vs-fc): flat panels and crisp creases instead of staircase banding, cybertruck raw mesh watertight with 0 non-manifold edges, extraction 0.07-0.13 s vs 0.33-0.50 s. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KXSkmXs3cT4eey3SxPAKoe7eb6fa2 -
Run FlexiCubes extraction in fp32 outside autocast (fp16 decoder features crash index_add_)
Bobby +1: Claude Opus 5.5Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>433efb0 -
Bake GLB textures from 100 views (was 30)
Bobbye5f2a2b
-
Serve SEO head server-side, keep it out of embeds, skip theme redirect for crawlers
SkyeBrowse Developer +1: Claude Opus 5.5Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QPgCn7Hj1N72XftR46b9Zafec4e98 -
Name downloads skyebrowse-3d-model.glb / .stl
Bobby +1: Claude Opus 5.5The GLB downloaded as two concatenated timestamps and the STL as a random hex name. Each export now lands in its own unique folder under a readable file name, so concurrent visitors still never collide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016CzSDhiXWoUsZi79gdQq7ic479c65 -
Turn Generate 3D Model into a Download 3D Model button once the GLB is ready
Bobby +1: Claude Opus 5.5After a successful export the Generate button hides and a DownloadButton holding the materialized GLB takes its place; a failed export keeps Generate retryable, and every new generation restores it. Also settle the Pro replay test on the background pre-bake instead of racing it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016CzSDhiXWoUsZi79gdQq7i0ce4985 -
Pre-bake the GLB under the Pro allowance for embed runs
Bobby +1: Claude Opus 5.5Embedded visitors are quota-denied, so their iframe pre-bake always failed and the GLB click went through a second webapp fallback. The Pro preview run now starts the bake in a background thread that keeps the request's Pro token, so the GLB is ready (or in flight) when the visitor clicks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016CzSDhiXWoUsZi79gdQq7ibaf02dc -
Show the progress bar in the app.skyebrowse.com embed
Bobby +1: Claude Opus 5.5Embedded visitors are anonymous to ZeroGPU, so their run is quota-denied and the webapp backend executes it through run_pro_fallback. That event's progress never reached the iframe, which stayed on "Spinning up GPU cluster…". The Pro run now records its event id, and a parallel step in the iframe mirrors that event's progress into the preview and GLB bars. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016CzSDhiXWoUsZi79gdQq7icf8e3da -
Start the preview bar the moment the GPU worker begins
Bobby +1: Claude Opus 5.5The first preview progress event fired after background removal, so "Spinning up GPU cluster…" lingered into GPU time. Emit "Preparing image" first thing inside the GPU function. Also point two stale cache tests at 2048, since 1024 is now the default export size. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016CzSDhiXWoUsZi79gdQq7ie6290a7 -
Say Spinning up GPU cluster while waiting for the GPU
Bobby3656858 -
Reapply "Show Initializing GPU until the first GPU stage, then the progress bar"
BobbyThis reverts commit 01eb71cfbca5583cc5e6fea2df8af7ff909f906d.dc0cc96 -
Revert "Show Initializing GPU until the first GPU stage, then the progress bar"
BobbyThis reverts commit 33304a12d5a2ceb1952f981433996309e1f8c3a3.01eb71c -
Show Initializing GPU until the first GPU stage, then the progress bar
Bobby33304a1 -
Record ship + pre-bake findings
Bobby +1: Claude Opus 5.5Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>9b4a7a4 -
Ship core switches 1-4 and speculative GLB pre-bake
Bobby +1: Claude Opus 5.5- BAKE_SYNC_FREE, SLAT_FAST_ATTENTION, FAST_PREVIEW_RENDER, TEXTURE_OPT_FUSED_ADAM on; SS_FAST_ATTENTION and SS_UPSTREAM_SCHEDULE stay off so sparse-structure sampling matches prod - A hidden private .then after each generation flow bakes the GLB at the selected size in the shared gpu_task (visitor's request, so ZeroGPU bills the visitor); PREBAKE_GLB turns it off - bake_flight.BakeFlights keeps one bake per generation: a click joins an in-flight pre-bake, waits for it before baking a different size, and a new generation discards stale entries - GPU_CALL logs prebake=true; LABS_EVENT glb_done logs prebake=hit|joined; prebake_done logs ip_token Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>692adfc -
Record core-opt findings
Bobby +1: Claude Opus 5.5Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>dfd0e6e -
Gated core speedups: GPU preview render, SLAT/SS SDPA+batched CFG, sync-free bake, upstream SS schedule
Bobby +1: Claude Opus 5.5All switches default to production behaviour: - FAST_PREVIEW_RENDER (app.py): turntable frames + alpha compose stay on the GPU - SLAT_FAST_ATTENTION / SS_FAST_ATTENTION (pipeline): SDPA + one-forward CFG per stage - SS_UPSTREAM_SCHEDULE (pipeline): merge pipeline.json SS params (rescale_t 3, CFG interval) - BAKE_SYNC_FREE / TEXTURE_OPT_FUSED_ADAM (postprocessing): no host round trips in the bake Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>a6a6aa0 -
Label the GLB packaging step so the vehicle generator reads it as texturing
Bobby9c2d88f
-
Restore full texture fitting and default preview encode quality
Bobby150-step projected-init bakes left blotches and speckle on the cybertruck and s1000rr, and realtime VP8 visibly degraded the preview video; both saved under 0.5 s. fp16 SLAT and the shared ZeroGPU entry stay.e66e0ce -
Keep xformers attention and separate CFG passes until more seeds are compared
Bobby7374eb0 -
Record speed phase 1+2 findings
Bobby +1: Claude Opus 5.5Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>a78e035 -
Speed phase 2: one shared ZeroGPU entry for preview and bake
Bobby +1: Claude Opus 5.5spaces keeps a worker pool per decorated function, so alternating preview and bake functions always forked a fresh worker. gpu_task(mode, ...) now serves both as separate calls (preview stays first); the duration callable reserves by mode and texture size as before. GPU_CALL fn is gpu_task:preview|bake and reuse_report reads both old and new names plus bake-after-own-preview reuse. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>df74830 -
Speed phase 1: fp16 SLAT, SDPA flow attention, batched CFG, realtime VP8, bake init150
Bobby +1: Claude Opus 5.5SLAT sampled under fp16 autocast like upstream (the fp32 inner autocast forced fp32 kernels). Dense and sparse full attention route to SDPA while windowed decoder attention keeps xformers. Classifier-free guidance runs cond and uncond in one forward. Alpha WebM encodes with -deadline realtime -cpu-used 8. Texture bake starts from the projected average with 0.3x the steps at lr 3e-3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>093fc19 -
Log ZeroGPU worker reuse and GLB/STL click-through; add reuse_report
Bobby +1: Claude Opus 5.5Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>da58840 -
Record ZeroGPU progress streaming finding
Bobby +1: Claude Opus 5.5Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>126d7f6 -
Stream only explicit stage progress from generation and export
Bobby +1: Claude Opus 5.5ZeroGPU forwards progress from the GPU worker, so with track_tqdm the sampler's tqdm levels (Sampling 10/12) replaced the stage level and would have jumped the bar to ~83% within seconds of starting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>0ef3946 -
Show labelled progress bars for preview, GLB and STL generation
Bobby +1: Claude Opus 5.5A small client-side bar per operation eases toward 95% on measured timings, adopts real server stage labels/percent from Gradio's status tracker when they reach the browser, completes at 100% on success and hides on error, clear or a new generation. Hooks are preprocess js on backend deps (no js-only steps); API inputs/outputs unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>06d399d -
Install cumesh from a commit-pinned mirror with a hash check
Bobby77d8d96 -
Reserve 12s nominal for GLB bakes up to 1024px and record findings
Bobby +1: Claude Opus 5.5Measured in-GPU bakes after GPU decimation: 5.0-6.4s at 1024 (cold bonsai worst), 10.0s for bonsai at 1536, so 1536 keeps 18s. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>6a0219e -
Decimate GLB meshes on GPU with cumesh by default
Bobby +1: Claude Opus 5.5Same-state A/B on dev (1024px): bake 14.9s -> 4.1s on bonsai and 9.0s -> 3.5s on cybertruck against df79a87's postprocessing; pyvista's CPU decimation was 2.4-8.1s of it. Geometry stays within 0.14-0.19% mean Chamfer of the bbox diagonal and renders match. Drops the temporary legacy bench module. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>ed3d05d -
Bench: A/B the bake against the production module on the same state
Bobby +1: Claude Opus 5.5Temporary: bench_legacy_postprocessing is df79a87's postprocessing_utils, reachable only through /bench_bakes with legacy=true. Also record face counts after each bake stage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>9186740 -
Speed up original TRELLIS export paths and add a dev bake/sampler bench
Bobby +1: Claude Opus 5.5- STL: orient faces with a vectorized BFS-tree parity pass instead of trimesh's Python winding BFS (which ran twice: in validate and in fix_normals). Output is identical on consistent meshes. - GLB bake: fill texture gutters on GPU (edge dilation + pull-push) instead of CPU Telea inpaint; select outer faces and build the mincut graph without per-face GPU syncs; expose texture mode, render views, hole-fill views, gutter fill and decimation backend as to_glb knobs with per-stage timings. - MDT-dist: optional distilled flow models (TRELLIS_SAMPLER=mdt) loaded from Zanwei/mdt-dist at a pinned revision; default sampler unchanged. - TRELLIS_BENCH=1 adds dev-only /bench_generate and /bench_bakes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>8cee3f1 -
Mirror the cumesh cu128 wheel so builds stop following the upstream latest tag
Verified signature14f8e8f -
Mirror the cumesh cu128 wheel so builds stop following the upstream latest tag
Verified signatureff0508b
-
Validate the image and texture before requesting a grant
Bobby +1: Claude Opus 5.5Regenerate with no image or an invalid image set or texture size used to request a grant the webapp counted, then exit before the access check, stranding the use and leaving a settled entry for the next run. The grant step now receives the generation image and texture size and requests no grant for inputs the generation would reject. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>df79a87 -
Keep grants per nonce so queued and overlapping runs keep their grant
Bobby +1: Claude Opus 5.5Settled grants now live for an hour from settlement instead of expiring 180 s after the request, so a run that waited in the GPU queue still uses the grant the API already counted. Entries are keyed by nonce and settled by the nonce in the Space-signed receipt, so a second run in the same session no longer cancels the first. A granted entry that lapses before use is denied with a Space-signed refund, and every failed run in a session gets its own refund. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>7df6873 -
Enforce embed grants for a listed set of parent origins
Bobby +1: Claude Opus 5.5LABS_EMBED_GRANTS accepts 1 (every eligible embed) or a comma-separated list of parent origins, so production can require grants for localhost and dev parents before app.skyebrowse.com runs the grant-aware webapp. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014n5MPma6mGJT5Jyj8Y3ivAea9eede -
Run every grant natively first and refund failed generations
Paid and free grants both use the visitor quota first and reach the Pro fallback only on a ZeroGPU quota denial. A non-quota failure sends a Space-signed refund receipt to the parent so the free use is returned. Records the hard rule never to enable LABS_EMBED_GRANTS on production before the API and webapp handshake are live. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>574875b -
Gate generations behind webapp grants and a public free limit
Embedded generations ask the SkyeBrowse webapp for a signed grant before any GPU work when LABS_EMBED_GRANTS is set; shared grants defer straight to the Pro fallback with the grant nonce. Public browser visits get LABS_PUBLIC_FREE_LIMIT generations per visitor, then a sign-up link. Both are inert until their Space variables are set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>1ac53f4
-
Add an env-gated transparent preview WebM
BobbyTwo-pass Gaussian render (black and white matte) recovers alpha; the preview is served as a VP8-alpha WebM only when LABS_TRANSPARENT_PREVIEW is set, and the H.264 MP4 stays the default everywhere else.21cd56e -
Default the texture quality to 1024px
BobbyGLB_EXPORT_TEXTURE_SIZE 512 -> 1024, so the Space's own picker and any caller that omits texture_size start at 1024. Contract and GLB-cache pins updated.c083601 -
Record the production promotion and unify the project doc
Bobby3d5a3d3 -
Pin the LitModel3D wheel to the production Space artifact
Bobby5ec9f5f -
Restore the production Space title for the promotion source
Bobbyb7b2582 -
Raise SLAT guidance to the upstream reference and cap texture steps at 1000
Bobbye0ee6b2 -
Drive mesh faces and texture steps from the texture-quality setting
Bobbyb6a3ea1