Commit Graph
2 Commits
Author SHA1 Message Date
zwitschi fe8a23e5ee feat(tools): rephrase the concept studies as frontal building views
Owner instruction: show the building, its entrance, the neighbouring buildings,
front-on, and drop the close-up detail framing.

- Studies replaced: door-recess / entrance-wide / column-order /
  entablature-cornice / parapet-motto / window-rhythm / street-wall /
  banner-detail -> building-front, building-entrance, building-with-neighbours,
  building-street-front, building-front-oblique, theatre-front-with-neighbours.
- ANCHOR_SUFFIX now permits REFRAMING (step back, zoom out, widen the view) so the
  whole building can fit, while the architecture stays fixed; previously it pinned
  the camera angle to the reference, which forced cropped results.
- Prompts state 'exterior' explicitly (the entrance study otherwise produced an
  interior) and require sky above the roofline and nothing cut off.

Vision pre-check on the regenerated set: building-entrance and building-street-front
read as full-elevation frontal plates; the studies anchored on the tightly cropped
2009 facade photo stay cropped, because the model will not invent the parapet and
sky the photograph does not contain. That limitation is recorded in the study table
comment - a full 6840 plate needs a full-elevation photograph we do not hold.

Tests: 40 pass (study table assertions unchanged).
2026-11-08 17:35:20 +01:00
zwitschi abace2ad05 feat(tools): AI detail plates from the reference photography; fix floating windows
Adds Tools/facade_detail_concepts.py: generates architectural detail plates from a
local reference photograph through OpenRouter's image models. Spec-driven (eight
studies: door recess, entrance, column order, entablature/cornice, parapet/motto,
window rhythm, street wall, banner), never overwrites (writes -vN), writes a
.refgen.json sidecar (model, prompt, source photo, SHA-256) per image, and keeps
all output under the gitignored Art/reference/facade-details/ - local only, never
shipped. Stdlib only; http 429/5xx back-off; refuses to write a sidecar containing
the token. 11 tests cover the study table, prompt assembly, next-free naming,
data-URL decoding (both response shapes plus a refusal) and the local-only rule.

Measurement pass on the plates: the hero window panes were at Y -1.98, i.e. 1.44 m
in FRONT of the wall (Y -0.50) and ahead of the column line, so the glazing floated
in the colonnade instead of reading as openings behind it. Moved to Y -0.56; hero
rebuilt, re-imported, DemoMap rebuilt, full screenshot set re-rendered.

Docs: Tools/README row, Screenshots README known-issues entry now records the fix.
2026-11-08 17:27:27 +01:00