Spaces:
Running on Zero
Running on Zero
Commit History
9 days ago
-
Add a pronoun rule option: most recent object or last clause's subject Running
kwabs22 +1: Claude Opus 5.5translate_to_scene and extend_scene take pronouns="recent" (default, the user's choice) or "subject": the subject of the most recent clause, else the most recent object. In "the cat sat on the table. the apple lay beside it", recent gives the table and subject the cat. The rule is kept in the ledger, so extend_scene follows it unless given another; the reference question records which rule chose it. The UI has an "'it' means" selector. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>6287002 -
Paragraphs: extend_scene, references that bind to earlier items, and a bind change
kwabs22 +1: Claude Opus 5.5From QA round 10 (paragraph experiments) and the user's choice of defaults: - "the cat" when a cat already exists refers to it instead of making a twin, surfaced as "which cat? the one already mentioned". "a/an/another cat" always makes a new one. Fixes the twin-cat scene where the apple sat beside a second cat on the floor. - Pronouns (it, he, she, they, him, her, them) are words now: they refer to the most recent object (not the clause's own subject), surfaced as "'it' = the table?" with the alternatives. - extend_scene(ledger, sentence, ...) adds the next sentence to a ledger. - refine_scene takes {"id": "q10", "bind": "n1"} to rebind a reference and {"id": "n12", "bind": "n1"} to merge a duplicate, with a resolution note. Tested with a stub dictionary: one sentence with the cat twice, pronoun across sentences, rebind, another cat, duplicate merge, self-relation refused, pronoun with nothing before it, light question dropped. Also archives QA rounds 9-10. Co-Authored-…5b66adc -
Return papercraft pages as PNG pictures as well as SVG files
kwabs22 +1: Claude Opus 5.5QA: the A4 SVGs came back with mime_type None, so chat embeds, <img> and fetchers refused them and they were download-only. Each page is now also drawn with matplotlib (same pieces, labels, folds and tabs, 150 dpi) and returned as a gallery of PNGs; the SVGs stay for printing in mm. The UI panel shows the PNG pages instead of an inline SVG preview. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>2fe7d5d -
List both sides of every papercraft joint; archive QA round 5
kwabs22 +1: Claude Opus 5.5QA round 5 read the top cap's empty glues_to as a missing joint. Tabs sit on one side only and the top cap's are on band 7, so the joint was there but the report listed only outgoing tabs. Each piece now has glues_to and receives_from, with labels resolved to piece names (a split band "band 2" -> 2a, 2b; "band 1a start" -> band 1a). Tab labels are kept in the data even when too short to print. Apple 8x16: 22 pieces, none unconnected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>363fb28 -
Light unlit scenes with daylight, colour assets from thumbnails, hint at the next tier
kwabs22 +1: Claude Opus 5.5From the "green apple on the table" pre-push test: - No glowing verb meant no sun and a near-black picture. Unlit scenes now get soft seeded daylight, and the ledger asks "what light?" (default: daylight), the same way the implied ground is surfaced. Lit scenes keep their exact seeded configuration. - SimReady assets rendered grey because textures are skipped. The colour now comes from the mean of the 256 px thumbnail (backdrop left out), and the thumbnail is a public dataset URL instead of a local Space path. - base_color read trimesh's default dark grey (102) as a real colour, so every uncoloured mesh rendered murky; it now falls back to light grey. - "which <word>?" questions carry on_reject, e.g. 101 Objaverse tables behind the one SimReady table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>98ca16a -
Lay papercraft nets out on A4 pages, scaled to fit by default
kwabs22 +1: Claude Opus 5.5Each piece turns to its narrowest orientation and is shelf-packed onto A4 pages (one SVG per page). Strips longer than a page are split, so the model size is limited by band width and cap size rather than strip length. With height_cm blank the model is the tallest whose every piece fits a page (a cat-sized ellipsoid: 13.8 cm, was 4.8 cm before splitting long strips). The report adds real_height_cm, max_height_cm_for_a4 and fits_a4. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>e1d8e60 -
Add papercraft_rings: a printable net from the rings rung
kwabs22 +1: Claude Opus 5.5First piece of materialization. Each band between two rings unrolls exactly into one paper strip (triangles laid flat edge to edge; checked: edge-length error 6e-16, and a cylinder band matches 12 chords of its radius to 0.1 mm). Bands that would curl past ~120 degrees on paper are split into parts so no piece overlaps itself. Glue tabs sit on one side of every joint and name the piece they meet; tiny caps and tabs are dropped. New MCP tool papercraft_rings(ledger, item_id, rings, samples, height_cm) returns a pieces report and an SVG net in mm; the UI has a matching panel with a preview. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>92d401f -
Stop the ladder when a rung collapses in space, not just in faces
kwabs22 +1: Claude Opus 5.5QA round 3: a 384-face cat rung had 0.0017 m2 of area against 0.2233 on the 1000-face rung, and passed because the guard only counted faces. A rung now also ends the ladder when it is under half the original's size, or under half the previous decimated rung's area (the original is left out of the area test: welding away double-sided faces can halve area legitimately). Also archives verification round 3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>3de3640 -
Add a rings rung to the ladder: planar sections sampled at a fixed count
kwabs22 +1: Claude Opus 5.5A second simplification path aimed at papercraft and easy debugging: N horizontal sections of the mesh, each outline sampled at S angles from its centre, joined into bands with flat caps. Each band is one paper strip and each vertex is (ring, angle); the report lists every ring's height, centre and radii. simplify_item takes rings (default 8) and samples (default 16), also in the UI. Checked by hand: a 0.1 m cylinder gives radius 0.1 at every sample, a cone gives linearly shrinking radii. Limit: one stack per object, so branching shapes like a lamp merge into one envelope; it sits beside decimation, not in place of it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>af80e6b -
Fall back to vertex clustering when quadric decimation stalls
kwabs22 +1: Claude Opus 5.5Live check after e0f9b43: the cat now reaches 400 faces, but the SimReady desk lamp stayed at 22,228 (floor: true, a 522k-character inline page). Quadric decimation stalls on its sliver triangles at ~21k whatever the aggression or welding. When that happens, decimate snaps vertices to the finest grid that reaches the target. Tested on the lamp's real geometry: it reaches 20000/5000/1000/400/250/60, keeping the arms, shade and base, which quadric-after-clustering dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>65f605e -
Weld before decimating so stalled meshes reach their budget; stop repeated ladder rungs
kwabs22 +1: Claude Opus 5.5QA round 2 found decimation flooring far above target (4,893 faces in a 400-face page; ladder rungs 1000/250/60 all 1,141 faces). Asset files split vertices at UV and normal seams, so edges aren't shared and the decimator stalls. decimate now welds first and re-welds between passes while that still helps. A split-seam test mesh that stalled at 3,840 now reaches 400. The ladder labels rungs with their real face count and stops descending when a rung doesn't reduce. Inline meshes in the page state faces, budget and floor, so an over-budget mesh is visible instead of silent. Also archives QA verification round 2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>e0f9b43 -
Return the mini HTML as a URL by default to keep chat context small
kwabs22 +1: Claude Opus 5.5Inline geometry cost tens of thousands of tokens per tool call (QA P0-0). translate_to_scene, refine_scene and simplify_item take html="url" (default), "inline" or "skip" and return the page as a file plus its text, which is filled only for "inline". Models iterate on the ledger and picture and ask for the text when they build on the page. The UI preview reads the file, so it works in every mode. Vertices in the page are rounded to cm. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>f9a8763 -
Act on the 2026-10-30 QA pass: reroll walks the pool, clearer questions and errors
kwabs22 +1: Claude Opus 5.5- Reroll takes the next alternative (old choice to the back) instead of a seed-drawn slot, so repeated rerolls visit the whole pool and the seed only picks the configuration. - "which <word>?" options carry a short uid, so Objaverse candidates that share a category are distinguishable. - Rejecting a primitive raises a clear error before touching the ledger (generation is not wired up yet); docs say so. - Example sentence is now "the cat sat and the lamp glowed", which needs no primitives. - decimate hands fast-simplification writable copies and drops the old positional fallback, which newer trimesh reads as a percentage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>447d1d2
16 days ago
-
Return a mini HTML page with every picture; drop the Space's vision model
kwabs22 +1: Claude Opus 5.5The Space visualises and the chat discusses: translate, refine and simplify now also return a self-contained Three.js page with inline low-poly geometry for the calling model to build on. Removes describe_scene, the recognition check, the login button (which leaked an MCP tool) and hf_oauth. Also from the HuggingChat test: SimReady names no longer index lone modifiers ("sun" found a sun visor), check_words shows what each noun maps to, renders frame on the objects, light both faces, and the light glows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>7bb2fda -
Show datasets under the title; vision calls use the caller's token
kwabs22 +1: Claude Opus 5.5The public Space stores no token. Back-translation and recognition run on the signed-in user's account (HF OAuth, inference-api scope) or an MCP caller's Bearer token, so the owner's credits are never spent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>d7aa77a -
Add v1: English -> 3D translation Space with MCP tools
kwabs22 +1: Claude Opus 5.5Dictionary from SimReady and Objaverse assets (primitives only when chosen), serial ledger with freeze/refine, seeded configurations, simplification ladder, and back-translation. One Gradio app serves the UI and MCP. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>77b3711