diff --git a/LANEHANDOVER.md b/LANEHANDOVER.md index d081732..7191c46 100644 --- a/LANEHANDOVER.md +++ b/LANEHANDOVER.md @@ -2089,3 +2089,35 @@ machines, fridges). front-on fridge; the strict-overhead re-roll was physically correct and visually dead — a grey box, because the glowing bottles that identify a fridge are on its front. Kept the readable one. `glb_to_sprite.py --rake 60` encodes this. + +## SESSION — FABLE-SOLO-25 · 2026-07-22 + +**Branch:** main (solo, Fable) · **Gate:** lint ✓ build ✓ test ✓ (783 tests) · **Deployed** + +### The tileset now shares one camera +Nine chunky props re-run through the [GLB] route, 9/9 clean, unattended: +boothTable, barFridge, arcade, speaker, deck, dishwasher, crate, highTable, +discoball (23–42MB meshes each). Source images are deliberately clean PRODUCT +SHOTS, not top-downs — TRELLIS reconstructs best from a clear view of the +object, and the game's camera angle is applied at RENDER time by the fixed +rake. Separating "what the object is" from "how the game looks at it" is the +whole point of the route. + +### I had the rake backwards, and the mesh made it cheap to fix +First pass used a SHALLOWER rake for tall objects (55°) reasoning "show more +face". Wrong: a tall object already shows nothing but face. The arcade and the +speaker came out as front-on slabs. Corrected to **~76° for tall objects, 60° +for low/wide** and re-rendered — **without re-meshing**, because the GLB was +already on disk. That is the 3D route's real advantage in practice: re-angling +a prop costs seconds, where flux would need a fresh generation and a fresh roll +of the dice on camera. + +### Judge at ship size, not render size +The 512px renders of the fridge looked ambiguous and I nearly re-rolled it. +At 32x32 under the game's own point light it reads fine — venueMap LIGHTS do +half the identifying work (fridges carry a cyan glow, the arcade a blue +flicker). Recorded in SPACES.md so nobody burns farm time chasing a preview. + +### Verified in pane +Dance floor at game scale: disco ball has real mirror-tile detail, decks show +their platters, speakers read as cabinets, truss reads overhead. Screenshot. diff --git a/art_incoming/arcade.png b/art_incoming/arcade.png index bcb6e9a..8d54a27 100644 Binary files a/art_incoming/arcade.png and b/art_incoming/arcade.png differ diff --git a/art_incoming/boothTable.png b/art_incoming/boothTable.png index 1f47f1b..fb1d083 100644 Binary files a/art_incoming/boothTable.png and b/art_incoming/boothTable.png differ diff --git a/art_incoming/crate.png b/art_incoming/crate.png index c766362..bc1f97b 100644 Binary files a/art_incoming/crate.png and b/art_incoming/crate.png differ diff --git a/art_incoming/deck.png b/art_incoming/deck.png index 6d4f1de..ba5d996 100644 Binary files a/art_incoming/deck.png and b/art_incoming/deck.png differ diff --git a/art_incoming/discoball.png b/art_incoming/discoball.png index 7a52771..6478bc2 100644 Binary files a/art_incoming/discoball.png and b/art_incoming/discoball.png differ diff --git a/art_incoming/speaker.png b/art_incoming/speaker.png index cccb3ae..36274e7 100644 Binary files a/art_incoming/speaker.png and b/art_incoming/speaker.png differ diff --git a/docs/SPACES.md b/docs/SPACES.md index 08c00e3..3cb2955 100644 --- a/docs/SPACES.md +++ b/docs/SPACES.md @@ -134,7 +134,20 @@ read as one room. The mesh route renders every prop from one fixed ortho camera, and TRELLIS carries detail flux flattens: worn felt, real pockets, rails and legs, clean alpha. -**RAKE = 60°, and it is not negotiable upward.** The venue's props are +**RAKE by object HEIGHT — and I had this backwards first time.** +Low and wide (pool table, booth table, crate): **60°**. Tall (arcade, fridge, +speaker, anything standing): **~76°**. The instinct to *lower* the rake for tall +objects "so you see more face" is wrong — a tall object already shows nothing +but face; it needs to be steeper to read as a floor prop at all. A speaker at +55° is a featureless black slab. + +**Judge sprites at SHIP size, not render size.** A 512px render of a fridge from +above looks ambiguous; the same sprite at 32x32 under the game's own point light +reads fine, because the venue's LIGHTS do half the identifying work (the fridges +carry a cyan glow, the arcade a flickering blue). Do not re-roll a prop off the +back of the big preview. + +**The old guidance, kept because it is still true for low objects:** The venue's props are three-quarter top-down, not straight down. Re-rolled from directly overhead, a bar fridge is a grey rectangle — physically correct and visually dead, because the glowing bottles that say "fridge" are on its front. 60° keeps the top diff --git a/public/props/arcade.png b/public/props/arcade.png index b80ae55..8861fc5 100644 Binary files a/public/props/arcade.png and b/public/props/arcade.png differ diff --git a/public/props/barFridge.png b/public/props/barFridge.png index 89f10e2..5d3761a 100644 Binary files a/public/props/barFridge.png and b/public/props/barFridge.png differ diff --git a/public/props/boothTable.png b/public/props/boothTable.png index 16778e6..c80b6b5 100644 Binary files a/public/props/boothTable.png and b/public/props/boothTable.png differ diff --git a/public/props/crate.png b/public/props/crate.png index abae434..cd000f2 100644 Binary files a/public/props/crate.png and b/public/props/crate.png differ diff --git a/public/props/deck.png b/public/props/deck.png index 38935f8..f05fd13 100644 Binary files a/public/props/deck.png and b/public/props/deck.png differ diff --git a/public/props/discoball.png b/public/props/discoball.png index 8716bea..f07a461 100644 Binary files a/public/props/discoball.png and b/public/props/discoball.png differ diff --git a/public/props/dishwasher.png b/public/props/dishwasher.png index 42ed05f..379f7eb 100644 Binary files a/public/props/dishwasher.png and b/public/props/dishwasher.png differ diff --git a/public/props/highTable.png b/public/props/highTable.png index 3277798..1d7806d 100644 Binary files a/public/props/highTable.png and b/public/props/highTable.png differ diff --git a/public/props/speaker.png b/public/props/speaker.png index 1be4420..530cd82 100644 Binary files a/public/props/speaker.png and b/public/props/speaker.png differ