feat: assemble the site and pre-check walkability
site-2026-11-06.blend gathers terrain, street and blockout into categorised collections: 281 objects, ~58k triangles. A downward raycast on a 1 m grid along both sidewalks and the designated crossing finds no holes, so nothing drops the player on either side. Two steps are flagged: 15.8 cm at the sidewalk's outer terrain seam and 10-13 cm ramps at the crossing flush transitions, steeper than a real 8% ramp. Sampling is projected through PROJ: placing points with the OSM spherical approximation put them metres off the UTM meshes and reported 91 phantom holes.
This commit is contained in:
1 parent
d42e39faa9
commit
cc209cde01
5 files changed
+239
-1
No files matched your search
@@ -82,6 +82,39 @@ Crown check on the built mesh at mid-block: gutter −10.5 m → +0.99, −5 m
|
||||
|
||||
Assumptions, recorded rather than hidden: kerb upstand 0.15 m (DEM cannot resolve it), sidewalk widths from the setback arithmetic, and crossing ramps modelled as kerb flushes rather than graded ramps. Crossing markings, kerb radii at the junctions, driveway aprons, drainage inlets, and pavement joints are **not** modelled.
|
||||
|
||||
## Site assembly
|
||||
|
||||
`site/site-2026-11-06.blend` — the three sources in one file, with a walkability pre-check.
|
||||
|
||||
```bash
|
||||
B=/var/lib/flatpak/app/org.blender.Blender/x86_64/stable/active/files
|
||||
LD_LIBRARY_PATH="$B/blender/lib" "$B/blender/blender" -b --factory-startup \
|
||||
--python Tools/site_assembly.py -- --out Art/blender/site/site-2026-11-06.blend
|
||||
```
|
||||
|
||||
Objects are appended from the source files, not regenerated, and grouped into `Site_Terrain`, `Site_Street`, `Site_Blockout` so collision authoring can address them by category. Totals: 281 objects, ~58 k triangles (street 26 784, terrain ~26 k, blockout 4 680).
|
||||
|
||||
### Walkability pre-check
|
||||
|
||||
A downward raycast on a 1 m grid along both sidewalks and the designated crossing, ignoring blockout meshes so marquees and canopies overhead do not count as ground:
|
||||
|
||||
| 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 |
|
||||
|
||||
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.
|
||||
- **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.
|
||||
|
||||
### Collision is not authored yet
|
||||
|
||||
The site is geometry only. On Unreal import the proposal is complex-as-simple collision for terrain and street (they are the walkable surfaces and must not be approximated into ramps over kerbs), and simple convex hulls per building. That decision belongs to the engine step, not to this file.
|
||||
|
||||
## Scale check (blockout, 2026-11-06)
|
||||
|
||||
Blender works in metres, and the imported meshes match the OSM geometry, so the blockout is 1:1 before any Unreal export:
|
||||
|
||||
Binary file not shown.
Reference in new issue
Block a user