diff --git a/E-progress.md b/E-progress.md index 55914dc..bef085d 100644 --- a/E-progress.md +++ b/E-progress.md @@ -22,8 +22,12 @@ other lanes' files was touched.* att × ~$0.16), well under the <$1 estimate; guardrail held. Costs logged in AUDIT R5. Last two primitive-only fittings (glass_case, magazine_rack) retired; new street `bus_shelter`. Manifest now 17 fittings + 9 furniture (26 GLBs). Contact sheet `docs/shots/laneE/props_fal.png`. -- **E2 — depot growth for v2:** ~8–12 library props serving C's dig / D's roster / B's windows. - *(next)* +- **E2 — depot growth: DONE (light, consumer-driven).** The v2 features are procedural (dig uses + generated sleeves, B's window shader + D's roster need no GLBs), so per Fable "no unconsumed + entries" I added two clear-consumer props: `street/bin` (council-bin → Lane B) + `fit/crate_stack` + (milk-crate-stack → Lane C floor piles/dig). Both 3k tris, re-normalized + published, verified + loading, `validate --depot` 0 err. Also **resolved Lane B's B3 ask** — novelty_record 26.5k→8k + via the E1 bake. Manifest now **18 fittings + 10 furniture (28 GLBs)**. Further growth on request. ## Round 4 (Fable) — ped decimation (gate-3 critical path) + asset fixes diff --git a/docs/LANES/LANE_E_NOTES.md b/docs/LANES/LANE_E_NOTES.md index b7a9589..c2f1ee6 100644 --- a/docs/LANES/LANE_E_NOTES.md +++ b/docs/LANES/LANE_E_NOTES.md @@ -31,10 +31,18 @@ The two remaining primitive-only fittings are now real GLBs on the depot (≤8k, - Both base-origin, verified loading in the vendored GLTFLoader. `manifest.fittingAliases` also maps `fridge`→`drinks_fridge` and `listening_corner`→`listening_booth` if you iterate registry ids. -### → Lane B: new street prop — `bus_shelter` -`procity_street_bus_shelter_01.glb` (manifest `furniture.bus_shelter`, 2.33×1.41 m, 2.4 m tall, ≤8k, -base-origin). Solid painted-steel shelter (back wall + roof + bench) for street dressing / D's roster -context — place at bus-stop-ish spots along the footpath if useful. Primitive-free; fail-soft as usual. +### → Lane B: new street props — `bus_shelter` + `bin` +- `procity_street_bus_shelter_01.glb` (`furniture.bus_shelter`, 2.33×1.41 m, 2.4 m, ≤8k, base-origin). + Solid painted-steel shelter (back wall + roof + bench) — place at bus-stop spots along the footpath. +- `procity_street_bin_01.glb` (`furniture.bin`, 0.57×0.68 m, 1.0 m, 3k) — red council wheelie bin, an + obvious town-furniture gap. Map `bin` in your furniture GLB-upgrade path if you want it on footpaths. +- **B3 resolved:** `novelty_record` is now **8k** (was 26.5k) via the E1 bake — re-measure the busy view. + All furniture GLBs base-origin + footprint-accurate; fail-soft as usual. + +### → Lane C also: `crate_stack` for floor piles / dig +`procity_fit_crate_stack_01.glb` (`fittings.crate_stack`, 0.71×0.72 m, 0.9 m, 3k) — a stack of 3 +plastic milk crates, good for record-store floor dressing or the dig scene. Optional; map a kind to +`'crate_stack'` if useful. ### → Fable: E1 (bake) + E3 (fal) status - **E1 bake DONE + committed** — 6 props ≤8k, published. Feeds C's re-measure + your v1.1 tag. diff --git a/pipeline/AUDIT.md b/pipeline/AUDIT.md index 6827803..7e6dc47 100644 --- a/pipeline/AUDIT.md +++ b/pipeline/AUDIT.md @@ -244,3 +244,20 @@ published, `validate --depot` 0 err. **Provenance: FLUX.2-klein-4B concept + fal Blender bake — synthetic, no third-party source** (Hunyuan output is model-generated geometry). Raw fal GLBs + concepts kept in gitignored `pipeline/.genprops/`. These retire the last two primitive-only fittings (glass_case, magazine_rack) + add a street bus_shelter. + +## Round 5 — E2: depot growth (consumer-driven) + +The round-5 v2 features are **procedural** (dig.js riffles generated sleeve art; B's window shader is +100% procedural; D's roster is spawn logic) — so no forced GLB needs. Per Fable "don't add manifest +entries no lane consumes", E2 is deliberately light: two already-synthetic depot props with clear +consumers, re-normalized to procity names + thumbs (both already ≤5k tris, metre-scale, base-origin): + +| new id | source | footprint / h | consumer | +|---|---|---|---| +| `street/bin` (`procity_street_bin_01.glb`) | `council-bin.glb` (thriftgod_hero, on depot) | 0.57×0.68 m, 1.0 m | Lane B street dressing (towns need bins) | +| `fit/crate_stack` (`procity_fit_crate_stack_01.glb`) | `milk-crate-stack.glb` (thriftgod_hero) | 0.71×0.72 m, 0.9 m | Lane C record-store floor piles / dig context | + +Both 3k tris, verified loading in the vendored GLTFLoader, published, `validate --depot` 0 err. +Provenance: MeshGod-generated (thriftgod_hero) — synthetic, web-ok. **Note:** also resolved Lane B's +B3 ask — `novelty_record` (was 26.5k, spiking the busy view) is now 8k via the E1 bake. No speculative +props added; further depot growth is available on request once C's dig / D's roster name concrete needs. diff --git a/pipeline/_props_results.json b/pipeline/_props_results.json index c74eea0..6bf0281 100644 --- a/pipeline/_props_results.json +++ b/pipeline/_props_results.json @@ -149,6 +149,40 @@ ], "thumb": "/tmp/fal_bake/thumbs/procity_fit_magazine_rack_01.png", "out": "/tmp/fal_bake/procity_fit_magazine_rack_01.glb" + }, + { + "src": "/tmp/council-bin.glb", + "file": "procity_street_bin_01.glb", + "out": "/tmp/e2_norm/procity_street_bin_01.glb", + "thumb": "web/assets/thumbs/procity_street_bin_01.png", + "tri_before": 3000, + "tri_after": 3000, + "size_m": [ + 0.569, + 1.0, + 0.683 + ], + "footprint": [ + 0.57, + 0.68 + ] + }, + { + "src": "/tmp/milk-crate-stack.glb", + "file": "procity_fit_crate_stack_01.glb", + "out": "/tmp/e2_norm/procity_fit_crate_stack_01.glb", + "thumb": "web/assets/thumbs/procity_fit_crate_stack_01.png", + "tri_before": 3000, + "tri_after": 3000, + "size_m": [ + 0.71, + 0.9, + 0.721 + ], + "footprint": [ + 0.71, + 0.72 + ] } ], "errors": [] diff --git a/pipeline/batch_e2.json b/pipeline/batch_e2.json new file mode 100644 index 0000000..c6b1934 --- /dev/null +++ b/pipeline/batch_e2.json @@ -0,0 +1,4 @@ +[ + {"src": "/tmp/council-bin.glb", "id": "bin", "category": "street", "height_m": 1.0, "tris": 5000}, + {"src": "/tmp/milk-crate-stack.glb","id": "crate_stack", "category": "fit", "height_m": 0.9, "tris": 5000} +] diff --git a/web/assets/manifest.json b/web/assets/manifest.json index a263734..f31d90b 100644 --- a/web/assets/manifest.json +++ b/web/assets/manifest.json @@ -711,6 +711,15 @@ "height": 1.2, "thumb": "thumbs/procity_fit_magazine_rack_01.png" }, + "crate_stack": { + "file": "procity_fit_crate_stack_01.glb", + "footprint": [ + 0.71, + 0.72 + ], + "height": 0.9, + "thumb": "thumbs/procity_fit_crate_stack_01.png" + }, "cash_register": { "file": "vintage-cash-register.glb", "footprint": [ @@ -801,6 +810,15 @@ ], "height": 2.4, "thumb": "thumbs/procity_street_bus_shelter_01.png" + }, + "bin": { + "file": "procity_street_bin_01.glb", + "footprint": [ + 0.57, + 0.68 + ], + "height": 1.0, + "thumb": "thumbs/procity_street_bin_01.png" } }, "fittingAliases": { diff --git a/web/assets/thumbs/procity_fit_crate_stack_01.png b/web/assets/thumbs/procity_fit_crate_stack_01.png new file mode 100644 index 0000000..7bb4496 Binary files /dev/null and b/web/assets/thumbs/procity_fit_crate_stack_01.png differ diff --git a/web/assets/thumbs/procity_street_bin_01.png b/web/assets/thumbs/procity_street_bin_01.png new file mode 100644 index 0000000..22ebabc Binary files /dev/null and b/web/assets/thumbs/procity_street_bin_01.png differ