# Cross-cutting Concepts ## Coordinate system and scale - **Source CRS**: EPSG:26911 (UTM zone 11N). Local origin recorded in `Geo/`. - **Blender**: metres. East → +X, north → +Y (Blender convention). - **Unreal**: centimetres. East → +X, north → **−Y** (confirmed from street mesh: `Sidewalk_North` Y −1912..−1053, `Sidewalk_South` Y +718..+1447). - **Conversion**: every exporter calls the metre→centimetre function. Import presets (`ue_metric_v1`, `ue_character_v1`) are named and repeatable. Rule: place a building only against a neighbour or street mesh, never in isolation. ## Collision model - Site meshes (road, sidewalks, kerbs, crossing): `STATIC` mobility, `BlockAll` collision profile. - Terrain: `STATIC`, `CTF_UseComplexAsSimple` (forced by `UGigLineAssetTools` at build time, saved on the asset — the flag lives on the `UStaticMesh`/`UBodySetup`, not the map). - Buildings: `STATIC`, simple collision (convex hull from mesh). - Rule: the collision flag must be saved on the asset. Saving only the `.umap` silently reverts it. ## Lighting - Dynamic-only: `r.AllowStaticLighting=False`. All lights are `MOVABLE`. - Fixed daytime rig: directional light (sun, −62° pitch), sky light, exponential height fog, post-process volume with fixed exposure. - Rationale: avoids "LIGHTING NEEDS TO BE REBUILT" warnings; no bake step; the scene never changes time of day. ## Materials - All materials authored in Unreal, not carried from Blender (FBX import loses diffuse colours). - World-space-noise blend nodes for cheap procedural variation (asphalt grain, concrete speckle, stucco roughness). - Instance parameters where tunable (e.g. wetness, ageing). ## Geographic data provenance - OSM extract is layout data only — not authoritative for façade, height, or pavement detail. - DEM from 3DEP 1 m; elevation verified against cross-sections in `Geo/verification/`. - Reference photography (local, gitignored) drives manual façade work. ## QA harness - `-qaselftest`: core ticker (not world timer) so pause cannot freeze the test that proves pause works. - `GigLine SIM` / `GigLine GROUND`: TEMP diagnostic logging, to be removed before release tag. - Screenshot approval: human must tick `Screenshots/README.md` before visual work is marked done.