Skip to content

Commit 768b762

Browse files
author
DavidQ
committed
Close out Track H 3D debug support with Transform Inspector completion
- finish the remaining Transform Inspector work - validate the full Track H 3D debug panel set without regressions - update roadmap status conservatively based on execution-backed completion
1 parent b5f6d38 commit 768b762

13 files changed

Lines changed: 403 additions & 20 deletions

docs/dev/CODEX_COMMANDS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
MODEL: GPT-5.3-codex
22
REASONING: high
3-
COMMAND: Implement BUILD_PR_LEVEL_17_20_SCENE_GRAPH_INSPECTOR as minimal provider + panel + wiring + tests. Package to <project folder>/tmp/BUILD_PR_LEVEL_17_20_SCENE_GRAPH_INSPECTOR.zip
3+
COMMAND: Create BUILD_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT as a docs-first, repo-structured delta. Use docs/pr/PLAN_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT.md and docs/pr/BUILD_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT.md as the source of truth. Finish the remaining Transform Inspector implementation under src/engine/debug/standard/threeD using the smallest valid provider/panel/wiring/test delta, preserve the already completed camera debug panel, render pipeline stages, collision overlays, and scene graph inspector, then perform status-only conservative roadmap updates to close Track H and 3D debug support only if validated by execution evidence. Final step: package only this PR's created and modified files into <project folder>/tmp/BUILD_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT.zip with exact repo-relative structure.

docs/dev/COMMIT_COMMENT.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
Add 3D scene graph inspector panel
1+
Close out Track H 3D debug support with Transform Inspector completion
2+
3+
- finish the remaining Transform Inspector work
4+
- validate the full Track H 3D debug panel set without regressions
5+
- update roadmap status conservatively based on execution-backed completion

docs/dev/NEXT_COMMAND.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
NEXT => BUILD_PR_LEVEL_17_19_COLLISION_OVERLAYS
1+
NEXT => BUILD_PR_LEVEL_17_22_PHASE16_3D_DEBUG_AND_ROADMAP_REBASELINE
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Summary
2-
- advances the 3D debug-support lane from camera debug panel to render pipeline stages
3-
- keeps scope to one provider, one panel, minimal wiring, and targeted validation
4-
- intentionally defers collision overlays and scene graph inspector to later PRs
2+
- bundles the final Transform Inspector completion with Track H status closeout to reduce churn
3+
- keeps the bundle testable and limited to the 3D debug-support lane
4+
- performs roadmap updates only as conservative status changes after implementation evidence exists
Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1-
- [ ] hierarchy renders
2-
- [ ] no crashes
3-
- [ ] prior panels unaffected
1+
BUILD_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT VALIDATION CHECKLIST
2+
3+
Automated
4+
- [ ] Transform Inspector targeted test passes
5+
- [ ] camera debug panel test still passes if present
6+
- [ ] render pipeline stages test still passes if present
7+
- [ ] collision overlays test still passes if present
8+
- [ ] scene graph inspector test still passes if present
9+
10+
Manual
11+
- [ ] app launches without new console errors
12+
- [ ] camera debug panel renders
13+
- [ ] render pipeline stages panel renders
14+
- [ ] collision overlays panel renders
15+
- [ ] scene graph inspector renders
16+
- [ ] Transform Inspector renders
17+
- [ ] all Track H panels are read-only and stable
18+
- [ ] roadmap statuses changed only where implementation evidence exists

docs/dev/roadmaps/MASTER_ROADMAP_HIGH_LEVEL.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -624,13 +624,13 @@
624624
- [x] 3D content loading path
625625

626626
### Track H - 3D Debug Support
627-
- [.] Transform inspector
627+
- [x] Transform inspector
628628
- [x] BUILD_PR_DEBUG_SURFACES_3D_SUPPORT
629629
- [x] APPLY_PR_DEBUG_SURFACES_3D_SUPPORT
630-
- [ ] Camera debug panel
631-
- [ ] Render pipeline stages
632-
- [ ] Collision overlays
633-
- [ ] Scene graph inspector
630+
- [x] Camera debug panel
631+
- [x] Render pipeline stages
632+
- [x] Collision overlays
633+
- [x] Scene graph inspector
634634

635635
### Sample Phase Tracks
636636
- [x] 3D phase normalized
@@ -681,7 +681,7 @@
681681
- [x] 3D movement
682682
- [x] 3D physics
683683
- [x] 3D tool support
684-
- [.] 3D debug support
684+
- [x] 3D debug support
685685

