Add the Axiom Relay doors group (10 models) and a shared axiom-door-kit - #2
reposlayer wants to merge 5 commits into
Conversation
Ten of the sixteen briefs under docs/assets/reusable/architecture/doors had no model source. This adds all ten, built on one new support item rather than as ten independent props. axiom-door-kit fixes the group's public interface: a 1.06 x 2.00 m clear opening centred on the brief's 1.6 x 0.30 x 2.6 m envelope, so every leaf in the family hangs in the same doorway. It carries the shared portal plate and reveal ring, threshold, jamb strips, head lamp, control plate, hinge stack, and leaf construction, plus the lit RED-500 and CYAN-400 lamps the doors briefs ask for at a lower emissive tier than the cargo wave's. Modules: door-frame (the portal alone), blast-door, airlock-door, bunker-door, damaged-door, double-sliding-door, glass-commercial-door, hangar-door, industrial-shutter, floor-hatch. hangar-door takes the brief's 2.8 m double envelope; floor-hatch lays the same language flat on a 1.2 m deck plate. Both keep the group's clipped-corner outline and shell-over-graphite-over-ink value order. Every module was iterated against its reference plate with `bun run vibe:model preview`. typecheck, build, and the 49 existing tests pass; the registry now builds 179 items from 174 models. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR introduces the Axiom Relay “doors” wave by adding 10 new procedural architecture door modules under assets/prototypes/, all built atop a shared new support library (assets/prototypes/axiom-door-kit/). It also updates the scifi-kit registry build to include the new support item and publishes a changeset describing the wave.
Changes:
- Register
axiom-door-kitas a support item in the scifi-kit registry build. - Add a new
axiom-door-kitsupport library defining shared door envelope/clear-opening contract, portal/frame construction, shared leaf construction, and additional signal lamp materials. - Add 10 new door-family prototype models (frame-only, multiple leaf variants, shutter, hangar door, and floor hatch) that use the shared kit scaffold.
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| registries/scifi-kit/src/build.ts | Adds axiom-door-kit to the list of built support items. |
| assets/prototypes/axiom-door-kit/contract.ts | Defines the shared door envelope/clear-opening contract and shared sockets. |
| assets/prototypes/axiom-door-kit/frame.ts | Implements shared portal plate, reveal, threshold, jamb strips, head lamp, control plate, hinge stack, etc. |
| assets/prototypes/axiom-door-kit/leaf.ts | Implements shared leaf construction helpers (skin/panel/seam/handle/ribs/vision port/etc.). |
| assets/prototypes/axiom-door-kit/signal.ts | Adds additional lit signal lamp materials (incl. RED-500) without touching the existing cargo bundle. |
| assets/prototypes/axiom-door-kit/index.ts | Provides the shared door model scaffold, state handling, preview framing, and exports. |
| assets/prototypes/door-frame/model.ts | Adds the frame-only module built from the shared portal. |
| assets/prototypes/blast-door/model.ts | Adds a hardened swing-leaf blast door module using shared leaf + portal. |
| assets/prototypes/airlock-door/model.ts | Adds an airlock door module with vision port + seal bead and signal reads. |
| assets/prototypes/bunker-door/model.ts | Adds a manual bunker door module with wheel actuator assembly. |
| assets/prototypes/damaged-door/model.ts | Adds a damaged variant module (failed hinge, buckling, torn seam, fault signal behavior). |
| assets/prototypes/double-sliding-door/model.ts | Adds a bi-parting sliding door module with exposed head track. |
| assets/prototypes/glass-commercial-door/model.ts | Adds a glazed commercial door leaf module (stiles/rails/push bar/band). |
| assets/prototypes/hangar-door/model.ts | Adds the widened (2.8 m) hangar door module with bi-parting travel. |
| assets/prototypes/industrial-shutter/model.ts | Adds a rolling shutter module (slat curtain + barrel + guides). |
| assets/prototypes/floor-hatch/model.ts | Adds a floor hatch module (rotated language + gas strut + deck signal). |
| .changeset/architecture-doors-wave.md | Publishes a patch changeset describing the new doors wave and kit. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Review feedback on the doors wave. createDoorModel renamed only the root on a state change, so an exported or previewed open door was full of parts still claiming to be _CLOSED. Every animated model already in the library keeps its moving parts in step - a crate's lid becomes _LID_OPEN - so this follows that convention: the articulated groups are retagged on setState and on the first frame of travel, not only at the far end. Only a trailing _CLOSED or _OPEN is rewritten. The damaged door's leaf is _JAMMED and stays that way, because it is not a state this controller drives and overwriting it would claim the door closes. Also removes the unused Group import from industrial-shutter, which builds its curtain through the kit's part() helper and never constructs one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
# Conflicts: # registries/scifi-kit/src/build.ts
|
Conflict with Full explanation and a note on merge order in #5. 🤖 Posted by Claude Code |
Every batch appends its kit to one hardcoded array in this file, so two batches in flight always collide on that single line even though their kits have nothing to do with each other. That is what put four of these PRs into conflict the moment the interiors batch landed, and it would do it again for every batch after them. A prototype directory with no model.ts is a shared kit rather than a model, which the directory walk here already has to determine in order to collect the models. Registering those directly removes the hand-maintained list, so a batch that adds a kit no longer touches this file at all and there is nothing left to conflict on. Both lists are sorted, so the output stays deterministic. The registry builds the same items as before; only their order within the lib tier changes, since discovery is alphabetical where the list was chronological.
|
Updated: Details in #5. 🤖 Posted by Claude Code |
Absence of model.ts marks a shared kit, but it is equally true of a directory that is simply empty - one left behind by an abandoned model. Registering that published a support item with zero files, which the schema accepts and an install would silently resolve to nothing. Discovery now requires at least one TypeScript source, which is what actually distinguishes a kit from a leftover. Identical to the change on the other batch branches, so they still merge cleanly in any order.
PreviewsEvery model in this PR, rendered so you don't have to check out the branch and run the renderer. Individual previews (1024×1024)
Same deterministic rig for every model in the wave — that is what a contact sheet is for, since the defect that matters at pack scale is whether the props read as one catalogue rather than as individually plausible objects. Images live on the 🤖 Posted by Claude Code |











