Skip to content

Add the Axiom Relay straight-wall group (10 models) and a loose-run axiom-wall-kit - #4

Open
reposlayer wants to merge 5 commits into
vibe-stack:mainfrom
reposlayer:feat/architecture-walls-batch-1
Open

reposlayer wants to merge 5 commits into
vibe-stack:mainfrom
reposlayer:feat/architecture-walls-batch-1

Conversation

@reposlayer

@reposlayer reposlayer commented Aug 16, 2026

Copy link
Copy Markdown

What this is

Ten of the twenty-four briefs under docs/assets/reusable/architecture/walls/ have no model source. This adds ten of them: the three run lengths, the four opening and service variants, an obtuse turn, a faceted arc, and a cast boundary wall.

The approach

Unlike the doors and windows groups, the wall system already existsbuildWallSection in axiom-modular-kit is the canonical Axiom wall author, and it is what the prefab shells are cut from. So nine of these ten modules are that function called with a length and at most one opening. They inherit the kit's thickness, datum heights, cassette rhythm, skirt, and stepped opening frames, which means a level builder can swap wall-with-door for a solid bay and the elevation still lines up.

The new assets/prototypes/axiom-wall-kit/ support item therefore owns almost nothing. It adds only what a loose run needs and a shell does not:

  • a footing, because inside a shell the wall starts at the interior floor datum and a loose run would otherwise begin 440 mm in the air;
  • end returns, because a shell hides its wall ends inside corners and a cut run shows its cassette layers in section;
  • a coping;
  • the shared capture rig, which reuses the modular kit's existing lighting values exactly — a wall photographed under its own lights cannot be compared to the shell it is meant to join.

Modules

Module Notes
wall-2-m The half-bay run: the offset between a 4 m module and a corner
wall-4-m One full structural bay; the group's reference length
wall-8-m Two bays as one section — butting two 4 m modules leaves two end returns back to back mid-wall, and a seam every 4 m reads as fencing
wall-with-door The kit's 1.56 m door bay, with the shared stepped frame and reveal
wall-with-window The kit's 1.9 m window on the shared 1.32 m sill datum
wall-with-vent Louvre bank cut as a real aperture, so the reveal runs behind the blades
wall-with-inset-panel A 120 mm service niche with a drilled backboard — a recess, not an opening
angled-wall Two 2 m runs at 135°, sharing a vertex post
curved-wall Eight chords on a 6 m radius; chord length derived from radius and facet count
low-concrete-wall Cast in bays — not the cassette system, see below

The one deliberate departure

low-concrete-wall does not use buildWallSection. The kit wall is a framed composite panel system — shop-made cassettes clipped into a structural frame. A boundary wall is cast concrete: poured in bays against formwork, with a construction joint per bay, a formwork arris, and a splayed foundation. Building it from cassettes would give a 1.1 m tall version of a building facade standing in a car park. The two share the grid, the palette, and the joint pitch; they do not share a construction. Flagging it explicitly in case you'd rather it were forced into the cassette system for consistency.

Verification

  • Every module was iterated against its brief with bun run vibe:model preview.
  • bun run typecheck, bun run build, and bun test (49 pass, 0 fail) all pass.
  • bun run build:registries adds 10 models and 1 support item to the registry — 190 items from 184 models against the current main. Stated as a delta rather than a fixed pair, because the absolute count moves every time one of these batches lands.

Note for review

This is the third of three architecture batches cut independently from main (doors, windows, walls). All three touch the one buildSupportItem list in registries/scifi-kit/src/build.ts, so whichever land after the first will want a trivial merge on that list.

🤖 Generated with Claude Code

Ten of the twenty-four briefs under
docs/assets/reusable/architecture/walls had no model source. This adds ten:
the three run lengths, the four opening and service variants, an obtuse
turn, a faceted arc, and a cast boundary wall.

Nine of the ten are cut from buildWallSection, the same function the prefab
shells use, so their thickness, datum heights, cassette rhythm, skirt, and
stepped opening frames cannot drift away from the shells they butt against.
A wall family that re-authored any of that would produce pieces that look
like the shells and do not line up with them.

axiom-wall-kit therefore adds only what a loose run needs and a shell does
not: a footing to stand on, end returns closing the cassettes, a coping, and
the shared capture rig, which reuses the modular kit's existing lighting
exactly so a loose wall can be compared to the shell it joins.

low-concrete-wall deliberately does not use the cassette system. A boundary
wall is cast in bays against formwork; building it from framed composite
panels would put a 1.1 m tall building facade in a car park.

Modules: wall-2-m, wall-4-m, wall-8-m, wall-with-door, wall-with-window,
wall-with-vent, wall-with-inset-panel, angled-wall, curved-wall,
low-concrete-wall.

