docs: pin QGIS 4.2.3 and compute the projected origin with PROJ
QGIS stable is 4.2.3 on the current KDE runtime; the stale 3.28.9 lts install stays flagged for removal. PROJ 9.9.0 from that flatpak turns the recorded origin into E 376515.389 / N 3774224.083 (NAD83 UTM 11N), with six control points whose projected spans reproduce the OSM footprint measurements. Engine decision recorded: 5.8.4 is downloading, 5.2.0 stays only as a fallback.
This commit is contained in:
1 parent
1c476e4fb5
commit
103042fca7
4 files changed
+32
-14
No files matched your search
+2
-3
@@ -41,13 +41,12 @@ The archive on disk is **Unreal Engine 5.2.0**, released May 2023, three and a h
|
||||
- No engine fixes from 5.3 through 5.8, and no compatibility with content or plugins authored for newer versions.
|
||||
- Bazzite is not a supported Unreal distribution in any version, so this risk compounds rather than introduces.
|
||||
|
||||
Alternative: fetch the current stable release instead, and keep the 5.2.0 archive as a fallback until the newer one is validated. Either way, one version gets pinned in [toolchain.md](toolchain.md) and the other is deleted, because a second engine on disk invites accidental mixing.
|
||||
**Decision taken 2026-11-06:** fetch the current stable release — `Linux_Unreal_Engine_5.8.4.zip` is downloading — and keep the verified 5.2.0 archive only as a fallback until 5.8.4 launches. Once 5.8.4 validates, delete the 5.2.0 archive and pin 5.8.4 in [toolchain.md](toolchain.md); two engines on disk invite accidental mixing.
|
||||
|
||||
## 3. Tooling pins
|
||||
|
||||
- `[x]` Blender 5.2 LTS (Flatpak) and MPFB 2.0.18 recorded.
|
||||
- `[-]` Install QGIS and record its version.
|
||||
The flathub `lts` branch 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](environment.md).
|
||||
- `[x]` Install QGIS and record its version. QGIS **4.2.3**, Flatpak `stable`, runtime `org.kde.Platform 6.11`, bundled PROJ `9.9.0`. The stale `lts` 3.28.9 install is still beside it and should be uninstalled.
|
||||
- `[ ]` 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 with `pyproj`, `GDAL`, `shapely` from the QGIS or distrobox environment) and record it.
|
||||
|
||||
|
||||
+3
-3
@@ -10,12 +10,12 @@ Audited 2026-11-06 on the development workstation.
|
||||
| --- | --- | --- | --- |
|
||||
| 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.2.0` archive on disk (CL 25360045, `++UE5+Release-5.2`); `5.8.x` was the planned pin | Epic download, 2026-11-06 | Downloaded, not extracted, **version decision open** — see [setup.md](setup.md#engine-version-decision). |
|
||||
| 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` LTS (upstream patch `5.2.3`) | Flatpak `org.blender.Blender` | Installed. |
|
||||
| MPFB | `2.0.18` (extension `mpfb`, declares Blender >= 4.2) | Blender extensions platform | Installed. Load-and-export check on 5.2 still pending. |
|
||||
| Blosm | latest release at install time | blosm.com / Gumroad | Not installed. Version must be recorded before first use. |
|
||||
| QGIS | `3.44.15` LTR targeted; installed flatpak is `3.28.9` | qgis.org / flathub | **Not a valid pin.** The `lts` flatpak branch is 3.28.9 on an end-of-life Qt5 runtime. Replace via `stable` or distrobox, then pin. See [environment.md](environment.md). |
|
||||
| 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. |
|
||||
@@ -36,5 +36,5 @@ Unreal Engine 5.9 is in preview and Unreal Engine 6 has been announced as of Nov
|
||||
|
||||
1. **Blosm on Blender 5.2.** Blosm versions historically lag Blender releases. Verify Blosm against the installed Blender 5.2 before the blockout step. If it fails, add a side-by-side Blender 4.5 LTS Flatpak and convert that step's output only; do not mix Blender versions within one asset.
|
||||
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. **QGIS flatpak tracks a stale LTR.** The flathub `lts` branch is `3.28.9` (2022) on `org.kde.Platform 5.15-21.08`, which is end-of-life. A 2022 QGIS still converts CRS and edits vectors correctly, but its PROJ/GDAL data and processing algorithms are four years behind the current LTR, and the runtime gets no security fixes. Replace it before the geo pipeline depends on it; record whichever version ends up pinned.
|
||||
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.
|
||||
@@ -15,22 +15,41 @@ NAD83 rather than WGS84 is deliberate: it is the CRS the US national elevation a
|
||||
| Definition | Hollywood Blvd × North Highland Avenue intersection node, on the boulevard centreline |
|
||||
| WGS84 | lat 34.101545, lon −118.338718 |
|
||||
| OSM node | the single shared node between the `Hollywood Boulevard` and `North Highland Avenue` ways in `Geo/raw/osm-api-map-2026-11-06.osm` |
|
||||
| EPSG:26911 easting / northing | **to be computed** — see below |
|
||||
| EPSG:26911 easting / northing | **E 376 515.389 / N 3 774 224.083** (NAD83, UTM 11N, metres) |
|
||||
| Rationale | a real, data-defined, reproducible point at the demo block's east boundary; no surveyed control point exists for this project |
|
||||
|
||||
The origin is not "the hero building" on purpose: a building may later move a metre or two as verification corrects it, while an intersection node is fixed by the source data.
|
||||
|
||||
### Pending value
|
||||
### How the pair was computed
|
||||
|
||||
The projected pair is not filled in yet because neither `pyproj` nor the PROJ command line tools are installed on this workstation (`Docs/environment.md`), and inventing a number that later disagrees with QGIS would be worse than leaving it blank. Fill it in the QGIS step:
|
||||
Computed 2026-11-06 with PROJ **Rel. 9.9.0 (2026-09-15)**, taken from the QGIS 4.2.3 Flatpak, because neither `pyproj` nor the PROJ command line is installed on the host:
|
||||
|
||||
```bash
|
||||
python3 -c "from pyproj import Transformer; \
|
||||
t=Transformer.from_crs('EPSG:4326','EPSG:26911',always_xy=True); \
|
||||
print(t.transform(-118.338718, 34.101545))"
|
||||
P=$(ls -d ~/.local/share/flatpak/app/org.qgis.qgis/x86_64/stable/*/files | head -1)
|
||||
printf -- '-118.338718 34.101545\n' | LD_LIBRARY_PATH="$P/lib" "$P/bin/proj" \
|
||||
+proj=utm +zone=11 +datum=NAD83 -f '%.3f'
|
||||
# 376515.389 3774224.083
|
||||
```
|
||||
|
||||
Record the printed easting/northing back into this table and note the PROJ version used.
|
||||
Reproduce it the same way, or with `pyproj` once a geo environment exists. If a future PROJ reports a different pair, the new value wins and this table is updated with the PROJ version that produced it.
|
||||
|
||||
## Projected control points
|
||||
|
||||
Optional check values, all NAD83 / UTM 11N, and the same points as local X/Y relative to the origin. Use them to confirm a transformation before trusting a blockout.
|
||||
|
||||
| Point | WGS84 lat, lon | Easting | Northing | Local X | Local Y |
|
||||
| --- | --- | ---: | ---: | ---: | ---: |
|
||||
| Hollywood × Orange Dr | 34.101543, −118.341749 | 376 235.784 | 3 774 227.529 | −279.605 | +3.446 |
|
||||
| **Origin: Hollywood × Highland** | 34.101545, −118.338718 | **376 515.389** | **3 774 224.083** | 0.000 | 0.000 |
|
||||
| Hero NW corner | 34.101412, −118.340299 | 376 369.380 | 3 774 211.202 | −146.009 | −12.881 |
|
||||
| Hero NE corner | 34.101412, −118.340019 | 376 395.144 | 3 774 210.864 | −120.245 | −13.219 |
|
||||
| Hero SW corner | 34.100919, −118.340299 | 376 368.662 | 3 774 156.533 | −146.727 | −67.550 |
|
||||
| Hero SE corner | 34.100919, −118.340019 | 376 394.427 | 3 774 156.195 | −120.962 | −67.888 |
|
||||
| Mid-block crossing | 34.101552, −118.340338 | 376 365.958 | 3 774 226.819 | −149.431 | +2.736 |
|
||||
|
||||
Cross-check: the hero's projected corners differ by 25.76 m east–west and 54.67 m north–south, matching the 25.7 × 54.9 m footprint measured in [../verification/2026-11-06-el-capitan-block.md](../verification/2026-11-06-el-capitan-block.md). The two methods agree, so the transformation and the origin are consistent.
|
||||
|
||||
Note the sign pattern: the whole block lies at **negative X** and the hero at **negative Y**, which is expected with the origin at the block's east boundary.
|
||||
|
||||
## Axis convention
|
||||
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ Status detail in [Docs/setup.md](Docs/setup.md); workstation audit in [Docs/envi
|
||||
- [x] Save a versioned OSM extract; document date, bounds, and source in `Geo/`.
|
||||
- [-] Acquire separately licensed elevation data if needed. Needed: measured relief is 3.94 m over the block (`Geo/verification/2026-11-06-elevation.md`). Source chosen: USGS 3DEP 1 m DEM, public domain, vertical datum NAVD88.
|
||||
- [ ] Download the 3DEP 1 m DEM for the demo bounds, reproject it to EPSG:26911 with the recorded origin and vertical datum, and record the source, clip bounds, and checksum in `Geo/`.
|
||||
- [-] In QGIS, set a suitable local projected CRS (e.g. EPSG:26911) and record a local origin. CRS and origin point are fixed in `Geo/manifests/local-origin.md`; the EPSG:26911 easting/northing still has to be computed with PROJ/QGIS, which also confirms the transformation.
|
||||
- [x] In QGIS, set a suitable local projected CRS (e.g. EPSG:26911) and record a local origin. EPSG:26911, origin and projected easting/northing are recorded in `Geo/manifests/local-origin.md` with PROJ 9.9.0 control points; QGIS 4.2.3 is installed for the DEM reprojection step.
|
||||
- [x] Verify the address, building footprints, and demo boundaries for 6840 Hollywood Blvd against source data.
|
||||
- [ ] Import OSM blockouts through Blosm; clean and detail them in Blender.
|
||||
- [ ] Preserve geographic coordinates in metadata; define explicit meter→centimeter conversion to local Unreal coordinates.
|
||||
|
||||
Reference in new issue
Block a user