The bpy.ops.export_scene.fbx argument block was duplicated in six scripts (hero, block frontage, north buildings, site, scale test, MPFB character) and all six carried mesh_smooth_type="OFF", which drops smoothing groups and made every Unreal import warn and every round part faceted. Tools/fbx_export_preset.py now owns the presets: - preset_kwargs(preset, selection, **overrides) is bpy-free and unit-tested; - export_static()/export_character() are thin wrappers that import bpy lazily; - ue_metric_v1 and ue_character_v1 keep the recorded scale contract (FBX_SCALE_NONE, apply_unit_scale, -Y forward / Z up) and use FACE smoothing. Callers switched: hero_facade_build, export_block_frontage, export_north_buildings, scale_test_export, mpfb_character_export, Art/blender/site/export_site_fbx. Verified by re-exporting every asset through the preset and re-importing all of them: 0 smoothing warnings on site, frontage and north buildings; packaging and -qaselftest all PASS (walk, transect 0 holes, wall probe 0/35, facade probe 0/9). 49 tool tests pass (9 new for the preset contract).
Gig Line
A Linux-first Unreal Engine game about walking and driving through a real city. The first release, 0.1.0, is a walkable exterior demo around 6840 Hollywood Blvd / El Capitan Entertainment Centre, covering the south-side frontage between Highland Avenue and Orange Drive plus the north-side frontage within 50 m of the boulevard.
Status
0.1.0 is in progress. The workstation, engine, geo pipeline and project bootstrap are done and verified; a walkable DemoMap exists with terrain, street, sidewalks, kerbs and the hero façade placed from measured coordinates. Façades are still blockouts, and materials are flat colours — both are planned patches.
Current tasks are in TODO.md and the development plan is in ROADMAP.md; what was learned the hard way is in MEMORY.md.
Layout
| Path | Contents |
|---|---|
Game/ |
Unreal project, configuration, source, game-ready content |
Art/ |
Editable Blender sources, blockouts, terrain, street, hero façade, and a local (uncommitted) reference library |
Geo/ |
Source manifests, permitted geographic data, and every geographic tool |
Tools/ |
Unreal-side importers, level builders, and reference gathering |
Docs/ |
Setup, toolchain pins, build and content pipeline, licensing, release checks |
Screenshots/ |
Rendered review captures and their approval state |
Getting started
git lfs install # required: content, images, audio, and geo files are LFS-tracked
git lfs pull
Tools/check-lfs.sh # verifies the lfs filter is active and files are stored as pointers
The engine is installed outside the repository and pinned in Docs/toolchain.md. Setup is in Docs/setup.md; building and the content pipeline are in Docs/build.md.
Documents
- TODO.md — living task list, source of truth for progress
- ROADMAP.md — development plan: milestone goals, scope, and release gates
- MEMORY.md — shared session memory: discoveries, traps, decisions
- AGENTS.md — contributor and agent rules
- PLAN.md — scope, stack, release policy, timeline
- Docs/toolchain.md · Docs/environment.md — pins and workstation audit
- Docs/build.md — fresh-checkout build and content pipeline
- Docs/release-checks.md — release gates
- Docs/licensing.md · THIRD_PARTY_NOTICES.md — licensing
- CHANGELOG.md — release history
Licensing
Code licence is an open decision (MIT proposed). Engine, art, and geographic data are licensed separately; see Docs/licensing.md.