686686
### Later Capability Lanes
687687
- [x] Execute phase-16 / 3D capability lanes (after full real-network capability lane completion)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# BUILD_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT
2+
3+
## Source of Truth
4+
- docs/pr/PLAN_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT.md
5+
6+
## Required Outcome
7+
Deliver one executable PR that:
8+
1. completes the remaining Transform Inspector work
9+
2. validates the full Track H 3D debug-support lane
10+
3. performs status-only roadmap updates supported by implementation evidence
11+
12+
## Required Implementation
13+
- finish Transform Inspector provider/panel/wiring under src/engine/debug/standard/threeD
14+
- add or update targeted tests for Transform Inspector
15+
- keep all existing 3D debug panels functional
16+
- update roadmap status only where implementation is now actually complete
17+
18+
## Required Docs/Status Updates
19+
- update MASTER_ROADMAP_HIGH_LEVEL.md status only for:
20+
- Transform inspector
21+
- Track H closeout if fully supported
22+
- 3D debug support status if fully supported
23+
- do not rewrite roadmap prose beyond minimal status-only edits
24+
25+
## Constraints
26+
- one PR purpose only: Track H closeout
27+
- bundle only because it reduces churn and remains testable
28+
- no unrelated feature expansion
29+
- no start_of_day edits
30+
- no destructive cleanup
31+
- Codex must package the final result to:
32+
<project folder>/tmp/BUILD_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT.zip
33+
34+
## Expected File Targets
35+
- src/engine/debug/standard/threeD/providers/*
36+
- src/engine/debug/standard/threeD/panels/*
37+
- tests/tools/*TransformInspector*.test.*
38+
- docs/roadmaps/MASTER_ROADMAP_HIGH_LEVEL.md
39+
- docs/dev/reports/*
40+
- docs/dev/codex_commands.md
41+
- docs/dev/commit_comment.txt
42+
43+
## Validation Standard
44+
- targeted Transform Inspector test passes
45+
- previously added Track H panel tests remain green
46+
- manual smoke confirms all Track H panels render safely
47+
- roadmap updates are conservative and execution-backed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# PLAN_PR_LEVEL_17_21_TRACK_H_3D_DEBUG_SUPPORT_CLOSEOUT
2+
3+
## Purpose
4+
Close out Track H 3D debug support by finishing the remaining Transform Inspector work and updating roadmap status in the same testable PR bundle.
5+
6+
## Why This PR Exists
7+
Recent execution has already completed:
8+
- camera debug panel
9+
- render pipeline stages
10+
- collision overlays
11+
- scene graph inspector
12+
13+
The roadmap still shows Transform Inspector as in progress, with Track H and 3D debug support not yet fully closed. This PR reduces timeline and churn by bundling:
14+
1. the remaining Transform Inspector completion work
15+
2. Track H roadmap/status closeout
16+
into one executable PR.
17+
18+
## Scope
19+
- complete Transform Inspector to a validated done state
20+
- add only the minimal provider/panel/wiring/test adjustments still required
21+
- update roadmap status only after implementation and validation are complete
22+
- package the final repo-structured ZIP under tmp/
23+
24+
## In Scope
25+
- targeted Transform Inspector completion
26+
- targeted tests
27+
- validation checklist
28+
- roadmap status-only updates tied to this implemented capability
29+
30+
## Out of Scope
31+
- new 3D debug features beyond Transform Inspector completion
32+
- render-engine rewrites
33+
- physics changes
34+
- broad cleanup
35+
- unrelated docs cleanup
36+
- start_of_day changes
37+
38+
## Acceptance Intent
39+
- Transform Inspector is fully implemented and validated
40+
- Track H items are closed if evidence supports closure
41+
- 3D debug support status is updated conservatively and execution-backed
42+
- no regressions to camera, render pipeline stages, collision overlays, or scene graph inspector
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*
2+
Toolbox Aid
3+
David Quesenberry
4+
04/16/2026
5+
panel3dTransformInspector.js
6+
*/
7+
8+
import {
9+
createPanelDescriptor,
10+
toLinePair
11+
} from "../shared/threeDDebugUtils.js";
12+
13+
export const PANEL_3D_TRANSFORM_INSPECTOR = "3d.transform";
14+
15+
function formatVector3(vector = {}, digits = 2) {
16+
const x = Number.isFinite(vector.x) ? Number(vector.x).toFixed(digits) : Number(0).toFixed(digits);
17+
const y = Number.isFinite(vector.y) ? Number(vector.y).toFixed(digits) : Number(0).toFixed(digits);
18+
const z = Number.isFinite(vector.z) ? Number(vector.z).toFixed(digits) : Number(0).toFixed(digits);
19+
return `${x},${y},${z}`;
20+
}
21+
22+
function toNodeLine(node, index) {
23+
return toLinePair(
24+
`node.${index + 1}`,
25+
`${node.nodeId}|pos=${formatVector3(node.position)}|rot=${formatVector3(node.rotation)}|scale=${formatVector3(node.scale)}|dirty=${node.dirty === true}|frozen=${node.frozen === true}`
26+
);
27+
}
28+
29+
export function create3dTransformInspectorPanel(provider, options = {}) {
30+
return createPanelDescriptor({
31+
id: PANEL_3D_TRANSFORM_INSPECTOR,
32+
title: "3D Transform Inspector",
33+
provider,
34+
priority: options.priority ?? 1100,
35+
enabled: options.enabled === true,
36+
linesBuilder(snapshot = {}) {
37+
const nodeRows = Array.isArray(snapshot.nodeRows) ? snapshot.nodeRows : [];
38+
const selectedIds = Array.isArray(snapshot.selectedIds) ? snapshot.selectedIds : [];
39+
const baseLines = [
40+
toLinePair("nodeCount", snapshot.nodeCount),
41+
toLinePair("selectedCount", snapshot.selectedCount),
42+
toLinePair("dirtyCount", snapshot.dirtyCount),
43+
toLinePair("frozenCount", snapshot.frozenCount),
44+
toLinePair("activeNodeId", snapshot.activeNodeId)
45+
];
46+
47+
if (nodeRows.length === 0) {
48+
return [
49+
...baseLines,
50+
toLinePair("selectedIds", selectedIds.length > 0 ? selectedIds.join(",") : "none"),
51+
toLinePair("nodes", "none")
52+
];
53+
}
54+
55+
return [
56+
...baseLines,
57+
toLinePair("selectedIds", selectedIds.length > 0 ? selectedIds.join(",") : "none"),
58+
...nodeRows.map((node, index) => toNodeLine(node, index))
59+
];
60+
}
61+
});
62+
}

