4.3 KiB
RuneWaker WDB environment assembly audit
Structural validation: green Source-behavior review: review-required
This deterministic audit reads the checked-in WDB reports and environment recipes. It does not convert or replace shipping GLBs. The builder now supports every valid ROS placement resource with normalized-path model caching validated by source hashes and the complete translation/quaternion/scale transform relative to the reviewed primary placement.
Coverage
- 30 dungeon WDB packages and 15976 source descriptors.
- 2799 per-dungeon unique ROS resources (resources reused across dungeons share cache keys).
- 15976 static placements and 0 explicitly reviewed dynamic placements.
- 107 filename-based dynamic candidates remain static and review-required; names never prove behavior.
- 0 unsupported placement records and 0 missing source ROS resources.
| Dungeon | Mode | Descriptors | Resources | Static | Dynamic | Dynamic review | Unsupported | Missing ROS |
|---|---|---|---|---|---|---|---|---|
| aeternal-circle | all-ros | 575 | 182 | 575 | 0 | 54 | 0 | 0 |
| barren-caves | all-ros | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| cave-water-dragon | all-ros | 121 | 16 | 121 | 0 | 0 | 0 | 0 |
| demon-stronghold | all-ros | 90 | 4 | 90 | 0 | 0 | 0 | 0 |
| demon-stronghold-125 | all-ros | 90 | 4 | 90 | 0 | 0 | 0 | 0 |
| dungeon-of-dalanis | all-ros | 652 | 124 | 652 | 0 | 5 | 0 | 0 |
| forsaken-abbey | all-ros | 184 | 26 | 184 | 0 | 1 | 0 | 0 |
| grafu-castle | all-ros | 899 | 286 | 899 | 0 | 17 | 0 | 0 |
| hall-of-survivors | all-ros | 296 | 32 | 296 | 0 | 0 | 0 | 0 |
| hoto | all-ros | 1627 | 119 | 1627 | 0 | 0 | 0 | 0 |
| ice-dwarf-kingdom | all-ros | 1054 | 209 | 1054 | 0 | 0 | 0 | 0 |
| kal-turok-hive | all-ros | 2 | 2 | 2 | 0 | 1 | 0 | 0 |
| kalins-shrine | all-ros | 943 | 133 | 943 | 0 | 0 | 0 | 0 |
| kawaks-tomb | all-ros | 573 | 60 | 573 | 0 | 0 | 0 | 0 |
| kulech-bones-nest | all-ros | 199 | 52 | 199 | 0 | 0 | 0 | 0 |
| lair-demon-dragon | all-ros | 530 | 96 | 530 | 0 | 0 | 0 | 0 |
| mystic-altar | all-ros | 2096 | 48 | 2096 | 0 | 0 | 0 | 0 |
| paspers-shrine | all-ros | 564 | 143 | 564 | 0 | 0 | 0 | 0 |
| raksha-temple | all-ros | 1028 | 228 | 1028 | 0 | 11 | 0 | 0 |
| sand-vortex | primary-only-procedural-fallback | 20 | 14 | 20 | 0 | 0 | 0 | 0 |
| sardo-castle | all-ros | 436 | 132 | 436 | 0 | 0 | 0 | 0 |
| the-origin | all-ros | 693 | 220 | 693 | 0 | 17 | 0 | 0 |
| tomb-seven-heroes | all-ros | 450 | 56 | 450 | 0 | 0 | 0 | 0 |
| treasure-trove | all-ros | 908 | 193 | 908 | 0 | 1 | 0 | 0 |
| warnorken-arena | all-ros | 256 | 14 | 256 | 0 | 0 | 0 | 0 |
| ystra-labyrinth-boss1 | all-ros | 3 | 1 | 3 | 0 | 0 | 0 | 0 |
| ystra-labyrinth-boss2 | all-ros | 3 | 1 | 3 | 0 | 0 | 0 | 0 |
| ystra-labyrinth-boss3 | all-ros | 3 | 1 | 3 | 0 | 0 | 0 | 0 |
| zurhidon-stronghold | all-ros | 840 | 201 | 840 | 0 | 0 | 0 | 0 |
| zurhidon-stronghold-124 | all-ros | 840 | 201 | 840 | 0 | 0 | 0 | 0 |
Runtime-facing output
A full build writes wdb-placement-manifest.json beside the environment package. Each
placement has a stable WDB GUID ID, normalized resource/cache key, source TRS, primary-local
Three.js matrix, bounds, flags, asset status, and optional reviewed dynamic definition.
Static placements are assembled into the optimized visual and navigation collision. Reviewed
dynamic placements are omitted from static collision and packaged as separately addressable GLBs.
Unsupported or review-required behavior
- WDB placement resources other than ROS are recorded but not converted.
- Particle, light, sound, camera, and script-only components absent from ROS mesh descriptors remain unsupported.
- Animated/stateful behavior remains unsupported until an exact reviewed dynamic-placement rule supplies its kind, initial state, collision policy, and evidence.
- A ROS that the preserved exporter cannot decode is skipped, recorded with its resource path and failure, and never replaced with guessed geometry.
- The primary-only top-down preview and editable
.blenddo not include the final merged WDB assembly; the generated GLB and placement manifest are authoritative. - Dynamic-candidate filenames are not enough to remove geometry from the static package. Add a
reviewed
source.wdbAssembly.dynamicPlacementsrule with evidence first.
Validation issues
- None.