Files
security-game/docs/joke-shop-map.md
T
zwitschi 8cacd510bf
Full build / Import + headless tests (push) Successful in 47s
Full build / Full desktop build + optional release (push) Skipped
Record the rounded-corner simplification and close the local-map QA/exit
2026-11-04 09:58:47 +01:00

123 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# The Joke Shop — Sunset Strip map notes
The game's second venue is a fictional comedy club called **The Joke Shop**. Its
block, canopy, blade sign, entrance and hillside are based on the real Comedy
Store at **8433 Sunset Blvd, West Hollywood, CA 90069**.
The club name and the game's guest stories are invented. The building is a
stylized reconstruction, not a survey-accurate model: the playable frontage is
27 m, while the real parcel is much deeper and contains several rooms that the
game does not enter.
## Real site
| Item | Reference |
| --- | --- |
| Address | 8433 Sunset Blvd, West Hollywood, CA 90069, United States |
| Real venue | The Comedy Store (comedy club and theatre) |
| OpenStreetMap | Way [`428854155`](https://www.openstreetmap.org/way/428854155), centroid 34.095265, -118.373965 |
| OSM tags | `amenity=theatre`, `building=commercial`, `height=12.2`, `start_date=1940`, `wikidata=Q3520350` |
| Footprint | OSM polygon bounding box about **47.1 m × 41.2 m** across the club and rear parcels |
| Street | Sunset Boulevard, a major east–west arterial on the Sunset Strip |
| Setting | Dry Hollywood Hills directly behind the club, with houses and palms rising above the roofline |
The building began as **Ciro's**, a 1940 nightclub; it became The Comedy Store
in the early 1970s. Its street front is a low black hall under a deep,
signature-covered canopy, with the circular blade sign above the roof, red
curtains along the frontage and the main entrance set toward the west end. The
hillside houses behind it are part of the silhouette from the sidewalk.
## Measured proportions (vision-extracted from the local frames, 2026-11-03)
`tools/describe_image.py` was used to read the gitignored `tmp/research/comedy-store/` frames
(the harness cannot display images directly). Two frames disagreed on crop-dependent details, so
the ranges below are the reconciled reading; the game spec is a deliberate compression.
| Feature | Reference reading | Game spec | Reconciliation |
| --- | --- | --- | --- |
| Street frontage | ~35–40 m wide, parapet ~5.5–6 m (≈6:1 width:height), rounded corner | 27 m × 6.0 m | Facade height lowered 8.4 → 6.0 m (2026-11-03); width still compressed for the playable block |
| Canopy | ~4–4.5 m projection, tilts forward noticeably | 4.9 m at 11° | Close; the forward pitch is confirmed |
| Fascia band | black, 30–40 cm deep, marquee-bulb string | black `SignatureCanopy` fascia + `CanopySignatures` + bulbs | Matches; signatures now white |
| Circular blade sign | ~3–4 m diameter white disc, red serif wordmark, pole-mounted | 3.9 m white disc, black wordmark, pole | Diameter matches; the game wordmark is black (fictional `THE JOKE SHOP`) |
| Red curtain bays | 3–5 visible depending on frame, floor-length, tied-back mid-bay | 7 tied-back drapes | Count is crop-dependent; 7 is a readable stylization, not a defect |
| Entrance | west end, recessed at the rounded corner | west end at x = -8.8, recessed | Matches |
| Roofline | taller dark mass rises behind the right half | `RoofPlant` box at x = 5.5 | Matches |
## How the map maps to the real site
| Real element | Game implementation |
| --- | --- |
| Low black comedy hall | 27 m × 12 m footprint, 6.0 m street wall; matte black concrete surface with a low plinth and parapet |
| Deep overhanging canopy | 4.9 m sloped slab dropping about 1 m to the outer fascia; the fascia carries white signature lettering and the club name |
| Signature-covered front | Two `Label3D` signature bands on the fascia plus a smaller wall panel, so the handwriting reads at gameplay distance without dozens of decals |
| Circular blade sign | 3.9 m white disc with a black rim on a roof pole; `THE JOKE SHOP` lettering faces the street |
| Red curtains | Seven tied-back velvet drapes between the entrance and the east end — each cinched into an hourglass with a scalloped hem and dark recess between bays; a red velvet entrance curtain |
| West-end entrance | Recessed opening at x = -8.8 m with a low step, brass pulls and the door-lock indicator |
| Warm practicals | Sconces along the wall, canopy downlights, entrance wash and three ground uplights; all off in daylight and switched by `set_night_mode()` |
| Neighbouring low-rise frontage | Cream Mediterranean block west (balconies, red awning) with a stepped-back 5–6 storey pink hotel tower behind it (`WestHotelTower`, the Ramada Plaza mass); white commercial block east (ribbon windows, lobby) |
| Hillside and houses | Fog-free unshaded 60° ramp behind the rear wall with stucco houses, shrubs and palms; its tint drops to a dark silhouette at night |
| Opposite side of Sunset | Low retail row, rooftop billboard, neon and palms as background context beyond the far kerb |
| Sidewalk furniture | Palms, queue barriers, stanchions, bins, planters, a-frame sign, hydrant and a parked sedan; prop placements pass the shared validator |
## Scene composition
- **Frontage:** 27 m wide, façade centre at z = -8.0, front face at z = -2.0.
- **Sidewalk:** 38 m wide × 14 m deep, meeting the kerb at z = 11.9.
- **Street:** 90 m × 24 m, with the four-lane markings reused from the
Hollywood block and a crosswalk in front of the entrance.
- **Playable area:** x = -15…15, z = -0.6…14.0. The guard starts on the west
side of the entrance at (-4.8, 0.1, 1.4), facing the approach.
- **Map budget:** the headless audit measures **25,828 triangles across 518
meshes**, well inside the 150k/700 test budget.
The same geometry serves the day and late-night looks. There is no second baked
map: the phase lighting, skyline/fog tint, lit windows and practicals change,
just as with the Hollywood day/night rows.
## Simplifications and limits
- The real club's rear rooms, basement and roof plant are not modelled; the
playable area is the street frontage only.
- The 47 m OSM footprint includes rear parcels and does not match the 27 m
street frontage; the game keeps the frontage proportions rather than the full
lot.
- Neighbouring businesses are represented by generic low-rise blocks (plus the
stepped-back `WestHotelTower` mass behind the west block, standing in for the
Ramada Plaza). Their exact names and current tenants were not verified, so the
docs do not claim them.
- The real club's west street corner is rounded (radius ~3–4 m); the game keeps
a hard 90° corner as a stylized-reconstruction simplification.
- The hillside is a background ramp with simplified houses, not a terrain
heightfield; it exists to restore the real silhouette above the roofline.
- Signage uses the fictional **The Joke Shop** name, not the real Comedy Store
wordmark.
- The concept frames are photoreal; the game keeps its stylized, low-poly
material treatment. The vision judge therefore still scores material and
foliage detail below the reference. The remaining texture/realism work is
tracked with the postponed 0.9.5 pass, not treated as a map-geometry defect.
## References
The old committed Comedy Store photo board was removed on 2026-11-03 in favour of a local-only
research set under `tmp/research/comedy-store/` (owner override: development reference, never
committed, no licence gate). The three-up board (real photo | generated concept | current capture)
is in [`screens/boards/README.md`](screens/boards/README.md); its photo panel is a historical
public-domain frame, and the current block reference now lives in the gitignored research folder.
- OpenStreetMap way 428854155: <https://www.openstreetmap.org/way/428854155>
- AI art-direction frames: [`screens/concepts/joke_shop/`](screens/concepts/joke_shop/README.md)
- Local frames that changed a decision (gitignored, never committed):
- `tmp/research/comedy-store/` facade/street/strip/visitor frames → the four
`comedy_store_*` photo-anchored concept pairs and the map-recreation plan.
- `tmp/research/comedy-store-hillside/` (public-domain hillside frame) → the photo anchor for
`joke_shop_entrance_day-v2.png` (a less-branded frame that clears the image-recitation filter).
- The hall wall uses the `dark_stucco` pick (1024 px, matte charcoal grain) instead of the grey
paver tile, so the black stucco reads as the real club's flat plaster rather than masonry.
- Verification: `godot --headless --path . --script res://src/test/test_runner.gd`
(`test_joke_shop_uses_the_real_sunset_strip_layout`,
`test_joke_shop_geometry_stays_inside_the_map_budget`), and
`godot --path . --script res://src/test/capture_realism.gd -- --stages=joke_shop_day,joke_shop`.
The committed gallery passed `tools/check_screenshots.sh` (13 good / 0 bad)
and the screen-design judge (13/13 match, 0 diff). The latest local realism
run reports a reference gap of 0.454 for the night entrance.