not-tonight/public/props
m3ultra 91a27b56a4 A contact sheet, and the luminance ceiling the pipeline never had
127 sprites had been generated and about eight had ever been looked at. The
pipeline will happily render the wrong object, confidently and well-lit, and no
assertion can tell — barrier and flightCase are both "a grey box with edges" as
far as any test goes. tools/gen/contact_sheet.py puts every shipped sprite on one
page at integer upscale on the venue's own floor colour. It immediately showed
about twenty props reading as pale blobs.

First instinct was that the vertex baker had lost the albedo. That was wrong:
sat=0 on ashUrn, marbleSink and pillar is honest, because stainless and marble
and concrete really are grey. The fault was BRIGHTNESS. Props that read sit at
median luminance 23-123 (patioHeater 23, arcade 45, poolTable 53, cdj 68); the
blobs were 150-190. The venue is painted at ~35 under a 50% black sheet and props
are lit by the room's own LIGHTS, so a prop arriving at 180 doesn't read as a
bright object — it reads as self-illuminated. Every prop that worked before
worked by accident of subject matter; the first pale subjects exposed the gap.

props_import --dim scales RGB until median opaque luminance is <=110. Only ever
darkens, so anything already in band passes through untouched. Fixed 48 sprites
with no regeneration at all — the 512px Blender renders were still in
art_incoming, which is exactly why that directory is kept.

Also: poster7 shipped with 29% of its pixels and poster9 with 42%, because the
near-black-to-alpha pass was eating the dark half of a dark poster. Posters are
rectangular plates on a wall, so 4-9 now keep their background and fill the frame.

And cf_flux --probe was reporting EXHAUSTED on an account with a full 10,000
neurons: the probe prompt was "a grey square", Cloudflare's safety filter refused
it as NSFW, and every non-429 fell through to SystemExit. A health check that
can't tell "refused" from "empty" will eventually call a healthy system dead.

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

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 10:19:32 +10:00
..
arcade.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
ashtray.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
ashUrn.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
bainMarie.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
balustrade.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
banquette.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
barFridge.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
barrier.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
barShelf.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
beerUmbrella.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
binRound.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
bistroTable.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
boothLamp.png Prop batch 2: monitor, booth lamp, dishwasher, pool table, wet-floor cone, high tables, plants, and a real red-carpet plate for the door 2026-07-21 02:39:11 +10:00
boothTable.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
brokenBasin.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
buttBin.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
cableSnake.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
canStack.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
carpet.png Prop batch 2: monitor, booth lamp, dishwasher, pool table, wet-floor cone, high tables, plants, and a real red-carpet plate for the door 2026-07-21 02:39:11 +10:00
cctv.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
cdj.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
ceilingFan.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
champBucket.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
cloak.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
cocktailBar.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
crate.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
cubicleDoor.png Furnish the empty rooms: the dunnies get fittings, the bar gets fridges, the yard gets a heater 2026-07-27 13:29:55 +10:00
cueRack.png Furnish the empty rooms: the dunnies get fittings, the bar gets fridges, the yard gets a heater 2026-07-27 13:29:55 +10:00
dartboard.png Four venues, four rooms: the ladder stops being one map with different numbers 2026-07-28 19:51:54 +10:00
deck.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
discoball.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
dishwasher.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
distroBox.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
djPlinth.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
exitSign.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
fireExt.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
fireHose.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
firepit.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
flightCase.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
front_elevate.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
front_room.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
front_theRoyal.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
front_voltage.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
glassRack.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
glassStack.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
graffiti.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
handDryer.png Furnish the empty rooms: the dunnies get fittings, the bar gets fridges, the yard gets a heater 2026-07-27 13:29:55 +10:00
highTable.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
iceWell.png Furnish the empty rooms: the dunnies get fittings, the bar gets fridges, the yard gets a heater 2026-07-27 13:29:55 +10:00
jukebox.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
kebabShop.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
keg.png Four venues, four rooms: the ladder stops being one map with different numbers 2026-07-28 19:51:54 +10:00
liftDoor.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
loungeChair.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
manifest.json The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
marbleSink.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
mirror.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
mixer.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
monitor.png Prop batch 2: monitor, booth lamp, dishwasher, pool table, wet-floor cone, high tables, plants, and a real red-carpet plate for the door 2026-07-21 02:39:11 +10:00
mopBucket.png Furnish the empty rooms: the dunnies get fittings, the bar gets fridges, the yard gets a heater 2026-07-27 13:29:55 +10:00
noticeBoard.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
oldCouch.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
pallet.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
patioHeater.png Furnish the empty rooms: the dunnies get fittings, the bar gets fridges, the yard gets a heater 2026-07-27 13:29:55 +10:00
picnicTable.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
pieWarmer.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
pillar.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
plant.png Prop batch 2: monitor, booth lamp, dishwasher, pool table, wet-floor cone, high tables, plants, and a real red-carpet plate for the door 2026-07-21 02:39:11 +10:00
planter.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
plywoodBar.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
pokie.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
poolTable.png The [GLB] hop, closed: headless Blender ortho-render turns TRELLIS meshes into props 2026-07-27 13:37:36 +10:00
poster1.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
poster2.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
poster3.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
poster4.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
poster5.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
poster6.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
poster7.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
poster8.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
poster9.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
raffleDrum.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
rollerDoor.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
ropePost.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
ruleBoard.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
sandwichBoard.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
sinkRow.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
skylineCard.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
smokeMachine.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
speaker.png One camera for the whole tileset: nine chunky props re-meshed and ortho-rendered 2026-07-27 14:55:19 +10:00
stackF1.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
staffBartender.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
staffChef.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
staffCleaner.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
staffDj.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
staffGlassie.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00
staffSecurity.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
stampPodium.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
stanchion.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
street_backdrop.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
street_elevate.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
street_room.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
street_theRoyal.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
streetBin.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
streetLamp.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
strobe.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
subBass.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
tabBoard.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
taps.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
taxi.png The door stops being 28 rectangles 2026-07-29 00:10:02 +10:00
tex_brick.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_carpet.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_concrete.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_deck.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_looTile.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_parquet.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_paving.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_plaster.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_steel.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
tex_timber.png Materials, and the floor-cache bug that would have eaten the promotion 2026-07-28 21:56:20 +10:00
till.png The club gets dressed: full MODELBEAST art drop (20 sprites + street backdrop), scan-beam light show, colour-cycling dance grid, pool corner + furniture, present-race fix 2026-07-20 17:19:46 +10:00
topiary.png Twenty-six more: the rooms are furnished and the floors have grain 2026-07-28 23:18:59 +10:00
trough.png Four venues, four rooms: the ladder stops being one map with different numbers 2026-07-28 19:51:54 +10:00
truss.png Furnish the empty rooms: the dunnies get fittings, the bar gets fridges, the yard gets a heater 2026-07-27 13:29:55 +10:00
tvSport.png Forty-eight sprites: every prop in every room is real art now 2026-07-28 21:14:33 +10:00
urinal.png Furnish the empty rooms: the dunnies get fittings, the bar gets fridges, the yard gets a heater 2026-07-27 13:29:55 +10:00
wetFloor.png Prop batch 2: monitor, booth lamp, dishwasher, pool table, wet-floor cone, high tables, plants, and a real red-carpet plate for the door 2026-07-21 02:39:11 +10:00
wheelieBin.png A contact sheet, and the luminance ceiling the pipeline never had 2026-07-30 10:19:32 +10:00