# RoM residual rendering and Raksha route review — 2026-10-06 This follows the completed all-30 texture/lighting pass in `ROM_ENVIRONMENT_REVIEW_2026-10-06.md`. The user requested continuation on the remaining Origin root cards and Raksha camera/route defects. Evidence uses new paths under `artifacts/playtest/rom-residual-review-20261006/`; the accepted v5 build, source assets, manifests and screenshots remain historical baselines. Final status on 2026-10-07: Raksha's corrected source entrance/navigation package and reviewed local build are installed. Ordinary entry/first-step walking and camera checks pass. Origin's source-opaque dark root card and Raksha's disconnected Shadoj route remain unresolved; this follow-up does not certify full clears. ## Starting evidence - Origin's `elves_gaint_roots_village` material requests native alpha test 192, but its raw DDS, prepared PNG and shipping KTX mips are fully opaque. The prior exporter omits vertex color/alpha and face-culling data. A fresh source review found `IRuMorphTarget::GetDiffuse()` and native shader multiplication by vertex RGBA; the exact affected meshes and values require verification before a patch. No black-keyed alpha or guessed blend semantics are authorized by this evidence. - Raksha's authoritative source entrance `[1857,297,1161]` maps to local `[-0.020312,21.013313,11.334656]`. Packaged navigation projected it to `[0.021786,10.664467,17.560761]`, a 12.077449 m displacement. That large shift requires source-floor and runtime attribution; it is not yet proof of the camera or walking failure's complete cause. - Shared camera obstruction currently combines physical sphere sweeps with a dedicated wall/pillar sight ray. Raksha also mounts its navigation GLB as physical ground, a workaround introduced before its WDB floor was verified. Any correction must distinguish source geometry, derived navigation and camera-only obstruction, while preserving ordinary right-drag input. ## Scope and validation Luna subprocesses independently inspect native material streams, actual camera framing and source/navigation/collision correspondence. Root owns shared runtime changes and asset promotion. Source experiments remain staged until exact identities, material semantics and preservation proofs are reviewed. Ordinary UI/keyboard checks must verify Raksha entry and reachable movement, Origin material rendering, and Stockade fallback where shared runtime changes apply. Runtime stores remain read-only in gameplay proofs. The review does not certify full clears, combat balance, or a bridge to Origin's disconnected Falynum approach. Final focused checks, build and release hygiene follow the actual implementation. ## Confirmed follow-up findings The fresh, hash-matched `gaint_tree_a.ros` probe reports vertex format 9, no `ruVERTEXFORMAT_DIFFUSE`, and no diffuse-color pointer on material 1's mesh. There is no omitted vertex alpha on this exact root card. The native standard shader defaults to one-sided `D3DCULL_CCW` without a material override, whereas the GLB and runtime draw both sides. The exact-face A/B and reverse-side control confirm that Three FrontSide matches its native winding. However, the dark face visible from the recorded leg-18 walking location is front-facing and remains under FrontSide. Culling therefore does not fix that panel. Its sole native texture channel is diffuse, and DDS/PNG/KTX alpha remains fully opaque. No vertex mask, extra opacity channel or color-key rule supports a transparency patch. Origin remains unchanged; this residual appearance is unresolved. The culling comparison is an isolated environment-preview diagnostic at a recorded walking location, not a new ordinary gameplay run. Exact source, served-asset and screenshot identities are recorded in `origin/culling-ab/origin-roots-village-culling-conclusion.json` under this review's evidence directory. Raksha's bad runtime position has no visible floor below it. The visible deck above it is at Y≈13.408, with physical collision at Y≈13.412; the camera stops 0.320 m below it, matching its radius/gap. At the authored XZ the visible and physical source floors are at Y≈20.770/20.765. Ordinary right-drags confirm the camera is responding correctly within the misplaced volume. The native collision floor in chunk 003 (`01_1_mesh_0`) has interleaved POSITION data (stride 8, offset 0). Recast's Three adapter copies the backing array and steps by three floats, while the pipeline's inspection correctly uses attribute getters. Generation therefore consumes different coordinates than its own input report. The durable fix unpacks positions in memory before generation; source collision and visual bytes remain unchanged. Corrected navigation and entrance candidates require staging, route checks and ordinary gameplay review. ## Packaging gate The corrected full bake restores the entry to `[-0.020312,20.837463,11.334656]`, 0.17585 m from its Lua source point. Exact Detour queries connect the first 2 m and 10 m forward; the route to Shadoj remains partial. Its complete topology contains 137,575 polygons, 268,162 links and 588,703 detail triangles, exceeding the runtime's existing limits of 50,000/100,000/200,000. A packaged-asset integration test caught this before a new build was installed. The first local asset promotion was restored from its exact backups; both promotion and rollback proofs remain in the evidence tree. The full bake remains diagnostic evidence. Shipping selection must retain whole actual Detour components tied to source entrance/population anchors, preserve their exact directed links, and pass all runtime limits. It must not raise budgets or connect disconnected islands. That smaller candidate and ordinary gameplay validation are pending. Source-anchor analysis confirms the source-to-local transform agrees with all 123 active combat/boss rows within 7.5e-7 m. Of 251 entrance/support/population anchor records (including duplicates), only 29 are within the existing 4 m population projection limit of the corrected full navigation. All accepted faces point upward. The other 222 must remain unmatched; snapping them to remote surfaces is not supported. The source entrance and Shadoj are within 0.176 m and 0.034 m respectively, but their components remain disconnected. The workspace-wide prebuild reached the performance audit and failed on an unrelated, concurrently modified Utgarde Pinnacle visual asset: 16,277 draw calls with 14,695 unbatched savings against its existing 14,018 savings ceiling. No RoM visual changed. The previously published immutable Utgarde asset passes the same budget (16,277/14,018), as recorded in `utgarde-frozen-release-budget-proof.json`. This pass will publish only the three Raksha navigation/metadata files and preserve other manifest entries. The workspace-wide audit failure must not be described as a complete prebuild pass. ## Reviewed source-anchored package The fresh v2 bake uses the same path as normal environment regeneration: `lib/source-navigation-anchors.mjs` transforms native recipe points with the full inverse WDB placement; `recast-bake.mjs` queries actual Detour references within explicit limits, rejects missing required anchors, then retains complete weak components. Lua entry must be within 0.5 m and Shadoj within 0.25 m. Other native anchors retain the existing 4 m limit. No runtime budget is raised. V2 contains six complete components, 239 polygons, 514 actual directed links, 653 detail triangles and 1,492 spatial-index references. The exact query input has 128 records (126 native support coordinates plus the two required guards): 16 are retained, 112 remain unmatched. This differs from the preliminary 251-record diagnostic, which duplicated population/support rows. Excluded areas are not individually proven decorative; this is sparse source-anchor coverage, not full-dungeon navigation. Independent review matched every retained polygon, triangle coordinate and directed link against the full bake. V1/v2 BIN chunks are identical; v2 preserves source coordinates/evidence/required flags in JSON provenance. Required entry and boss snaps are 0.17585/0.03368 m. Actual runtime graph checks pass for 2 m and 10 m forward routes; entry-to-Shadoj remains disconnected. The reviewed navigation SHA is `77b2b22bb89474bfe2bd9974d9f58cd680634d4f7feef6163723bb8f3afe6117` (166,048 bytes). Shipping/canonical navigation and reports plus import metadata were promoted with a separate exclusive backup. Visual and all seven collision files are byte-identical to their baselines. Registry regeneration changes only Raksha's navigation identity/counts and entrance/area center; source yaw remains. The scoped content update changes three Raksha files and preserves all 21,602 other manifest entries, frozen as `content-151109efcb20cc00` with manifest SHA `40d5c9e16d8045b8c240d57ca52017aaf95e423c44f96507aceb02285dca693c`. Focused checks pass: 13 Node pipeline tests, 12 runtime tests, and ten Raksha GLBs with zero validator errors/warnings (230 known tooling messages excluded). TypeScript and the isolated production Vite build pass (11.26 s). Static compression produces 258 files from 129 sources; release-bundle verification passes with 126 chunks and 5,569 bootstrap objects/63,571,471 stored bytes. Build index SHA is `8ca382b4ad8919ba100ee1e0ee6c7d64a30b87c7acfbf6d65fc8184eb10c9958`. ## Final gameplay and installation The fresh ordinary Raksha entry is ready/grounded at `[-0.020324,20.857564,11.334658]`. Scene rays hit the actual source deck near Y=20.770, and then its collision-backed initial slope. Four WASD targets are reached; all eight movement samples are grounded and browser errors are zero. Movement completion is 8.554469 m; the later post-release settled screenshot snapshot is 8.876903 m, also grounded. These are separate timestamps, not two route runs. Standard/High use 150% resolution, 16× filtering and authored fill. Held right-drag works without pointer lock, and no overhead obstruction is reported within 40 m. Root reviewed the final entry/step screenshots. The blue exterior background remains visible in side-facing views; broader scenery and the route to Shadoj are not certified by this eight-metre check. The same-build graphics fallback selects **Bazil Thredd** in Stockade Cellblock Rush, validates default 150% and High 200%, plus the Forsaken Abbey comparison, with zero errors. Root reviewed the High Stockade capture. The later complete performance audit is green for 106 assets with 60 known exceptions and zero regressions: the earlier transient unrelated Utgarde failure has cleared. This does not retroactively turn the earlier prebuild invocation into a passing run. The reviewed build is installed as local `dist`; all 5,967 files match it byte-for-byte. The actual previous dist is preserved in the new exclusive `pre-bounded-raksha-dist-backup` (prior index SHA `76096ccd244c96b8163bd179858f3b25f53f29fc13c0a7a03a2edcf0da948a5e`). Earlier asset/build backups remain intact. Local installation proof is `local-build-install-proof.json`; live and frozen content manifests match at the final check. No remote deployment or full-clear/balance certification is implied. Final evidence paths under this review directory: - `raksha-route/source-anchored-v2/`: fresh bake, exact geometry/link/source preservation and runtime graph fixtures. - `raksha-final-gameplay/qa-report.md` and `frames/`: ordinary controls, graphics settings, source-floor/camera rays and frozen build identity. - `graphics-fallback-final/`: selected Stockade boss/settings and screenshots. - `source-anchored-navigation-promotion-proof.json`, `bounded-navigation-content-proof.json`, `local-build-install-proof.json`: guarded asset/content/build installation identities and backups. - `release-check-final.log`: final repository text hygiene, including untracked files. The check passed across 81 changed paths after the final documentation update.