src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import { PROVIDER_3D_CAMERA_SUMMARY } from "../providers/cameraSummaryProvider.j
99
import { PROVIDER_3D_COLLISION_OVERLAYS } from "../providers/collisionOverlaysProvider.js";
1010
import { PROVIDER_3D_RENDER_PIPELINE_STAGES } from "../providers/renderPipelineStagesProvider.js";
1111
import { PROVIDER_3D_SCENE_GRAPH_INSPECTOR } from "../providers/sceneGraphInspectorProvider.js";
12-
import { PROVIDER_3D_TRANSFORM_SUMMARY } from "../providers/transformSummaryProvider.js";
12+
import { PROVIDER_3D_TRANSFORM_INSPECTOR } from "../providers/transformInspectorProvider.js";
1313
import { create3dCameraPanel } from "./panel3dCamera.js";
1414
import { create3dCollisionOverlaysPanel } from "./panel3dCollisionOverlays.js";
1515
import { create3dRenderPipelineStagesPanel } from "./panel3dRenderPipelineStages.js";
1616
import { create3dSceneGraphInspectorPanel } from "./panel3dSceneGraphInspector.js";
17-
import { create3dTransformPanel } from "./panel3dTransform.js";
17+
import { create3dTransformInspectorPanel } from "./panel3dTransformInspector.js";
1818

1919
function pickProvider(providerMap, providerId) {
2020
if (providerMap instanceof Map) {
@@ -28,7 +28,7 @@ export function createStandard3dPanels(options = {}) {
2828
? options.providerMap
2929
: new Map();
3030

31-
const transform = create3dTransformPanel(pickProvider(providerMap, PROVIDER_3D_TRANSFORM_SUMMARY), {
31+
const transform = create3dTransformInspectorPanel(pickProvider(providerMap, PROVIDER_3D_TRANSFORM_INSPECTOR), {
3232
enabled: options.enabled === true
3333
});
3434
const camera = create3dCameraPanel(pickProvider(providerMap, PROVIDER_3D_CAMERA_SUMMARY), {

0 commit comments

Comments
 (0)