typecheck, build, and the 49 existing tests pass; the registry builds 179
items from 174 models.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 16, 2026 04:24

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the new Axiom Relay straight-wall module family by introducing an axiom-wall-kit support prototype (shared wall authoring + capture rig + loose-run-only parts) and a set of wall modules built mostly via the existing buildWallSection author in axiom-modular-kit.

Changes:

  • Register the new axiom-wall-kit support item in the scifi-kit build pipeline.
  • Add the straight-wall module set (run lengths + door/window/vent/inset variants + angled, curved, and low concrete boundary wall).
  • Introduce axiom-wall-kit shared helpers for loose-run footing/end returns/coping plus shared preview rig and wall model wrapper.

Reviewed changes

Copilot reviewed 14 out of 14 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-wall-kit to support-item build list.
assets/prototypes/axiom-wall-kit/index.ts New wall-kit model/preview infrastructure built around buildWallSection and shared capture rig.
assets/prototypes/axiom-wall-kit/straight.ts Implements loose-run-specific geometry helpers (footing, end returns, coping, straightRun).
assets/prototypes/wall-2-m/model.ts Adds a 2m straight run wall module using the wall kit helpers.
assets/prototypes/wall-4-m/model.ts Adds a 4m straight run wall module using the wall kit helpers.
assets/prototypes/wall-8-m/model.ts Adds an 8m straight run wall module using the wall kit helpers.
assets/prototypes/wall-with-door/model.ts Adds a door-bay wall module using buildWallSection door opening spec.
assets/prototypes/wall-with-window/model.ts Adds a window-bay wall module using buildWallSection window opening spec.
assets/prototypes/wall-with-vent/model.ts Adds a vent wall variant by reusing window opening + adding louvre/blades/mesh details.
assets/prototypes/wall-with-inset-panel/model.ts Adds a service niche variant on a solid bay with additional inset detailing.
assets/prototypes/angled-wall/model.ts Adds an obtuse-corner module composed of two legs plus a shared vertex post.
assets/prototypes/curved-wall/model.ts Adds a faceted quarter-arc module composed of multiple chord segments.
assets/prototypes/low-concrete-wall/model.ts Adds a non-cassette cast boundary wall module (custom geometry).
.changeset/architecture-walls-wave.md Patch changeset entry describing the new wall group and approach.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread assets/prototypes/curved-wall/model.ts Outdated
Comment thread assets/prototypes/angled-wall/model.ts
vmlabss and others added 2 commits August 16, 2026 06:52
Review feedback on the straight-wall wave. Both are readability fixes; the
triangle counts of both models are unchanged.

curved-wall had an if/else whose two branches were identical - a leftover
from an earlier edit that made it look as though the arc's last facet were a
special case when it is not. Replaced with a single unconditional call, and
the comment now states the actual rule: a post at every facet's trailing end
gives one per joint plus one closing the far end, and facet zero adds the
one that opens the near end.

angled-wall's ANGLE held the deflection from straight (45 degrees) while the
docstring described the interior corner (135 degrees). Both figures were
right and the name was the problem, since the two are complements and it
would be easy to "correct" one into the other later. Renamed to TURN, with
the relationship to the dimensioned interior angle written down.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
# Conflicts:
#	registries/scifi-kit/src/build.ts
@reposlayer

Copy link
Copy Markdown
Author

Conflict with main after #6 landed is resolved — this branch has main merged in and reports MERGEABLE / CLEAN. It was the one-line buildSupportItem list in registries/scifi-kit/src/build.ts, resolved by keeping both support items rather than choosing one. Verified after merging: typecheck clean, bun test 49/0, build:registries succeeds.

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.
@reposlayer

Copy link
Copy Markdown
Author

Updated: build.ts now discovers support kits from the prototypes directory instead of listing them by hand, so batches no longer edit a shared line and these PRs can be merged in any order without conflicts. Verified by merging all four into main back to back — clean each time, typecheck clean, 49/0 tests, 223 items / 214 models combined.

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.
@reposlayer

Copy link
Copy Markdown
Author

Previews

Every model in this PR, rendered so you don't have to check out the branch and run the renderer.

walls

Individual previews (1024×1024)

angled-wall

angled-wall

curved-wall

curved-wall

low-concrete-wall

low-concrete-wall

wall-2-m

wall-2-m

wall-4-m

wall-4-m

wall-8-m

wall-8-m

wall-with-door

wall-with-door

wall-with-inset-panel

wall-with-inset-panel

wall-with-vent

wall-with-vent

wall-with-window

wall-with-window

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 previews branch of the fork (images only, never merged), so nothing here touches this PR's diff.

🤖 Posted by Claude Code

This branch has not been deployed

No deployments
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.

3 participants