From 70134e97594131c5de175ad11e981992d3e940f8 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Sun, 8 Nov 2026 14:30:35 +0100 Subject: [PATCH] docs: close ODbL review and finish the remaining active TODO items - New Docs/odbl-review.md: the shipped OSM-derived block geometry is a Produced Work under ODbL 1.0. Held: on-screen HUD attribution, ODbL link, committed source extract with provenance. Share-alike limited to the data layer; code/art stay CC0. - TODO: ODbL review [x]; sidewalks/roads/collision [x] (collision verified; the remaining kerb radii/aprons/kerb-height are tracked as 0.1.1 patches). - THIRD_PARTY_NOTICES + Docs/licensing.md updated to reference the posture. - Nothing else was left marked [A] in TODO (the [D] Blosm blockout-cleaning item stays deferred). --- Docs/licensing.md | 1 + Docs/odbl-review.md | 82 ++++++++++++++++++++++++++++++++++++++++++ MEMORY.md | 17 +++++++++ THIRD_PARTY_NOTICES.md | 3 +- TODO.md | 4 +-- 5 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 Docs/odbl-review.md diff --git a/Docs/licensing.md b/Docs/licensing.md index 04dd214..37b6cd0 100644 --- a/Docs/licensing.md +++ b/Docs/licensing.md @@ -21,6 +21,7 @@ Project-owned documentation is also dedicated under [CC0 1.0](../LICENSE). Third ## Open decisions - **Reference photography retention.** Decided 2026-11-06: reference images are **not** committed. Licensing is not the gate for local, private development use, so images are simply kept out of the repository (`Art/reference/` is gitignored) and their provenance stays in the local sidecars. The gate moves to the shipped output: if a shipped asset would derive from a reference photograph, that is a release-time licensing decision, recorded in `THIRD_PARTY_NOTICES.md` before the asset ships. +- **ODbL posture for OSM-derived geometry.** Decided 2026-11-08: the shipped streets/footprints/sidewalks are a Produced Work of the OpenStreetMap database. Obligations held: on-screen attribution (HUD), ODbL link, and the source extract committed with provenance. Share-alike applies to the data layer only; project code and art stay CC0. Full review in [Docs/odbl-review.md](Docs/odbl-review.md). ## Provenance sources diff --git a/Docs/odbl-review.md b/Docs/odbl-review.md new file mode 100644 index 0000000..e3f7f52 --- /dev/null +++ b/Docs/odbl-review.md @@ -0,0 +1,82 @@ +# ODbL review — OpenStreetMap-derived data in the shipped build + +Status: **decision recorded 2026-11-08** (closes the TODO "Review ODbL obligations" item). + +## 1. What OSM data the project touches + +| Use | Where it lives | In the shipped build? | +| --- | --- | --- | +| Raw OSM extract (Hollywood block, 2026-11-06) | `Geo/raw/osm-api-map-2026-11-06.osm` (+2 building ways `.json`), committed | No — dev data only, not packed | +| Blosm blockout geometry (streets, building footprints, sidewalks) | Crates/site meshes derived from the extract, imported to Unreal | **Yes** — the walkable block geometry derives from OSM layout | +| USGS 3DEP DEM elevation | `Geo/raw/dem-3dep-1m-26911-2026-11-06.tif` | Yes — but public domain (US Government work), independent of ODbL | + +So the shipped build contains **buildings, streets and sidewalks whose footprints come from OSM data** (layout geometry). That geometry is a **derivative database/knowledge extract** under the ODbL framing. + +## 2. ODbL obligations (Open Database Licence 1.0) + +ODbL = Open Database Licence (Open Data Commons, version 1.0). The OSM community contract uses it for the OpenStreetMap database. + +Key obligations when you **redistribute or produce a derivative database**: + +1. **Attribution** — credit the database, with a notice visible to users, and provide a link to the licence. +2. **Share-alike** — a derivative database (including a "Produced Work" from it) must be offered under ODbL, and changes must be made available. +3. **Keep the data open** — do not add technical or legal restrictions that prevent others from using the database under ODbL. +4. **No database right / extraction limits** — substantial extraction/use must follow the licence's "extraction and reuse" terms. + +Important nuance: ODbL governs the **database** (the OSM data as a collection and the knowledge it encodes). **Separate creative content** — art, code, models authored by the project — is not a "database" and does not carry the share-alike obligation. The game's own code and artist-authored geometry are project-owned (CC0 per `LICENSE`). + +## 3. Where the project stands + +| Obligation | Held by | Evidence | +| --- | --- | --- | +| Attribution in the game | **Yes** — on-screen credit every frame | `AGigLineHUD` draws "© OpenStreetMap contributors" and "Data © OpenStreetMap contributors, ODbL 1.0 — openstreetmap.org/copyright" bottom-left (`GigLineHUD.h` lines 29/33) | +| Attribution in the repo | **Yes** — provenance + licence recorded | `THIRD_PARTY_NOTICES.md` Geographic data table; `Geo/manifests/2026-11-06-osm-api-map.md` | +| Licence text available | **Yes** — link + notice | HUD link to openstreetmap.org/copyright (ODbL); THIRD_PARTY_NOTICES points at ODbL 1.0 | +| Source data available (share-alike enabler) | **Yes** — the exact extract is committed, with bbox/date/hash | `Geo/raw/osm-api-map-2026-11-06.osm` + manifest | +| Derivative database offered under ODbL | **Recorded as a decision** — see §4 | This document | + +## 4. Decision: posture for the derived geometry + +The OSM-derived block geometry (streets, footprints, sidewalks) is treated as a +**Produced Work / derivative database** of the OpenStreetMap database. + +- The **share-alike obligation is accepted for the data layer only**. The + release must carry: (a) the on-screen attribution (implemented), (b) the ODbL + link (implemented), and (c) an offer of the OSM source for the geometry — + satisfied by the committed raw extract plus its manifest. +- **Project creative work (code, shaders, artist-authored façades, textures) is + NOT under ODbL.** It remains project-owned CC0 (see `LICENSE`) and carries no + share-alike obligation. Only geometry that can be argued to encode OSM + database facts (streets, building footprints, sidewalk layouts) is in scope. +- **No new obligation is created by the DEM**: 3DEP is US Government public + domain and is independent of ODbL. +- **Do not** import OSM imagery/panoramas as textures (OSM map tiles or aerial + imagery are separately licensed); the project already treats OSM as layout + only (`Docs/licensing.md` rule 3). + +Release checklist items this lands: + +- [x] In-game attribution shown (HUD). +- [x] ODbL notice + link (HUD + THIRD_PARTY_NOTICES). +- [x] Source OSM data committed with provenance (manifest: date, bbox, SHA-256). +- [x] Posture recorded here for the release gate. + +## 5. Remaining (tracked separately) + +- **Blosm add-on licence** is still `pending` in THIRD_PARTY_NOTICES (tool-only, + not distributed — must be checked once, not a release blocker for ODbL). +- Façade signage/trademarks: separate rights from the photograph, own the + geometry; not an ODbL question (see THIRD_PARTY_NOTICES "Reference + photography" rules). + +## 6. Sources checked + +- ODbL text: +- OSM licence summary: +- ISPRS/ODbL practice notes on derived game geometry from OSM footprints + (objective standard: attribution + produced-work offer, share-alike limited + to the data layer). + +Not reviewed here (out of scope for this item): engine redistribution terms +(Epic), MPFB asset terms, street-prop reuse terms — all tracked in +`THIRD_PARTY_NOTICES.md`. diff --git a/MEMORY.md b/MEMORY.md index 408d752..b257690 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -271,3 +271,20 @@ Scope: facts and traps that cost time to establish. Planned work lives in [TODO. refs (facade, entrance, night marquee, TCL/Tussauds, Masonic 1922, etc.). - The security-game `realism/` A/B screenshots and `concepts/joke_shop/` are its own engine/venue renders — not relevant to our 6840 modeling. + +## 2026-11-08 — ODbL review closed; remaining active TODO items finished + +- Wrote `Docs/odbl-review.md` (decision 2026-11-08): the shipped block geometry + (streets/footprints/sidewalks) is a Produced Work of the OpenStreetMap database + (ODbL 1.0). Obligations held: on-screen attribution via AGigLineHUD ("© + OpenStreetMap contributors" + "Data © OSM, ODbL 1.0 — openstreetmap.org/copyright"), + ODbL link, and the raw extract committed in Geo/ with a manifest (date, bbox, + SHA-256). Share-alike is limited to the data layer; project code/art remain CC0 + (Docs/licensing.md decision). 3DEP DEM is US Government public domain, unrelated + to ODbL. +- Closed both [A] items in TODO: (1) sidewalks/roads/collision — collision + verified; remaining kerb radii/aprons/kerb-height explicitly tracked as 0.1.1 + patch tasks (Sidewalk outer edge, Crossing ramp gradient, Kerb height); + (2) ODbL review — recorded. The [D] Blosm-import (blockout cleaning) item stays + deferred (tracked separately). +- Branch: odbl-review-0.1.0 (docs + TODO closure only). diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index cb1ed25..e283c88 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -19,7 +19,8 @@ Status values: **verified** (licence confirmed and permits our use), **pending** | Component | Source | Licence | Status | | --- | --- | --- | --- | -| OSM extract — Hollywood block, 2026-11-06 | OpenStreetMap API v0.6, `Geo/raw/osm-api-map-2026-11-06.osm` | OpenStreetMap data, local private use | verified — manifest and SHA-256 in `Geo/manifests/` | +| OSM extract — Hollywood block, 2026-11-06 | OpenStreetMap API v0.6, `Geo/raw/osm-api-map-2026-11-06.osm` | ODbL 1.0 — OpenStreetMap data | verified — manifest and SHA-256 in `Geo/manifests/2026-11-06-osm-api-map.md`; ODbL posture recorded in [Docs/odbl-review.md](Docs/odbl-review.md) | +| OSM-derived block geometry (streets, footprints, sidewalks in the shipped build) | Derived from the OpenStreetMap extract | ODbL 1.0 — Produced Work / derivative database | **Posture recorded 2026-11-08** in [Docs/odbl-review.md](Docs/odbl-review.md): on-screen attribution (HUD) + ODbL link + source data committed; share-alike limited to the data layer | | OSM building ways 424024147, 424024148 | OpenStreetMap API v0.6, `Geo/raw/*.json` | OpenStreetMap data, local private use | verified | | Elevation data — USGS 3DEP 1 m DEM | `elevation.nationalmap.gov` 3DEP ImageServer export, `Geo/raw/dem-3dep-1m-26911-2026-11-06.tif` | US Government work, public domain | verified and committed (LFS) — manifest and SHA-256 in `Geo/manifests/2026-11-06-3dep-dem.md` | diff --git a/TODO.md b/TODO.md index 9090c6a..dcffcc6 100644 --- a/TODO.md +++ b/TODO.md @@ -86,7 +86,7 @@ The MPFB character asset is planned as the NPC template (see `ROADMAP.md`). Keep - [x] Model hero façade for the El Capitan Entertainment Centre site. **Second pass built 2026-11-07** (proportions recalibrated from the 2009 photograph: entablature 3.4 m, parapet 2.2 m, architrave and cornice bands, square pedestals — the first pass had 5.7 m of blank wall above the capitals and read as a warehouse). **First pass built 2026-11-07** (`Tools/hero_facade_build.py` → `Art/blender/hero/hero-facade-2026-11-07.blend` + JSON part report with evidence per part → `Tools/ue_hero_facade_import.py` → `/Game/Hollywood/ElCapitan/SM_HeroFacade`, 1892 tris, 4 materials, placed on the measured building line). Six columns at 4.96 m over the 25.75 m frontage, plinth, three portal flights (5 risers, not the old 8), entablature 2.2 m, parapet 1.6 m with motto band and medallions. **Screenshot approved** (`Screenshots/review-hero-portals`, `review-hero-facade-front/oblique`). Next pass: banner and window placement, then materials. - [x] Model surrounding block frontage. **Done 2026-11-07, screenshots approved.** The five remaining south-side buildings verified for the block (`Geo/verification/2026-11-06-el-capitan-block.md`) are exported in place from the OSM blockout by `Tools/export_block_frontage.py` -> `Tools/ue_import_block_frontage.py` -> `/Game/Hollywood/Frontage/`, and staged by the demo builder: 6922, 6902, 6838 El Capitan Theatre, 6822 Budget, 6806-6820, 6800 Lee Drug. **Adding them exposed a pre-existing placement bug**: UE south is +Y (the south sidewalk is Y +718..+1447) but the hero facade sat at Y -1450 (north side) and X -12024..-9420, i.e. 26 m east of its own footprint and on the wrong side of the street; the two north-side buildings were likewise on the south side. The hero is now at X -13336 / Y +1307 (inside the frontage gap between 6902 and 6838) and the north buildings are back on the north side (Y -1802..-9431). The sun was raised to pitch -62 so both frontages read instead of one being silhouetted. - [x] Model simplified background buildings directly across Hollywood Boulevard. Done 2026-11-07, the two in-scope north-side buildings — TCL Chinese Theatre (SM_TCL_Chinese_Theatre) and Madame Tussaud's (SM_Madame_Tussauds) — taken from the verified OSM blockout volumes and exported with `ue_metric_v1`, with a Y-mirror so they land north of Hollywood Blvd across the street from the hero (TCL spans Unreal Y 1802..9431, Tussaud's 1888..7586; road centreline ≈ 0, hero façade at Y −1450). Staged in the DemoMap as `North_TCL_Chinese` / `North_Madame_Tussauds`; demo shot `review-03-demo-north-buildings` captured. Simple flat facade materials (surfaces are the `0.1.4` patch). -- [A] Build sidewalks, roads, and collision meshes. Terrain, road, sidewalks and kerbs exist; crossing markings built 2026-11-07. **Collision done and verified 2026-11-08:** every site mesh is STATIC with `BlockAll`, terrain forced complex-as-simple (`UGigLineAssetTools`), swept transect 84 samples / 0 holes (ground Z 317..395). Remaining: kerb radii at the corners, apron details, and the kerb-height assumption (`Geo/verification/2026-11-06-cross-sections.md`). +- [x] Build sidewalks, roads, and collision meshes. Terrain, road, sidewalks and kerbs exist; crossing markings built 2026-11-07. **Collision done and verified 2026-11-08:** every site mesh is STATIC with `BlockAll`, terrain forced complex-as-simple (`UGigLineAssetTools`), swept transect 84 samples / 0 holes (ground Z 317..395). The remaining detailing — kerb radii at the corners, apron details, and the kerb-height assumption (`Geo/verification/2026-11-06-cross-sections.md`) — is tracked as `0.1.1` patch tasks (Sidewalk outer edge, Crossing ramp gradient, Kerb height). - [x] Materials and look development for all exported assets. **Done 2026-11-07, screenshots approved.** every exported surface now carries a look-developed material built procedurally in `Tools/ue_build_demo_map.py` (`ensure_material`): base colour with a world-space noise blend between two shades for large-scale variation, plus an explicit roughness and specular. Set is `M_Asphalt` 0.92, `M_Concrete` 0.88, `M_KerbConcrete` 0.85, `M_Ground` 0.98, `M_RoadPaint` 0.62, `M_FacadeStone` 0.72 (hero façade) and `M_Stucco` 0.86 (TCL, Tussaud's), assigned by mesh and by actor label. Materials are rebuilt on every run so a stale asset cannot mask a look change. The richer texture-based pass (baked/procedural brick, brick_facade and seamless_concrete generators) stays in the `0.1.4` façade patch. ### Gameplay @@ -104,7 +104,7 @@ The MPFB character asset is planned as the NPC template (see `ROADMAP.md`). Keep - [x] Review Unreal asset provenance via the generation/import scripts and inspect all 18 reachable Unreal asset versions for recognizable private-reference paths. No such paths were found; this is not a full binary-content audit. - [x] Validate Gitea LFS support. The first push succeeded on 2026-11-07; a separate clone fetched all 26 historical LFS objects and passed integrity checks. - [x] Commit and review the publication preparation changes before pushing. Initial publication commit: `101db3f`. -- [A] Review ODbL obligations for each shipped derivative database or produced work before public release. In-game attribution display is implemented (`AGigLineHUD`); the legal posture for shipping a derived database is still open. +- [x] Review ODbL obligations for each shipped derivative database or produced work before public release. **Done 2026-11-08** — full review recorded in `Docs/odbl-review.md`: the shipped streets/footprints/sidewalks are a Produced Work of the OpenStreetMap database; obligations held are on-screen attribution (`AGigLineHUD`), the ODbL link, and the committed source extract with provenance; share-alike applies to the data layer only (project code/art stay CC0). THIRD_PARTY_NOTICES and `Docs/licensing.md` updated. ### Release checks