Tools/blosm_blockout.py imports the committed extract in 3Dsimple mode and reports per-building dimensions so a units failure is visible in the log. The result (87 meshes) is committed as the blockout baseline: hero 25.68 x 54.88 x 14.50 m against 25.75 x 54.88 m of OSM geometry, so the import is 1:1 metres. Two headless defects needed working around: the asset-directory check that fires before mode is honoured, and an empty default-level table sending the add-on down a broken relative import. Member fetching stays off so the import does not depend on Overpass.
1.5 KiB
1.5 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.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