Skip to content

Generative furniture that rests together without clipping - #74

Merged
pablostanley merged 1 commit into
mainfrom
furniture/generative-no-clip
Sep 28, 2026
Merged

pablostanley merged 1 commit into
mainfrom
furniture/generative-no-clip

Conversation

@pablostanley

Copy link
Copy Markdown
Owner

Furniture now varies from room to room, and pieces no longer pass through each other.

Generative models. Each non-computer kind has three authored designs, each with small seeded proportion changes: ladder, spindle and padded dining chairs; two-seat, three-seat and armchair sofas; banquet, dining and round pedestal tables; upright and lateral files; tall, narrow and low shelving with seeded binder runs; and more. Prototypes are cached per design (60 in all, 3.86 MB of vertex data).

No clipping. Section construction keeps a registry of placed solids (oriented part boxes, pillars, wall shelving). Every placement is checked against it, including props, chairs, table seating, piles and computers, and pillars and shelving check it too. Before this change, 100 sections had about 88 pieces inside pillars or shelving (for example a sofa impaled by a pillar) and 15 pieces overlapping each other. Now both counts are 0 by solid-level test.

Chair piles. Piles are solved from the chair's measured frame: an upright chair, then chairs turned upside down, resting seat-to-seat and then on upturned legs, with each backrest hanging clear. They used to drive each chair's leg through the seat below.

Arrangement. Chairs use seeded spots, pairs sit side by side or face each other, and wall pieces slide along the wall with slight misalignment. Free-standing tables gather matching chairs.

Model fixes. Office chair arms are bracketed to the seat instead of floating. Letter-block glyphs are no longer mirrored. Blocks and cartons rest on each other instead of overlapping.

Deliberate wall and ceiling embedding is unchanged.

Verification

  • npm test 237/237, including new tests: piles have touching support and no interpenetration across every design, style and 40 seeds (with a check that a 3 cm sink is caught), and generated sections have no furniture/furniture or furniture/fixture overlap.
  • eslint, tsc, and next build pass.
  • Section construction takes a median of 52 ms/section, versus 56 ms on base.
  • Checked in the real browser on tape 48: a five-chair pile, a table with chairs pulled up, the high-back office chair, the low bookcase, the letter blocks and the three-seat sofa.

🤖 Generated with Claude Code

Each non-computer kind now has three authored designs with seeded
proportion changes (ladder, spindle and padded dining chairs; two-seat,
three-seat and armchair sofas; lateral and upright files; and so on),
cached per design so the prototype inventory stays finite (60 models).

Placement keeps a registry of placed solids. Props, chairs, table
seating, piles, computers, pillars and wall shelving are only accepted
where their oriented part solids clear it, so sofas no longer land inside
pillars and pieces no longer interpenetrate. Chairs and wall pieces use
seeded positions and slight misalignment instead of fixed corner spots,
and free-standing tables gather matching chairs.

Chair piles are solved from the chair's measured frame: an upright chair,
then chairs turned upside down resting seat-to-seat and on upturned legs,
each backrest hanging clear. Office chair arms are bracketed to the seat,
letter-block glyphs are no longer mirrored, and blocks and cartons rest
on each other instead of overlapping.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
vackrooms Ready Ready Preview Sep 28, 2026 1:56am UTC

Request Review

@pablostanley
pablostanley merged commit 120c76a into main Sep 28, 2026
5 checks passed

This branch was successfully deployed

1 active deployment
Preview – vackrooms — 6384c27f Deployed Sep 28, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant