# Toolchain Pinned versions for this project. Record the exact build string a tool reports, not just the version family, and re-record it after every upgrade. The most common cause of scale, material, and import mismatches is silently mixing two versions of the same tool. Audited 2026-11-06 on the development workstation. ## Pins | Component | Pinned | Source | Status | | --- | --- | --- | --- | | Bazzite | `45.20261105` (Kinoite, `bazzite-dx-nvidia`), kernel `7.2.15-ogc1.1.fc45` | `ujust update` / `rpm-ostree upgrade` | Booted and default. `44.20261026` retained as rollback. | | NVIDIA driver | `615.78.08`, open kernel module | Bazzite image | Verified: desktop session renders through the RTX 5070 Ti; Vulkan GPU0 is the RTX 5070 Ti on driver `615.78.08`, conformance `1.4.3.3`. | | Unreal Engine | `5.8.4` — download in progress 2026-11-06; `5.2.0` archive verified on disk as fallback | Epic download | Not extracted yet. Pin becomes 5.8.4 once the archive verifies and the editor launches on Bazzite; see [setup.md](setup.md#engine-version-decision). | | Unreal Linux toolchain | engine-bundled clang | Engine source tree | Not installed. Do not substitute the system compiler. | | Blender | `5.2.0` LTS (build 2026-07-14) | Flatpak `org.blender.Blender` | Installed. Run headless from the app tree with `LD_LIBRARY_PATH` + `BLENDER_USER_SCRIPTS`; `flatpak run` is unavailable to the agent shell. | | MPFB | `2.0.18` (extension `mpfb`, declares Blender >= 4.2) | Blender extensions platform | Installed. Load-and-export check on 5.2 still pending. | | Blosm | `2.7.28` (legacy add-on, `bl_info.blender = (4, 5, 0)`, manifest min 4.2) | blosm.com | Installed and importing on Blender 5.2 in `3Dsimple` mode. Two headless workarounds are required; see `Art/blender/README.md`. Paid material asset pack lives in `~/Downloads/blosm-assets/` and is not committed. | | QGIS | `4.2.3`, Flatpak `stable`, runtime `org.kde.Platform 6.11`; bundled PROJ `9.9.0` | flathub | Installed 2026-11-06. The stale `lts` branch (`3.28.9`, EOL Qt5 runtime) is still installed beside it and should be removed. | | Git | `2.56.0` | Bazzite image | Installed. | | Git LFS | `3.7.1` | `rpm-ostree` layer | Installed; `git lfs install` run, lfs filter active. | | Host build tools | `clang 23.1.4`, `cmake 4.3.0`, `ninja 1.13.2` | `rpm-ostree` layer | Installed. These are host tools, not the engine toolchain. | | distrobox | `1.8.2.5` | Bazzite image | Installed. | | Python (tooling) | `3.14.8` system | Bazzite image | Installed. Use a venv for geo/tool scripts. | | ffmpeg | `8.1.3` | Bazzite image | Installed. | Unreal Engine 5.9 is in preview and Unreal Engine 6 has been announced as of November 2026. Neither is a pin candidate for `0.x`. One engine family per milestone; a family change is a breaking change and belongs in `CHANGELOG.md`. ## Agent skills | Item | Value | | --- | --- | | Package | blender-skills `1.3.0`, upstream commit `8f778d2`, MIT | | Source | | | Location | `.agents/skills/blender-skills/` — 94 skills plus a shared `references/` directory, 269 Markdown files, 1.2 MB | | Installed | 2026-11-06, copied from a local checkout of `.claude/skills/` without edits | These are instructions and reference notes for agents, not code that runs in a build. Four of them assume a **Blender MCP server**; this project drives Blender headlessly through `bpy` (`Tools/*.py`) instead, so MCP is optional and nothing depends on it. To update: copy `.claude/skills/` from a newer upstream checkout over the existing directory, then record the new version and commit hash in this table. Skills are read on demand, so the harness catalog may need a reload before they appear as first-class entries. ## Pin rules - One engine build per release. Record the launcher or source build, the patch version, and the build date in this file and in the release entry. - Blender stays on an LTS family (`5.2`). Every add-on version used for a shipped asset is recorded here. - Upgrading a pinned tool mid-milestone requires re-running the scale test and the Blender→Unreal import check before further asset work. - Never install a tool from an unverified source. Record the download origin next to the version. ## Open compatibility risks 1. **Blosm on Blender 5.2 — worked around, not resolved.** `3Dsimple` import works headless (see the blockout). Two headless-only defects are patched around in the script rather than in the add-on: an asset-directory check that fires before `mode` is honoured, and a background-mode import path that uses a broken relative import when the default level table is empty. `3Drealistic` mode has not been exercised; it loads the paid material pack and previously failed inside the realistic renderer setup. If realistic materials are wanted, test that mode separately before depending on it. 2. **MPFB 2.0.18 on Blender 5.2.** The extension declares Blender >= 4.2 but predates 5.x. The acceptance test is the `0.1.0` requirement to export one MPFB character with baked materials and a deform skeleton and import it into Unreal. 3. **Two QGIS installs.** `stable` (4.2.3, current runtime) and the old `lts` (3.28.9, EOL runtime) are both present. Nothing breaks, but launching the wrong one silently gives older PROJ data. Uninstall `lts` and keep one pin. QGIS 4.x also uses Qt6, so any processing recipe copied from a 3.x tutorial needs re-checking before it is trusted. 4. **Driver and Vulkan validation on Bazzite.** Not an officially supported Unreal distribution. Validate before asset production, as `ROADMAP.md` requires.