Plan recent-photo tooling and reference-anchored generation
This commit is contained in:
1 parent
383f601bc9
commit
f09a5e7937
2 files changed
+56
-6
No files matched your search
@@ -4,6 +4,16 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
|
|||||||
|
|
||||||
## Decisions
|
## Decisions
|
||||||
|
|
||||||
|
- **Recent-photo research, gitignored (2026-11-03):** Commons geosearch around the El Capitan block
|
||||||
|
found usable last-12-months imagery (Dolby billboards 2026-09-30 CC0 x6, Dolby street + fresh star
|
||||||
|
2026-07-17 CC0, El Capitan frontage with an impersonator 2026-02-25 CC BY-SA 4.0, Celia Cruz
|
||||||
|
marker and a star series 2025-09-28 CC0, Thunderbolts premiere 2025-04-28 CC BY-SA 2.0). Eight
|
||||||
|
candidates downloaded to `tmp/research/elcapitan-2026/` with `meta.json` — **never commit these**;
|
||||||
|
committed references still go through the sidecar licence gate. Finding: no recent photo frames
|
||||||
|
the El Capitan facade straight-on in daylight; the 2009 CC BY facade frame stays the geometry
|
||||||
|
reference. Geosearch (`generator=geosearch`, `ggscoord`, radius, `ggsnamespace=6`) is the reliable
|
||||||
|
"photos of this exact location" query; keyword search is not. Plan for reference-anchored
|
||||||
|
generation (`--reference`) is in TODO before any tool code is written.
|
||||||
- **TV Studio shares the Hollywood location (2026-11-03, owner clarification):** the Late Night TV
|
- **TV Studio shares the Hollywood location (2026-11-03, owner clarification):** the Late Night TV
|
||||||
Studio venue is **the same** El Capitan Entertainment Centre block at 6840 Hollywood Blvd (the
|
Studio venue is **the same** El Capitan Entertainment Centre block at 6840 Hollywood Blvd (the
|
||||||
building houses *Jimmy Kimmel Live!*), restaged for a late-night arrival with a bulb canopy, black
|
building houses *Jimmy Kimmel Live!*), restaged for a late-night arrival with a bulb canopy, black
|
||||||
|
|||||||
@@ -339,6 +339,24 @@ facades and AI-assisted composition. This is an unversioned development track, n
|
|||||||
|
|
||||||
### Reference imagery
|
### Reference imagery
|
||||||
|
|
||||||
|
**Recent-photo research (2026-11-03):** Commons geosearch around 34.10118/-118.34009 (500 m) plus
|
||||||
|
category/date sorting shows usable imagery from the last 12 months: Dolby Theatre billboards
|
||||||
|
(2026-09-30, CC0, 6 frames), Dolby street level and a fresh Walk of Fame star (2026-07-17, CC0),
|
||||||
|
a Michael Jackson impersonator at the El Capitan frontage (2026-02-25, CC BY-SA 4.0), the Celia
|
||||||
|
Cruz Square marker and a 2025-09-28 star series (CC0), and a Thunderbolts premiere (2025-04-28,
|
||||||
|
CC BY-SA 2.0). No recent frame shoots the El Capitan facade straight-on in daylight; the best
|
||||||
|
facade evidence is still the 2009 CC BY frame. The 8 downloaded candidates are in
|
||||||
|
`tmp/research/elcapitan-2026/` (gitignored) with `meta.json`; nothing was committed.
|
||||||
|
|
||||||
|
- [ ] Wire `scene_concepts.py refboard`: list/fetch Commons files by `titles=`, `geosearch` or
|
||||||
|
category with date and licence sorting, write the `SIDECAR.md` rows and the folder README
|
||||||
|
rows automatically (User-Agent, batched `titles=`, 3–4 s spacing to avoid HTTP 429; date-only
|
||||||
|
fetch into `tmp/` by default, committed copies require the licence gate).
|
||||||
|
- [ ] Add a `--max-age-months` filter (default 12) and a `--must-reuse` mode that matches the
|
||||||
|
folder's existing sidecar entries so a refresh only reports what changed.
|
||||||
|
- [ ] Research-diff step: keep the last-12-months board as the "current reality" evidence and the
|
||||||
|
older photos as the geometry evidence, labelled per photo; no sidecar date field needs to
|
||||||
|
change, only the purpose column.
|
||||||
- [ ] Write a reference shot list per block: facade materials, windows, signage, rooflines,
|
- [ ] Write a reference shot list per block: facade materials, windows, signage, rooflines,
|
||||||
street furniture, curb cuts and lighting.
|
street furniture, curb cuts and lighting.
|
||||||
- [ ] Download and catalogue reference images from Wikimedia Commons, local/own photography or
|
- [ ] Download and catalogue reference images from Wikimedia Commons, local/own photography or
|
||||||
@@ -350,7 +368,8 @@ facades and AI-assisted composition. This is an unversioned development track, n
|
|||||||
template from the 3D review §E, and link it from the venue map documents.
|
template from the 3D review §E, and link it from the venue map documents.
|
||||||
- [ ] Define the photoreal target and a material-derivation workflow (albedo/normal/roughness,
|
- [ ] Define the photoreal target and a material-derivation workflow (albedo/normal/roughness,
|
||||||
AO, weathering) that matches the existing Compatibility renderer (`texture-workflow`,
|
AO, weathering) that matches the existing Compatibility renderer (`texture-workflow`,
|
||||||
`materials`, `lookdev`).
|
`materials`, `lookdev`), with the recent 2026 street frames as the current-reality reference
|
||||||
|
and the 2009 facade frame as the geometry reference.
|
||||||
|
|
||||||
### Geometry and AI-assisted composing
|
### Geometry and AI-assisted composing
|
||||||
|
|
||||||
@@ -365,6 +384,13 @@ facades and AI-assisted composition. This is an unversioned development track, n
|
|||||||
- [ ] Run the assisted Blender pipeline end to end on the first block (OSM import → `inspect` →
|
- [ ] Run the assisted Blender pipeline end to end on the first block (OSM import → `inspect` →
|
||||||
retopo/UV assist → atlas → `audit`), and document the exact commands in
|
retopo/UV assist → atlas → `audit`), and document the exact commands in
|
||||||
`docs/asset-tooling.md`.
|
`docs/asset-tooling.md`.
|
||||||
|
- [ ] Building-appearance realism pass, measured against the reference set: bring the masonic
|
||||||
|
facade's material response (limestone value/roughness, joint lines, weathering streaks),
|
||||||
|
the banner/canopy and marquee materials, and the night emissive balance to the level of the
|
||||||
|
2009 facade photo and the 2026 street frames; capture before/after and record each delta.
|
||||||
|
- [ ] Upgrade the facade from flat material bands to photoreal detail: either texture-projected
|
||||||
|
detail (Path B below) or AI-generated material tiles derived from the facade photo (with
|
||||||
|
provenance), then verify texel density, tiling and the night look.
|
||||||
- [ ] Integrate the result behind `WorldBuilder.VENUE_SPECS` with colliders, navigation obstacles,
|
- [ ] Integrate the result behind `WorldBuilder.VENUE_SPECS` with colliders, navigation obstacles,
|
||||||
occlusion and the existing day/night materials.
|
occlusion and the existing day/night materials.
|
||||||
|
|
||||||
@@ -373,9 +399,21 @@ facades and AI-assisted composition. This is an unversioned development track, n
|
|||||||
*Skill route: `lookdev`, `lighting`, `environment-artist`, `texture-workflow`; tooling:
|
*Skill route: `lookdev`, `lighting`, `environment-artist`, `texture-workflow`; tooling:
|
||||||
`tools/scene_concepts.py`, `tools/asset_pipeline.py`, `tools/screen_designs.py`.*
|
`tools/scene_concepts.py`, `tools/asset_pipeline.py`, `tools/screen_designs.py`.*
|
||||||
|
|
||||||
|
**Tool plan for reference-anchored generation (plan first, implement after this section's review):**
|
||||||
|
|
||||||
|
- [ ] Add `scene_concepts.py generate --reference <photo.png>`: attach a licence-cleared real photo
|
||||||
|
as a source image to the OpenRouter image request (image-edit/image-to-image endpoint), with
|
||||||
|
a prompt suffix that preserves the photographed facade geometry ("keep the building's column
|
||||||
|
count, spacing, band heights and sign placement exactly"). Record the reference file, its
|
||||||
|
licence and the model/prompt/spend in the sidecar.
|
||||||
|
- [ ] Extend `generate_textures.generate_image()` with an optional `reference_url` (base64 data URL
|
||||||
|
of the photo) and a `strength` argument; keep every existing call signature unchanged and
|
||||||
|
gate the new path behind the reference being licence-cleared in the sidecar.
|
||||||
|
- [ ] Add a sidecar-driven variant pass: for each real photo, generate day, night and weathered
|
||||||
|
variants of the same framing so the concept board stays comparable with the photo board.
|
||||||
- [ ] Generate facade, street and signage concept frames for the target block
|
- [ ] Generate facade, street and signage concept frames for the target block
|
||||||
(`scene_concepts.py generate`), commit only the selected frames, and record model, prompt and
|
(`scene_concepts.py generate --reference ...`), commit only the selected frames, and record
|
||||||
spend in the block sidecar.
|
model, prompt, spend **and source photo** in the block sidecar.
|
||||||
- [ ] Derive palette, lighting and material targets from the real-photo board and the generated
|
- [ ] Derive palette, lighting and material targets from the real-photo board and the generated
|
||||||
concepts, and record the deltas the facade kit has to close.
|
concepts, and record the deltas the facade kit has to close.
|
||||||
- [ ] Generate signage, awning and poster texture candidates with `asset_pipeline.py`; run the
|
- [ ] Generate signage, awning and poster texture candidates with `asset_pipeline.py`; run the
|
||||||
@@ -440,9 +478,11 @@ reference-image licence and privacy gates above rather than replacing them.
|
|||||||
- [ ] **Path A — Reference and QA (lowest risk):** render the splat from game camera poses and
|
- [ ] **Path A — Reference and QA (lowest risk):** render the splat from game camera poses and
|
||||||
compare it with the realism captures; derive dimensions, signage placement, facade rhythm
|
compare it with the realism captures; derive dimensions, signage placement, facade rhythm
|
||||||
and material colours. No splat data reaches the runtime.
|
and material colours. No splat data reaches the runtime.
|
||||||
- [ ] **Path B — Texture derivation:** project splat renders onto the facade kit to produce
|
- [ ] **Path B — Texture derivation:** project splat renders **or reference photos** onto the
|
||||||
albedo, normal, roughness and AO candidates; de-light and bake them (`texture-workflow`),
|
facade kit to produce albedo, normal, roughness and AO candidates; de-light and bake them
|
||||||
then verify UV scale, tiling and readability under the Compatibility renderer.
|
(`texture-workflow`), then verify UV scale, tiling and readability under the Compatibility
|
||||||
|
renderer. Deriving directly from a committed reference photo requires its licence to allow
|
||||||
|
derived works and a `CREDITS.md` entry; CC BY-SA sources stay out unless reviewed.
|
||||||
- [ ] **Path C — Mesh proxy:** extract a mesh from the splat or dense reconstruction, retopo and
|
- [ ] **Path C — Mesh proxy:** extract a mesh from the splat or dense reconstruction, retopo and
|
||||||
dress it in Blender (`retopology`, `prop-artist`), assign LODs (`lod-pipeline`), and keep it
|
dress it in Blender (`retopology`, `prop-artist`), assign LODs (`lod-pipeline`), and keep it
|
||||||
inside the venue triangle/material budgets with mesh-based colliders (`collision-proxy`).
|
inside the venue triangle/material budgets with mesh-based colliders (`collision-proxy`).
|
||||||
|
|||||||
Reference in new issue
Block a user