Probe 22 points with the USGS 3DEP point service: walkable surfaces span 115.65-119.59 m, a 3.94 m relief, so elevation data is required by the AGENTS rule. Grade falls ~3.3 m eastward over the 279 m block (1.2%) and the north sidewalk sits 0.4-0.7 m above the south. 3DEP 1 m is public domain and becomes the chosen source; the tile itself is still to be downloaded. Factored the shared OSM helpers into Geo/scripts/osm_common.py so the street profile and the elevation probe read the same geometry.
5.1 KiB
5.1 KiB
Setup
Ordered procedure for bringing the workstation and the project to a buildable state. Status markers follow ROADMAP.md:
[x]done and verified[-]started, not finished[ ]not started
Anything marked human step needs credentials, licence acceptance, or a decision that cannot be automated. Never store Epic credentials, tokens, or licence keys in the repository.
1. System
[x]Update Bazzite with its supported mechanism.ujust update(orrpm-ostree upgrade) followed by a reboot. Deployment45.20261105is booted and default;44.20261026retained as rollback.[x]Verify the NVIDIA driver and Vulkan from the desktop session.nvidia-sminames the RTX 5070 Ti on driver615.78.08and the Wayland desktop renders through it. Vulkan enumerates it as GPU0: discrete, proprietary driver615.78.08, API1.4.351, conformance1.4.3.3. The integrated RADV GPU is GPU1 — watch that the engine does not select it. Evidence in environment.md.[x]Installgit-lfs,cmake,ninja-build,clangas an ostree layer, reboot, thengit lfs install. Done:git-lfs 3.7.1,clang 23.1.4,cmake 4.3.0,ninja 1.13.2; lfs filter active,Tools/check-lfs.shpasses.
2. Engine acquisition
[x]Human step. Create an Epic account, accept the Unreal license. Done on 2026-11-06 with the account email recorded locally; no credentials stored in the repository.[ ]Human step. Acquire one pinned engine build. Two routes:- Launcher build: install the Linux Epic Games Launcher, download the pinned engine version, install to the DATA volume, and disable auto-update so the pin holds.
- Source build: clone the pinned
releasebranch from the Epic Games GitHub organisation, then./Setup.sh,./GenerateProjectFiles.sh,make -j16. Budget 120–200 GB and a multi-hour first build on 16 threads. Downloaded: Linux_Unreal_Engine_5.2.0.zip, 19.59 GB, Built on 2026-11-03.
[ ]Record the exact engine version and build route in toolchain.md.[ ]Validate that the engine editor opens and a blank project runs on Bazzite. Unreal does not support this distribution; record any workarounds.
3. Tooling pins
[x]Blender 5.2 LTS (Flatpak) and MPFB 2.0.18 recorded.[-]Install QGIS and record its version. The flathubltsbranch installed 3.28.9 on an end-of-life Qt5 runtime — not an acceptable pin. Mirror the upstream LTR instead:flatpak install flathub --user org.qgis.qgis//stable, and if that is also stale, move QGIS into a distrobox container from the Fedora package. Details in environment.md.[ ]Install Blosm in Blender, record its version, and confirm it loads on Blender 5.2. Fall back to a side-by-side Blender 4.5 LTS only for the blockout step if it does not.[ ]Confirm the geo tool Python environment (venv withpyproj,GDAL,shapelyfrom the QGIS or distrobox environment) and record it.
4. Project bootstrap
[ ]Create the C++ Unreal project atGame/GigLine/GigLine.uprojectwith Enhanced Input enabled and Blueprint gameplay enabled. CommitConfig/,Source/, andGigLine.uproject; leaveBinaries/,Intermediate/,Saved/, and the DDC out of the repository —.gitignorealready covers them.[ ]Point the local Derived Data Cache at the DATA volume. Confirm the setting name and section against the pinned engine's documentation rather than copying a config snippet from another version.[ ]Enable Git LFS integration in the editor before importing content, so large assets are routed to LFS on import rather than on a later re-add.[ ]Package and launch a blank Linux build from the command line, so the packaging path is proven before any content exists.[ ]Export one static mesh from Blender with a known metric size and import it into Unreal. Verify the 100× scale conversion (1 m → 100 uu), the pivot, normals, and material assignment.[ ]Export one MPFB character with baked materials and a deform skeleton and verify it imports with the expected skeleton hierarchy and scale.[ ]Commit the baseline and write the fresh-checkout build procedure into build.md.
5. Repository
git clone <remote> gig-line
cd gig-line
git lfs install # writes filter.lfs.* into git config; required before any content commit
git lfs pull
Tools/check-lfs.sh # fails when the lfs filter or the pointer storage is missing
Without git lfs install, adding an LFS-matched file does not error — it commits the file as a plain blob. Tools/check-lfs.sh is the guard for that.
Sizes: the engine lives outside the repository (pinned install path recorded in toolchain.md). The repository holds the Unreal project, Blender sources, geo sources, and tooling.
Known blockers
| Blocker | Owner | Needed for |
|---|---|---|
| Epic account, license acceptance, engine download | human | All Unreal work |
QGIS pin: replace the stale 3.28.9 flatpak |
human | Geo pipeline |
| Blosm install and Blender 5.2 compatibility check | human | OSM blockouts |
Closed: Bazzite update and reboot, driver and Vulkan verification, git-lfs/clang/cmake/ninja layering.