Commit Graph

2 Commits

Author SHA1 Message Date
m3ultra
4ee4cf343b The door stops being 28 rectangles
The rope is where the player spends most of the night and it was still coloured
primitives behind a single street plate.

- kebabShop: the moral centre of the game (design §5) was three rects and the
  word KEBABS. The warm spill on the footpath stays procedural — it is the only
  warm light in the scene and it is what says the shop is open.
- front:<venueId>: one facade per rung of the ladder, so a promotion is visible
  from the footpath. ROOM also loses the procedural NOT TONIGHT sign, because
  "no sign. no socials." is its actual entry in data/venues.ts.
- Footpath: a street lamp, a bin, a waiting cab, and brass stanchions on the
  carpet. The cab is alpha'd back and depth-1 so it never looks clickable next
  to the kebab shop, which is.
- poster4..poster9, so four venues stop sharing one wall of three. Mangled
  lettering is correct on posters and always has been.

And a composition bug I put in this same wave: the per-venue street plates were
first prompted as "frontage", so The Royal's backdrop was a whole pub with its
own central door and the venue facade then sat on top of it — two pub fronts,
two doors. Voltage's original plate has always been a WALL, which is what a
backdrop has to be. Re-prompted all three as blank walls and regenerated. No
test would have caught that; I found it by looking at the screen.

127 sprites now, none missing.

Gate: lint clean, build clean, 821 tests passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 00:10:02 +10:00
m3ultra
7225eed349 Forty-eight sprites: every prop in every room is real art now
37 generated props -> 86. Every one of the 76 prop kinds placed across the four
venues has a sprite; nothing renders as a placeholder.

tools/gen/ is the pipeline: assets.py is the manifest (one entry per sprite —
prompt, ship size, rake, route), run_batch.py walks it, resumable, --workers N.
Cloudflare Workers AI first for its 10k free daily neurons, falling back to
MODELBEAST flux_local automatically. Today's allocation was already spent when
the run started — confirmed from Cloudflare's own error body rather than assumed
— so this batch is entirely farm-rendered.

The mesh tier is the part worth keeping: TRELLIS's defaults (1024_cascade + a
2048px metal PBR bake) cost 5-12 minutes each on a queue that runs one gpu job
at a time, which is four hours for a tileset. mb.FAST_MESH (512 + vertex baker)
lands in ~90s, and A/B'd at ship size the difference does not survive the
downscale to 32px.

Also adds the door's per-venue street plates, keyed on the venue id exactly —
'theRoyal', not a case fold, because props_import writes ':' as '_' and a
lowercased key looks for a plate nobody made.

Gate: lint clean, build clean, 821 tests passing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 21:14:33 +10:00