# Critique after M3 (2026-10-05) Judged only against `BRIEF_UE.md` (U1-U14, V1-V13). Read-only pass: nothing was built or run. Evidence is what is on disk: shots in `Saved\Shots` (opened and looked at), dumps in `Saved\State`, and source where a claim can only be checked in code. STATUS.md and `status\m3.md` were treated as claims. Status: COMPLETE. Note on the pictures: every scenario shot is taken with the UI switched off (`DescentDebugSubsystem.cpp:125`, `bInShowUI false`). So no picture on disk shows the real HUD over real play; the HUD pictures (`ui_hud_layout_*`, `ui_windows_*`) are drawn from demo data. HUD statements below rest on the HUD model values in the dumps. ## Verdicts | Req | Verdict | Evidence | Shortfall the user would see | |---|---|---|---| | U5 26 C inside | PASS | `m3_cockpit_bay_dash.png`: the dash of the Tender docked in the bay reads `TEMP 26.0 °C`. Dumps `m3_launch_dock_end`, `m3_crush_end`, `m3_swim_end` (on foot): HUD `CABIN 26.0 °C`; stowed Tenders `dash.temp_c` 26; outside `WATER 4.2 °C` / dash 4.2 (`m3_no_walls_end`) | none | | U6 dry interior | PASS (fish part not judgeable: no fauna before M8/M9) | `m2_dry_bridge_water_on.png` against `_water_off.png`: the room is identical, only the windows change. Bay shots `m3_launch_dock_bay_carousel.png`, `_bay_carousel_aft.png`, `m3_carousel_rotation_mid.png`, `m2_walk_room_stair.png`: no fog, tint or particles. Dump: 54 of 54 interior primitives carry the dry stencil | Seen from the cockpit in the bay the whole room is tinted teal (`m3_cockpit_bay_dash.png`, compare `m3_launch_dock_dock_rise.png`). It is even with distance, so it reads as tinted canopy glass, not fog; worth one look by the user | | U7 no invisible walls | PASS | Source: `TenderFlight.cpp:254-256` and `DescentCharacterMovement.cpp:88-90` integrate position with no clamp; a search of `Source\TheDescent` for position clamps and world bounds finds none. `m3_no_walls_end.json`: Tender at Z +117 (87 m above the rim), HUD warning `SHEAR CURRENT — ASCENT NOT AUTHORISED` on, warning starts at Z 10. `m3_no_walls_pocket_cockpit.png` (X 5,000 m, far outside v2's box) and `_deep_cockpit.png` (3,680 m) show the dash still counting | Not verifiable from disk: steering with a real mouse (never injected; a person flying it would settle the user's "could not move freely"), the swimmer in the Shear, a Tender hitting the carrier hull at speed. The pool mouth is solid to a free Tender and is covered by an automatic dock (`m3_cockpit` log claims 0 contacts) | | U8 bigger map | PASS | `DescentTune_World.h:71-73`: designed box 1,890 x 1,460 x 1,760 m against v2's 560 x 700 x 600 m (3.4 x 2.1 x 2.9 per axis); carrier descent from Z -30 to the goal at Z -1,325. Canyon 1,100 m long, 4 wells, 24 chambers, 600 deposits (`world_def` in the dumps) | The box is mostly rock (`m1_world_slices_section_y-25.png`). How much open water there is to fly through is not measured anywhere on disk | | U10 left side free (placement only) | PASS | `KazahTender.cpp:95-103` moves and mirrors `Tool_Housing` to +Y (starboard). Dump: BT-01 at Y 26.72, tool pivot at Y 27.41, port rotor at Y 25.64. `kazah_showcase_front34.png`: the housing sits under the right half of the nose. The tool itself is M4 | none for placement | | U11 cargo display (as far as built) | PARTIAL | Exists as a second cockpit panel fed by the hold (`ui.cargo_display` in the dumps: 8 cells, counts, bio). `ui_dash_dash_screen_full.png` (demo data): ore pieces by colour, fill bar, `HOLD FULL` | In the pilot's forward view (`m3_launch_dock_cockpit.png`, `m3_no_walls_rock_east.png`) the panel sits in the bottom right corner, tilted, about a fifth of the screen wide, and its lower edge is cut off by the screen: the BIO value is half out of the picture. Empty cells are almost invisible. A filled hold has never been pictured in the real cockpit | | U12 bloom | PASS | `look_bloom_bloom1.json` against `_bloom0.json`: the ring around a saturated lamp is 0.040 with bloom and 0.031 without; outer ring 0. Dump: intensity 0.15, threshold 1.2. Lamps and dash gauges in `m3_launch_dock_bay_carousel.png`, `m3_cockpit_bay_dash.png` have thin glows. A bloom slider is in the pause window (`ui_windows_win_pause_bloom.png`) | The moon pool is clipped to pure white with a cyan fringe on rails and hull (`m12_boot_bay_pool.png`, p99 luma 0.997; `m3_launch_dock_dock_rise.png`). It is overexposure, not bloom, but it is the same kind of glare the user complained about | | V1 dark, deeper darker, own lights precious | PARTIAL | Deeper is darker: `look_throat_throat.png` (teal at the top), `m3_launch_dock_cockpit.png` (1,837 m, dim teal), `m3_no_walls_deep_cockpit.png` (3,680 m, black). Unlit rock is black; only the headlamp shows it | The rock in the lamp is a soft blurred disc with no edges, facets or shadows: `look_near_wall_near_wall.png`, `look_deep_lamp_deep_lamp.png`, `m1_terrain_tour_tour_start.png`, `_tour_goal.png`, `m1_carve_carved_after.png`, `m3_no_walls_rock_east.png`. In the carved pocket it is bright speckle noise instead (`m3_no_walls_pocket_cockpit.png`). In neither case can the user read the shape of a wall, a tunnel mouth or a vein. No marine snow, no visible light beam | | V4 multi-deck carrier, few exterior lights | PASS (as a blockout) | `DescentTune_Carrier.h:12-21`: hull 120 m long, 24 m across, three deck levels; dump: 16 rooms, 6 exterior lights. `m2_walk_room_stair.png`, `m3_launch_dock_bay_carousel_aft.png` (stairs, gallery). `m2_exterior_exterior_dark.png`: a dark silhouette with one green point | Rooms are plain tiled boxes with box furniture (`m2_dry_bridge_water_on.png`); the user has given no carrier model yet. From below, the pool mouth is a white rectangle far brighter than any exterior light (`m3_launch_dock_launch_mid.png`, `m3_swim_swim_under_carrier.png`) | | V5 sub bay, subs never clip | PASS | Dumps: `carrier.carousel.min_clearance_seen_m` 0.343 over three rotations (`m3_carousel_end`), 0.655 on the hoist path (`m3_launch_dock_end`). Pictures: `m3_launch_dock_bay_carousel.png`, `_bay_carousel_aft.png`, `m3_carousel_rotation_mid.png`, `_launch_mid.png`, `_dock_rise.png`, `m3_cockpit_nose_from_above.png`: nothing passes through anything | Margin to the port wall is 34 cm, thin but clear. The cargo pipe riser of M5 is only reserved as a box, not built | | V6 cockpit dashboard, accurate and consistent meters | PASS for the Tender (carrier helm dash: M6) | Dash readable in `m3_launch_dock_cockpit.png`. HUD and dash agree in every dump with a piloted Tender: depth `1,663 m` / `1,663 m`, `1,826` / `1,826`, `1,827` / `1,827`; temperature 4.2 / `WATER 4.2 °C`, 4.75 / `WATER 4.8 °C`; `HOLD 0/8` on dash and cargo panel | Not visible to the player but real: the hidden HUD vehicle panel keeps old numbers (`m3_crush_end`: hull 0, power 97.8 after respawn while the Tender itself has 100 and 60.2; `m3_carousel_end`: speed 0 against 0.94). If that panel is ever shown without a refresh the two would disagree | | V9 swim, pool drop, leave and re-enter subs, O2 on HUD | PASS | Mode sequences in the dumps: `m3_swim_end` `Foot>Swim>Ladder>Foot>Swim>Dead>Foot` (drop through the rail gap, ladder out, drowning, respawn in the galley, debt 900); `m3_ui_end` `...Launch>Sub>Swim>Sub` (leave and re-enter at sea). O2: `DescentPlayerController.cpp:329` shows the gauge while swimming, `DescentHUD.cpp:183` draws it; `m3_swim_swim_under_carrier.png` | No picture shows the O2 gauge during a real swim (shots have no UI). O2 drain 1.0 per second and drowning 9 HP per second are log claims only; the end dump shows O2 back at 45 | | V10 detailed Tender, real glass, spinning propeller | PASS | `kazah_showcase_front34.png`, `m3_swim_pool_gap.png`: the user's Kazah model, a transparent canopy with highlights and the seat and dash seen through it. Rotors are separate parts (`Rotor_Port`, `Rotor_Stbd` in the dumps); `rotor_total_deg` 28,151 (`m3_rotor_end`), 121,945 at 518.5 rpm (`m3_no_walls_end`); `m3_rotor_rotors.png` | A still cannot show spin; the numbers do. The white hull shows faceted shading near the roof hatch (`m3_swim_pool_gap.png`) | | V13 neumorphic UI | PASS | `ui_hud_layout_hud_1280x720.png`, `ui_dash_dash_screen_full.png`, `ui_windows_win_pause_bloom.png`: dark soft-shadowed raised and inset panels, ring gauges, pill buttons, one style throughout | Seen only with demo data (see the note on pictures) | | U1 | not built yet (M7) | | | | U2 | not built yet (M8) | | | | U3 | not built yet (M8) | | | | U4 | not built yet (M6) | | | | U9 | not built yet (M6) | | | | U13 | not built yet (M5) | | | | U14 | not built yet (M5; the arms M7) | | | | V2 | not built yet (sonar and map M9) | | | | V3 | not built yet (M9) | | | | V7 | not built yet as gameplay (M4) | | | | V8 | not built yet (M4-M5; crush depth alone is in) | | | | V11 | not built yet (M4, M7) | | | | V12 | not built yet (M6) | | | ## The three most important shortfalls 1. **Rock in the lamp cannot be read (V1).** In six shots the headlamp shows a soft blurred disc, and in the carved pocket bright speckle. The user would not see wall shape, tunnel mouths or veins by their own light. 2. **The cargo display is half out of view (U11).** From the pilot's seat it sits in the bottom right corner with its lower edge and the BIO value cut off by the screen, and it has never been pictured filled in the real cockpit. 3. **The moon pool is a pure white glowing rectangle, not water (U6 wording, U12, V4).** It is the brightest thing inside the bay and under the hull. Verification gap, not a verdict: nothing was flown with a real mouse, and no picture shows the real HUD over real play. One shot taken with the UI on during `m3_swim` and `m3_launch_dock` would settle the second.