Tools/street_mesh.py builds the corridor in the project frame from the measured profile: carriageway -10.5..+10.5 m, kerbs 0.15 m (0.13 m as built), sidewalks 4.0 m south and 5.3 m north, all elevations sampled from the DEM. Kerbs flush at the three signalised crossings. Crown at mid-block reproduces the cross-sections to the centimetre.
1.7 KiB
1.7 KiB
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/Contentcan be audited against it.
Helpers
check-lfs.sh— repository guard: fails ifgit-lfsor thelfsfilter is missing, or if an LFS-tracked file was committed as a plain blob.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.osmextract into a.blend, with a per-building scale report. Exact invocation inArt/blender/README.md.commons_fetch.py— Wikimedia Commons reference fetcher. Search or exactFile:titles, 1600 px thumbnails, provenancesidecar.jsonper folder. Writes only into the gitignoredArt/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