Audit -> normalize (16 GLBs + thumbs) -> web/assets/manifest.json (the contract Lanes B/C/D read) -> facade gap-fill. Step 4 facades generated locally on the M3 Ultra via MODELBEAST flux_local (FLUX.2-klein-4B / MLX on MPS): 23 skins, free, ~5.7s each, blank signboard, eyeballed, harvested, mapped to shop types. Every registry type now has >=3 facades (stall 2->4, closing the Lane A gap). Corner-lot -side walls tagged face:"side" with empty types so no shop front ever selects a windowless wall. manifest validates green. Still gated on John (both optional -- the game runs asset-free): publish the 16 GLBs to 3GOD (needs GOD3_PW), MeshGod hero props (~$2.70). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
94 lines
5.8 KiB
Markdown
94 lines
5.8 KiB
Markdown
# PROCITY facade skins — manual prompt pack (Step 4, route 2)
|
|
|
|
> Free route: paste these into the house image flow (Gemini / Flow) by hand. Route 1
|
|
> (`pipeline/gen_skins.py`) generates the *identical* set automatically for ~9¢ if the
|
|
> OpenRouter key is available. Either way, review, then save into `web/assets/gen/` under the
|
|
> **exact filenames** below and re-run `python3 pipeline/build_manifest.py` to catalogue them.
|
|
|
|
## LOCK — prepend to every prompt (the style + POLY bible)
|
|
|
|
```
|
|
1990s Australian op-shop aesthetic, slightly faded and worn, warm fluorescent lighting,
|
|
kitsch but loving, no text unless specified, no watermarks.
|
|
```
|
|
|
|
**Golden rules (why these match the existing 25):**
|
|
- **Blank signboard** above the entrance — the game overlays the shop name (never bake text in).
|
|
- **Flat front elevation, edge to edge** — it's a texture on a plane, not a hero shot. No angle,
|
|
no sky margin, no ground margin (except the wide/house variants which include a sliver).
|
|
- **Straight-on, overcast daylight.** Landscape framing (~16:9) for shopfronts.
|
|
- Downsize to ≤1024px before saving (`sips -Z 1024 in.png --out out.jpg`).
|
|
|
|
---
|
|
|
|
## Shop-type facades (registry gaps) → `facade-<name>.jpg`
|
|
|
|
Template: *"Straight-on photograph of a small single-storey Australian suburban shop facade,
|
|
**{desc}**, blank empty signboard above the entrance, glass shop window and a door, no text or
|
|
lettering anywhere, overcast daylight, flat front elevation filling the entire frame edge to edge,
|
|
nothing else visible."*
|
|
|
|
| save as | {desc} |
|
|
|---|---|
|
|
| `facade-toy-brights.jpg` | cheerful toy shop, primary-colour painted render, big low display window |
|
|
| `facade-toy-lolly.jpg` | old-fashioned lolly and toy shop, pastel candy-stripe painted front |
|
|
| `facade-book-barn.jpg` | a crammed secondhand book barn, tall dusty windows stacked with books, dark timber |
|
|
| `facade-book-scholarly.jpg` | a genteel antiquarian bookshop, dark green paint, gold-line window, brass fittings |
|
|
| `facade-video-neon.jpg` | a 1990s video rental store, glossy red and blue plastic signage band, poster light-boxes (all blank) |
|
|
| `facade-video-suburban.jpg` | a suburban strip video shop, cream brick, glass double doors, returns chute |
|
|
| `facade-milkbar-corner.jpg` | a classic corner milk bar, cream and green wall tiles, wide wrap-around window, ice-cream awning |
|
|
| `facade-milkbar-fibro.jpg` | a little fibro milk bar with a fly-screen door, a bench out front, faded soft-drink colours |
|
|
| `facade-milkbar-deco.jpg` | a streamline-deco milk bar, curved rendered corner, chrome trim, pastel mint paint |
|
|
| `facade-arcade-entry.jpg` | a covered pedestrian shopping arcade entrance, tiled archway, terrazzo floor, patterned ceiling |
|
|
| `facade-warehouse-roller.jpg` | an industrial discount warehouse shop, red brick with a big corrugated steel roller door, blank banner |
|
|
| `facade-warehouse-tin.jpg` | a corrugated-tin clearance shed shopfront, roller door half up, concrete apron |
|
|
| `facade-market-fruit.jpg` | an open fruit-and-veg shopfront, empty produce crates and astro-turf steps, striped awning |
|
|
| `facade-market-edge.jpg` | a row of humble market-square edge shopfronts under one shared posted verandah, mixed paint colours |
|
|
|
|
## Wide department-store anchors → `facade-<name>.jpg` (Lane B maps onto a WIDE plane)
|
|
|
|
Template: *"Straight-on photograph of a **WIDE two-storey** Australian department-store anchor
|
|
building facade, **{desc}**, a long blank signboard band across the top, rows of ground-floor
|
|
display windows and a central entrance, no text or lettering anywhere, overcast daylight, flat
|
|
front elevation filling the entire frame edge to edge, nothing else visible."*
|
|
|
|
| save as | {desc} |
|
|
|---|---|
|
|
| `facade-dept-anchor.jpg` | mid-century mustard-render and glass, cantilevered awning, grand central doors |
|
|
| `facade-dept-emporium.jpg` | a federation-era brick emporium, arched upper windows, ornate parapet |
|
|
|
|
## Corner-lot second faces → `facade-<name>-side.jpg` (the `-side` convention)
|
|
|
|
> **Corner-lot decision:** in v1 Lane B reuses the *front* facade skin on the side face (documented
|
|
> in `manifest.json` → `conventions.corner_lots`). These blank `-side` walls are the upgrade: a
|
|
> windowless side elevation so corner buildings don't show a duplicated shopfront down the lane.
|
|
|
|
Template: *"Straight-on photograph of the **plain windowless side wall** of an Australian shop
|
|
building, **{desc}**, no shopfront, no door, a faded blank rectangular ghost-sign area, no text or
|
|
lettering anywhere, overcast daylight, flat elevation filling the entire frame edge to edge."*
|
|
|
|
| save as | {desc} |
|
|
|---|---|
|
|
| `facade-brick-side.jpg` | painted red brick, a downpipe, one small high window |
|
|
| `facade-weatherboard-side.jpg` | cream weatherboard boards, a rain downpipe |
|
|
| `facade-render-side.jpg` | weathered pastel painted render with hairline cracks |
|
|
|
|
## Residential fronts → `facade-<name>.jpg` (lots with `use:'house'`)
|
|
|
|
Template: *"Straight-on photograph of a modest Australian suburban house front, **{desc}**, front
|
|
path and a bit of fence, no text anywhere, overcast daylight, flat front elevation filling the
|
|
entire frame edge to edge, nothing else visible."*
|
|
|
|
| save as | {desc} |
|
|
|---|---|
|
|
| `facade-res-terrace.jpg` | a single-fronted Victorian terrace, iron-lace verandah, dark brick, tiny front garden |
|
|
| `facade-res-weatherboard.jpg` | a modest weatherboard cottage, bull-nose verandah, picket fence |
|
|
| `facade-res-fibro.jpg` | a 1950s cream fibro house, hip roof, small steel-framed windows |
|
|
| `facade-res-brickveneer.jpg` | a 1970s brown brick-veneer house, aluminium sliding windows, carport edge |
|
|
|
|
---
|
|
|
|
**23 skins total.** After harvesting, `build_manifest.py` auto-catalogues any `facade-*.jpg`
|
|
(new shop-type ones get their `types` from the map in `build_manifest.py` — add the new keys
|
|
there so they attach to the right shop types; unmapped ones default to `["general"]`).
|