What this is
Ten of the sixteen briefs under
docs/assets/reusable/architecture/doors/have no model source inassets/prototypes/. This adds all ten.They are built on one new support item rather than as ten independent props, in the same spirit as
axiom-cargo-kit.The kit
assets/prototypes/axiom-door-kit/fixes the group's public interface:The lamps sit one emissive tier below the cargo wave's on purpose: a door lights an 850 mm jamb strip where a crate lights a 70 mm lens, and at 2.2 the strip clips to cream and the module loses the saturated colour the brief asked it to carry. Built in the door kit rather than added to
CargoMaterialsso the source hashes of the 164 existing models are untouched.Modules
door-frameblast-doorairlock-doorbunker-doordamaged-doordouble-sliding-doorglass-commercial-doorhangar-doorindustrial-shutterfloor-hatchVerification
bun run vibe:model preview.bun run typecheck,bun run build, andbun test(49 pass, 0 fail) all pass.bun run build:registriesnow adds 10 models and 1 support item to the registry — 190 items from 184 models against the currentmain. Stated as a delta rather than a fixed pair, because the absolute count moves every time one of these batches lands.axiom-door-kitis registered as a support item alongside the modular and cargo kits.Notes for review
finishModeldrops an articulated group whose parent is inside another articulated group — the merge destroys the intermediate group and the re-attach targets something no longer in the scene, silently. The bunker door's hand wheel and the floor hatch's gas strut both hit this. Both are fixed here by making them siblings, and the constraint is documented onDoorBuild.assemblies, but the underlying behaviour inpackages/.../finish.tsmight deserve a guard.🤖 Generated with Claude Code