diff --git a/Art/blender/README.md b/Art/blender/README.md index d43292d..690c249 100644 --- a/Art/blender/README.md +++ b/Art/blender/README.md @@ -80,7 +80,10 @@ LD_LIBRARY_PATH="$B/blender/lib" "$B/blender/blender" -b --factory-startup \ ``` - `Road_Hollywood`: 8 120 verts, 7 812 faces, carriageway −10.5…+10.5 m, DEM elevations plus a 2 cm lift so it does not z-fight the terrain. -- `Sidewalk_South` 4.0 m wide, `Sidewalk_North` 5.3 m wide, both raised by the kerb height. +- `Sidewalk_South` 4.0 m wide, `Sidewalk_North` 5.3 m wide. The kerb upstand is + **full at the road-side edge and tapers to zero at the building-side edge**, so + the walk surface meets the terrain flush (before `0.1.1` the outer lip stood the + full kerb height above the DEM — a 15.8 cm ledge). - `Kerb_South`, `Kerb_North`: vertical faces, mostly **0.13 m** — the 0.15 m assumption minus nothing on the road side — and flushed to 0 within ±2.5 m of each signalised crossing with a 1.5 m blend. Measured from the built mesh: 256 steps at 0.13 m, 15 flush, a few in transition. Crown check on the built mesh at mid-block: gutter −10.5 m → +0.99, −5 m → +1.38, centre → +1.52, +5 m → +1.58, +10.5 m → +1.52. The crown sits just north of the centreline, as the cross-sections said. @@ -105,13 +108,16 @@ A downward raycast on a 1 m grid along both sidewalks and the designated crossin | Route | Samples | Holes | Z range | Worst step | | ----------------- | ------: | ----: | ------------- | ---------: | -| South sidewalk | 279 | 0 | −0.45 … +3.13 | 20.5 cm | -| North sidewalk | 279 | 0 | +0.07 … +3.83 | 15.1 cm | -| Crossing at 130 m | 26 | 0 | +1.16 … +1.80 | 8.6 cm | +| South sidewalk | 279 | 0 | −0.47 … +3.06 | 13.4 cm | +| North sidewalk | 279 | 0 | +0.07 … +3.76 | 7.2 cm | +| Crossing at 130 m | 26 | 0 | +1.14 … +1.80 | 9.0 cm | No holes anywhere, so nothing drops the player on either side. The two flagged steps: -- **15.8 cm at s≈207**, where a sample crosses from `Terrain_DEM` onto `Sidewalk_South` — that is the sidewalk's outer edge, the 0.15 m kerb height minus the terrain. Mostly hidden by buildings, but it is a real edge and it will be visible anywhere a building is missing. +- ~~15.8 cm at s≈207, the sidewalk's outer edge~~ — **fixed in `0.1.1`**: the + sidewalk upstand now tapers to zero at the building side, so the outer edge is + flush with the terrain. The remaining 13.4 cm max step on the south route is the + crossing-ramp gradient below, not the outer edge. - **10–13 cm steps at s≈33, 39 and 126**, inside the sidewalk mesh: the kerb-flush transition at the crossings. That is a ~10 % ramp over 1.5 m, steeper than a real crossing ramp (8 % max). Worth grading properly when the crossings are detailed. This is a pre-check, not the `0.1.0` release check: the release check is traversal in the engine. diff --git a/Art/blender/site/site-2026-11-06.blend b/Art/blender/site/site-2026-11-06.blend index cb34036..360e910 100644 --- a/Art/blender/site/site-2026-11-06.blend +++ b/Art/blender/site/site-2026-11-06.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a54ae747e4990399c8f269b8ebe5a3f1bf0d6cca4ac2dd9ca2562f66f5eedfb -size 994709 +oid sha256:c5ff1f65f556cd6962d90e82fc65fa5db07d4ab25296c49afdba1db3ec9f70a3 +size 994509 diff --git a/Art/blender/street/street-2026-11-06.blend b/Art/blender/street/street-2026-11-06.blend index ae518a9..cd01759 100644 --- a/Art/blender/street/street-2026-11-06.blend +++ b/Art/blender/street/street-2026-11-06.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5744a2138e894a485f026d92b9311f7ecde12c280dd096bbbde5776694b32ae2 -size 514185 +oid sha256:b6fd43af2cedfa81b334071c4b0e464367fe74de0d952af7f3e409ca2ae1b335 +size 514256 diff --git a/Art/blender/street/street_mesh.py b/Art/blender/street/street_mesh.py index 368a18c..d1fe242 100644 --- a/Art/blender/street/street_mesh.py +++ b/Art/blender/street/street_mesh.py @@ -218,13 +218,31 @@ def main(): z = dem_z(x, y) return (z if z is not None else 0.0) + 0.02 - def south_z(r, off, x, y): + def sidewalk_z(r, off, inner, outer, x, y): + """Sidewalk surface: full kerb upstand at the road-side (inner) edge, + tapering to zero at the building-side (outer) edge so the walk surface + meets the terrain flush. + + Before this taper the outer lip stood the full kerb height above the DEM, + which the walkability pre-check measured as a 15.8 cm step where a sample + crosses from Terrain_DEM onto Sidewalk_South (with a matching lip on the + north side). A 0.15 m lip over a 4.0 m / 5.3 m strip is a ~3-4 % ramp: + walkable and visually negligible, and it removes the ledge entirely. + """ z = dem_z(x, y) base = z if z is not None else 0.0 - return base + kerb_height(rows[r][0], args.kerb, args.ramp_half_width, args.ramp_blend) + h = kerb_height(rows[r][0], args.kerb, args.ramp_half_width, args.ramp_blend) + span = inner - outer + if abs(span) < 1e-9: + return base + h + t = min(1.0, max(0.0, (off - outer) / span)) + return base + h * t + + def south_z(r, off, x, y): + return sidewalk_z(r, off, SOUTH_GUTTER, SOUTH_SIDEWALK, x, y) def north_z(r, off, x, y): - return south_z(r, off, x, y) + return sidewalk_z(r, off, NORTH_GUTTER, NORTH_SIDEWALK, x, y) road = strip(rows, road_offsets, road_z, "Road_Hollywood", asphalt) sw_s = strip(rows, south_offsets, south_z, "Sidewalk_South", concrete) diff --git a/Docs/Architecture/architecture.md b/Docs/Architecture/architecture.md index 4c42855..bace77d 100644 --- a/Docs/Architecture/architecture.md +++ b/Docs/Architecture/architecture.md @@ -1,8 +1,9 @@ -# Gig Line Architecture Documentation - -> Linux-first walking/driving demo around 6840 Hollywood Blvd - -Version 0.1.0 — 2026-11-08 — initial architecture documentation +--- +title: Gig Line Architecture Documentation +description: Architecture documentation for the Gig Line Linux-first Unreal Engine 5 demo around 6840 Hollywood Blvd. +status: v0.1.0 +date: 2026-11-08 +--- # Introduction and Goals diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index 6d5df4d..441f52c 100644 --- a/Game/GigLine/Content/Hollywood/DemoMap.umap +++ b/Game/GigLine/Content/Hollywood/DemoMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:be8dedbeed8402c51550ad5dd8cdd0734b02831da440491da682d693cf90f24b -size 54516 +oid sha256:d895d0ff1471f52cf0296fa6c8eb30dd54295a2b3479926197f5314312584525 +size 53215 diff --git a/Game/GigLine/Content/Hollywood/Site/Crossing_Markings.uasset b/Game/GigLine/Content/Hollywood/Site/Crossing_Markings.uasset index 056b009..c9515e4 100644 --- a/Game/GigLine/Content/Hollywood/Site/Crossing_Markings.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Crossing_Markings.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ebac8b2f24eb5a9694ae773afd066c8119b35e508b9768443a115591943ef3d0 +oid sha256:2318c13c26cc539ae3f51db249ffc40a36d68fe4cb97eabf6f82f4d9dd1c95e5 size 75501 diff --git a/Game/GigLine/Content/Hollywood/Site/Kerb_North.uasset b/Game/GigLine/Content/Hollywood/Site/Kerb_North.uasset index a565fe5..e423519 100644 --- a/Game/GigLine/Content/Hollywood/Site/Kerb_North.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Kerb_North.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:afc0287a2021ac3c8249a6071a34c1b7d20e86329071bb0ec47971f675703f13 +oid sha256:a4966e8f9205bf547032ef629f70e48481e7573608d2ea8e5d7051f6f878c957 size 83550 diff --git a/Game/GigLine/Content/Hollywood/Site/Kerb_South.uasset b/Game/GigLine/Content/Hollywood/Site/Kerb_South.uasset index a5257be..a2deb43 100644 --- a/Game/GigLine/Content/Hollywood/Site/Kerb_South.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Kerb_South.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:244dc615c604332bc8046c61305264997f63d03bc6ed33281e22436a8fb17127 +oid sha256:01c4b2118de22406b8fbc8fd4556d4d476e10b0bb6118d58954fc4da4fdb670a size 83797 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset index 786ce6a..3562b92 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3984f701d136b0931c56a87109f862ed16132ff210cc348cdbbc122f35d98478 +oid sha256:9eeb55d1b26f485e170aafad8c17ad3c270ad530c52e7c0092d72a9f0f2d7629 size 7876 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset index f526b3a..bc950ac 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a9537f05120a0cb5fc0bacac1fc44847e983ba757866316cb5e9a10fd142e53 +oid sha256:442b3759188e094cdd8f91d3f36f8ad864a924b40c379f853b76addacf97e102 size 7881 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset index 5382da3..875d74d 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:89fc0b99258c68c458dfc13e32d2ac8dd1e0977891d5992c38d123657f3a78d0 +oid sha256:beedb4e04fe8dff9b50e952f05edc89c739b79c5ea22bc0d5e721266c9cd3529 size 7896 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset index b5edd8a..5ac455a 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a143de1f26d5fe2c053571b25e5ead359cfba9ed12b09b9e703fe269fda09161 +oid sha256:51d58cd121f46ecac82af7a1a7540e026b577ec9dd79747228f82f0e263e1ec8 size 7871 diff --git a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset index daaddd6..0cceede 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d61219af92c368d63d810a880cd479568edd55ec1e13d3a0921a15b5f0bd029 +oid sha256:dd602407a4d0d285d7c3dc6963757ab314dcf8a6877a01e296f8e0a5b2afea39 size 7901 diff --git a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset index 2e27ef9..23959d0 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f09f4c1cb9c3d6dc98223d3046cab45453693794ea7089203f442ac4162c9fc6 +oid sha256:fb46db9cc702fa72fd94793a0c5a56d36cfad1bcb64ea400289a5e720791f0a3 size 7886 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset index 5f5c400..b2513c5 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6ad2b4e24f36480b4089a509186d2cbbf8f03e50d9a6f50342420285acbed791 +oid sha256:e65970022b0d2c53a037618e92b0ea93a0cf5a10d77d102145082a1d90daf192 size 7871 diff --git a/Game/GigLine/Content/Hollywood/Site/Road_Hollywood.uasset b/Game/GigLine/Content/Hollywood/Site/Road_Hollywood.uasset index affcbe6..89eb8d0 100644 --- a/Game/GigLine/Content/Hollywood/Site/Road_Hollywood.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Road_Hollywood.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:484203d50293ca93dcdfceb275c24587a40f70892698b6f6950b600358522fa3 +oid sha256:6b7fa13c87b931105171e382b88261628d8d02ffff596e8fa04fe42ed9059f00 size 309812 diff --git a/Game/GigLine/Content/Hollywood/Site/Sidewalk_North.uasset b/Game/GigLine/Content/Hollywood/Site/Sidewalk_North.uasset index c335f1a..0ec42bd 100644 --- a/Game/GigLine/Content/Hollywood/Site/Sidewalk_North.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Sidewalk_North.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53bc30b5df51eabe14e5a31e33fd5b0d641160289c92dd3717df5af8b9bd43e2 -size 150678 +oid sha256:e43ac64abd1d845495263ea59e247e88465ee96dafc7eb31fbb2177f33fba5be +size 150192 diff --git a/Game/GigLine/Content/Hollywood/Site/Sidewalk_South.uasset b/Game/GigLine/Content/Hollywood/Site/Sidewalk_South.uasset index 11756b3..e665035 100644 --- a/Game/GigLine/Content/Hollywood/Site/Sidewalk_South.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Sidewalk_South.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a1f11f8a3448a0e26a530d928d5e613c673f3b899ee1922ef7d9eb7b3c428c06 -size 164349 +oid sha256:7d006339dff01b3a948905d56be4fa4b823bc25aaa896da82c97e158b2992dbf +size 164909 diff --git a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset index 3d200fd..45fb5db 100644 --- a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a1e69c853b4d19fd9e445b29d89dd6feb69057f17de54edfdec3d784b3ba779 +oid sha256:162f7771f45b6a8cdca4ff2f59dde6469880ae46953711ee81b1b4bade148164 size 335528 diff --git a/TODO.md b/TODO.md index a93c676..5ad5e22 100644 --- a/TODO.md +++ b/TODO.md @@ -15,7 +15,7 @@ Suggested blender skills: **collision-proxy** (UCX/UHX naming, convex hulls, sim ### Patch tasks - active - 01a1b26b-3c94-707f-9665-2f6b4a79b564 (branch `collision-detail-0.1.1`) -- [A] **Sidewalk outer edge against terrain.** The pre-check measured a **15.8 cm** step where a walk sample crosses from `Terrain_DEM` onto `Sidewalk_South` (`Art/blender/README.md`, s≈207 m). Mostly hidden by buildings; visible wherever the frontage is missing. Fix by extending the sidewalk mesh to meet the terrain, or by lowering the outer lip. +- [x] **Sidewalk outer edge against terrain.** **Fixed 2026-11-08:** the sidewalk kerb upstand now tapers from full at the road-side edge to zero at the building-side edge (`Art/blender/street/street_mesh.py` `sidewalk_z`), so the walk surface meets the terrain flush instead of standing the full 0.15 m kerb above the DEM. Pre-check after the change: south max step 20.5 → **13.4 cm**, north 15.1 → **7.2 cm** (the remaining 13.4 cm is the crossing-ramp item below). Street/site rebuilt, site re-imported, DemoMap rebuilt; packaged `-qaselftest` still PASS (walk/reset/pause, transect 0 holes, wall probe 0/35). - [ ] **Crossing ramp gradient.** The kerb-flush transitions measure **10–13 cm over 1.5 m ≈ 10 %**, steeper than the 8 % a real ramp uses (`Geo/tools/street_section.py` output, s≈33, 39, 126 m). Grade the three ramp openings properly. - [x] **Collision authoring pass.** Terrain and site meshes use complex-as-simple / `BlockAll` (forced by `UGigLineAssetTools`, verified 2026-11-08 with 84-sample transect). Remaining: simple convex hulls per building (currently using default collision). Record the final settings in `Docs/build.md`. - [ ] **Kerb height is an assumption.** 0.15 m modelled, 0.13 m as built, and the 3DEP DEM cannot resolve a kerb at all. Check against the photographs and record the final figure.