Files
gig-line/Tools/README.md
T
zwitschi 0dab597dc1 refs: Flickr + web search for the hero entrance
common_fetch was out of material, so an OpenRouter web-search call (gpt-5.2,
openrouter:web_search) returned candidate photo pages and page_image_fetch.py
resolved each og:image and downloaded it, recording page URL and hash locally.
Four frames kept, including the clearest entrance view yet.

The frames overturn the inherited 'eight stone steps, 12 m wide': the entrance
is three portals with individual short flights. Recorded as a resolved conflict
with the photographs as evidence.
2026-11-07 00:21:53 +01:00

28 lines
2.2 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.
# Tools
Repeatable import/export and processing helpers. Anything that was done twice by hand belongs here.
## Conventions
- One script, one job. No interactive prompts; every input is an argument.
- Each script documents its input format, output format, and the exact tool version it was tested with.
- Blender scripts run headless (`blender --background --python`), so they can be re-run for a regression check.
- No credentials, no absolute machine paths, no writes outside the project by default.
- A script that produces game content logs what it produced, so `Game/Content` can be audited against it.
## Helpers
- `check-lfs.sh` — repository guard: fails if `git-lfs` or the `lfs` filter is missing, or if an LFS-tracked file was committed as a plain blob.
- `site_assembly.py` — assembles terrain + street + blockout into one file and raycasts the walking routes for holes and steps.
- `street_mesh.py` — road, kerbs, and sidewalks on the DEM, in the project frame; kerbs flush at the three crossings.
- `terrain_from_dem.py` — terrain grid from the committed DEM, with building footprints cut out.
- `blosm_blockout.py` — headless Blosm import of the committed `.osm` extract into a `.blend`, with a per-building scale report. Exact invocation in `Art/blender/README.md`.
- `page_image_fetch.py` — resolves a web page's `og:image` and downloads it, with page URL and hash in a local sidecar. Works for Flickr, Commons file pages, and most photo blogs.
- `commons_fetch.py` — Wikimedia Commons reference fetcher. Search, exact `File:` titles, or a whole Commons category (`--category`), thumbnails, provenance `sidecar.json` per folder. Wikimedia throttles `upload.wikimedia.org` (HTTP 429), so keep batches to six or fewer files and pass `--delay 3`; a throttled file is skipped and recorded rather than aborting the run. Writes only into the gitignored `Art/reference/`; reference images are never committed.
## Planned helpers
- Blender export preset runner (named presets, metric scale assertion)
- Blender→Unreal scale test (export a known-size cube, verify 100× conversion)
- OSM extract fetch and manifest writer (records date, bounds, checksum)
- QGIS processing steps as batch scripts, so the geo cleanup is reproducible rather than GUI-only