Add the Axiom Relay street wave: axiom-street-kit and 10 streets-infrastructure props - #8
Open
reposlayer wants to merge 3 commits into
Open
Add the Axiom Relay street wave: axiom-street-kit and 10 streets-infrastructure props#8reposlayer wants to merge 3 commits into
reposlayer wants to merge 3 commits into
Conversation
…ve props First tranche of the street-level wave. The kit is the bulk of the work here; the models on top of it are comparatively cheap. axiom-street-kit is keyed to pedestrian datums rather than the building grid: a 125 mm kerb because that is what a foot steps up, 2.3 m headroom because that is what a person walks under, 900 mm for hip-height furniture. Sharing those stops a street assembled from these props reading as a set of individually plausible objects that do not belong on the same pavement. Poles are the backbone, since almost everything on a street is bolted to a vertical tube. The tube, its base plate, holding-down bolts, grout pad and bracket arm are authored once, which is why the lamp, the signal and the utility pole share a silhouette at distance exactly as they do in life. Lit surfaces come in two tiers. A signal is a small lens read at distance and takes the cargo wave's brightness; a sign is a large panel read close up and clips to white at that level. The tier follows what the surface is rather than being chosen per model. Models: utility-pole, industrial-lamp, neon-street-lamp, pedestrian-signal, recycling-bin. Includes the same support-kit discovery change as the four architecture branches, textually identical, so this branch merges cleanly alongside them. Without it axiom-street-kit is never registered and the registry fails schema validation on five dangling dependencies. typecheck clean, bun test 49/0, registry builds 185 items from 179 models.
Five more street props: traffic-signal, plastic-barrier, tree-planter, sewer-opening, planter. Also fixes a hole I opened in the support-kit discovery. Absence of model.ts is true of a shared kit, but it is equally true of a directory that is simply empty - one left behind by an abandoned model. This branch had exactly that, and it published a support item with zero files: the schema accepts it and an install would silently resolve it to nothing. Discovery now requires at least one TypeScript source, which is the thing that actually distinguishes a kit from a leftover. The street kit gains a foliage material. The cargo palette has no vegetation tier because it was authored for a depot, so the first tree came out the colour of sacking; FIELD-500 is the colour system's own planting token. typecheck clean, bun test 49/0, registry builds 190 items from 184 models.
reposlayer
marked this pull request as ready for review
August 16, 2026 23:56
Review of the batch as a contact sheet rather than one render at a time, which is what surfaced most of these. Two were geometry leaving its own envelope. traffic-signal's duct was drawn as a length centred on a guess and ran 1.05 m below the pavement; it is now solved from the two heights it spans. sewer-opening's hinge pin was laid on AXIS_X, so it ran across the gully and stuck 210 mm past a frame 660 mm wide; a pin runs with the side it hinges, which is Z. utility-pole's insulator spacing divided by `Math.max(1, index === 0 ? 1 : 1)` - always 1 - which collapsed the spread and left the lower arm bare. plastic-barrier's interlock socket was a dark block stood proud of the end wall, reading as glued on. A socket is a hole, so it is recessed now. pedestrian-signal's head was sized against itself rather than against the 180 mm pole and read as a matchbox on a broomstick. planter's clumps rested on the rim; they are now seated a third of their height into the soil line so they emerge from it. Poles gain a swollen base over the bottom fifth. A column of constant diameter reads as a rod whatever its thickness, and at 1:24 slenderness the lamps came out as broomsticks; real columns are thickest where the bending moment is. tree-planter's canopy is unchanged and still stylised. Scattering it into fourteen small masses was tried and reverted - it lost its silhouette entirely. Foliage wants a primitive this kit does not have, which is a kit change rather than a model change. typecheck clean, bun test 49/0, registry builds 190 items from 184 models.
Contributor
|
do you have some screenshots? |
Author
|
Yes — sorry, they should have been here already. My earlier attempt to post them on this PR reported success but never landed; the other four PRs got theirs. All ten props in this PR: Individually, full size
Same rig for every model, so the sheet is comparable side to side. 🤖 Posted by Claude Code |
Contributor
|
too simplified :/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.











First batch of the street-level wave: ten props from
reusable/streets-infrastructure, plus the kit the rest of the wave is built on. Sized to match the architecture batches so it reviews the same way; the remaining 18 in that family, and the E-District dressing after it, follow as their own PRs.What's here
assets/prototypes/axiom-street-kit/— the wave's kit, and the bulk of the work. Models on top of it are comparatively cheap, which is why it landed first.It is keyed to pedestrian datums, not the building grid:
Sharing those is what stops a street assembled from these props reading as a set of individually plausible objects that don't belong on the same pavement.
Poles are the backbone. Almost everything on a street is bolted to a vertical tube, so the tube, base plate, holding-down bolts, grout pad and bracket arm are authored once — which is why the lamp, the signal and the utility pole share a silhouette at a hundred metres, exactly as they do in life.
Lit surfaces come in two tiers. A signal is a small lens read at distance and takes the cargo wave's brightness; a sign is a large panel read close up and clips to white at that level. The tier follows what the surface is rather than being picked per model.
Models (10)
utility-poleindustrial-lampneon-street-lamppedestrian-signalrecycling-bintraffic-signalplastic-barriertree-plantersewer-openingplanterNote on
build.tsThis branch carries the same support-kit discovery change as #2–#5, textually identical, so it merges cleanly alongside any of them. It isn't optional here: without it
axiom-street-kitis never registered and the registry fails schema validation on five dangling@scifi-kit/axiom-street-kitdependencies. That failure is a decent argument for the change on its own — a hand-maintained list is a step every new kit can forget.Verification
typecheckclean ·bun test49/0 · registry builds 190 items from 184 models (+10 models, +1 kit against currentmain). Every model was rendered and inspected individually; previews are in the comments.Two things worth flagging
The canopy on
tree-planteris the weakest thing here. The kit's primitive is a chamfered box, and foliage wants something else — it now reads as stylised layered masses rather than a tree. It is honest for a low-poly kit and the planter itself (grating, guard, irrigation) is solid, but ifreusable/vegetation-terrainis on the roadmap that family needs a foliage primitive before it starts, not a hundred models built from boxes.The kit-discovery change carries a fix for a hole I opened in it. Absence of
model.tsmarks a shared kit — but it is equally true of an empty directory, and this branch had one. It 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. The same fix is on the four architecture branches, textually identical, so all five still merge in any order.🤖 Generated with Claude Code