Skip to content

Commit aa7b6db

Browse files
author
DavidQ
committed
Stabilize Phase 16 3D samples and prepare handoff to finalize phase<BUILD_PR_LEVEL_17_16_FINAL_3D_STABILITY_AND_HANDOFF_GATE>
1 parent 7a76599 commit aa7b6db

11 files changed

Lines changed: 50 additions & 32 deletions

docs/dev/CODEX_COMMANDS.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@ MODEL: GPT-5.3-codex
33
REASONING: high
44

55
COMMAND:
6-
Add advanced but safe enhancements to Phase 16 samples.
6+
Stabilize Phase 16 samples (1601–1608).
77

88
Focus:
9-
- camera mode toggle
10-
- simple shading/depth cues
11-
- debug overlay
9+
- align controls
10+
- remove inconsistencies
11+
- ensure visual/readability consistency
1212

1313
Rules:
14-
- smallest scoped change
15-
- sample-only
14+
- no new features
1615
- no zip output
16+
- smallest scoped fixes only
1717

1818
Validate:
19-
- features visibly work
19+
- full sample smoke 1601–1608
20+
- sanity pass
2021
- no regressions
21-
- sanity + smoke pass

docs/dev/COMMIT_COMMENT.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Add advanced readability and camera enhancements to Phase 16 samples<BUILD_PR_LEVEL_17_15_ADVANCED_3D_SAMPLE_EXTENSIONS>
1+
Stabilize Phase 16 3D samples and prepare handoff to finalize phase<BUILD_PR_LEVEL_17_16_FINAL_3D_STABILITY_AND_HANDOFF_GATE>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Adds camera modes, shading cues, and debug overlays to improve 3D sample clarity.
1+
Phase 16 stabilized: controls aligned, visuals consistent, ready for engine finalize phase.
Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
# Launch Smoke Report
22

3-
Generated: 2026-04-15T21:59:22.383Z
3+
Generated: 2026-04-15T22:02:45.140Z
44

5-
Filters: games=false, samples=true, tools=false, sampleRange=1601-1608
5+
Filters: games=false, samples=true, tools=false, sampleRange=0101-0101
66

77
| Status | Type | Label | Path | Notes | Steps |
88
| --- | --- | --- | --- | --- | --- |
9-
| PASS | sample | 1601 | samples\phase-16\1601\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
10-
| PASS | sample | 1602 | samples\phase-16\1602\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
11-
| PASS | sample | 1603 | samples\phase-16\1603\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
12-
| PASS | sample | 1604 | samples\phase-16\1604\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
13-
| PASS | sample | 1605 | samples\phase-16\1605\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
14-
| PASS | sample | 1606 | samples\phase-16\1606\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
15-
| PASS | sample | 1607 | samples\phase-16\1607\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
16-
| PASS | sample | 1608 | samples\phase-16\1608\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
9+
| PASS | sample | 0101 | samples\phase-01\0101\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

2-
[ ] camera toggle works
3-
[ ] shading improves readability
4-
[ ] debug overlay visible
2+
[ ] all samples consistent
3+
[ ] controls aligned
4+
[ ] no visual regressions
5+
[ ] full smoke pass 1601–1608
56
[ ] sanity pass
6-
[ ] smoke pass
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
# BUILD PR: 17.16 Final 3D Stability and Handoff Gate
3+
4+
## Purpose
5+
Lock Phase 16 (3D) into a stable, validated state ready for Phase 18 (Finalize Engine).
6+
7+
## Scope
8+
- consistency checks across 1601–1608
9+
- control standardization (movement, debug, camera expectations)
10+
- eliminate drift between samples
11+
- final visibility/readability pass
12+
13+
## Constraints
14+
- no engine changes
15+
- no feature expansion
16+
- stabilization only
17+
- no networking / 2D impact
18+
19+
## Acceptance
20+
- all samples behave consistently
21+
- controls feel uniform
22+
- no visual regressions
23+
- full sample smoke 1601–1608 passes
24+
- sanity passes
25+
- ready for finalize phase

samples/phase-16/1602/MazeRunner3DScene.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ export default class MazeRunner3DScene extends Scene {
223223
drawWireBox(renderer, this.goal, { width: this.goal.width, height: this.goal.height, depth: this.goal.depth }, cameraState, projectionViewport, '#4ade80', 2);
224224

225225
const player = this.world.requireComponent(this.playerId, 'transform3D');
226-
drawPanel(renderer, 620, 34, 300, 126, 'Maze Runtime', [
226+
drawPanel(renderer, 620, 34, 300, 156, 'Maze Runtime', [
227227
`Cube: x=${player.x.toFixed(2)} y=${player.y.toFixed(2)} z=${player.z.toFixed(2)}`,
228228
`Moved entities: ${this.lastPhysicsSummary.movedEntities}`,
229229
`Resolved collisions: ${this.lastPhysicsSummary.collisionCount}`,

samples/phase-16/1603/FirstPersonWalkthroughScene.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ export default class FirstPersonWalkthroughScene extends Scene {
170170
render(renderer) {
171171
drawFrame(renderer, theme, [
172172
'Sample 1603 - First Person Walkthrough',
173-
'Navigate from a first-person camera while AABB collisions keep movement grounded.',
173+
'Navigate from a default first-person camera while AABB collisions keep movement grounded.',
174174
'Move: W A S D | Look: Arrow Keys | Camera: C | Debug: V',
175175
'Stay centered in the lane and navigate around interior blockers.',
176176
]);
@@ -214,12 +214,12 @@ export default class FirstPersonWalkthroughScene extends Scene {
214214
renderer.drawLine(centerX, centerY - 8, centerX, centerY + 8, '#7dd3fc', 1);
215215

216216
const player = this.world.requireComponent(this.playerId, 'transform3D');
217-
drawPanel(renderer, 620, 34, 300, 126, 'Walkthrough Runtime', [
217+
drawPanel(renderer, 620, 34, 300, 156, 'Walkthrough Runtime', [
218218
`Position: x=${player.x.toFixed(2)} y=${player.y.toFixed(2)} z=${player.z.toFixed(2)}`,
219219
`View: yaw=${this.yaw.toFixed(2)} pitch=${this.pitch.toFixed(2)}`,
220220
`Moved entities: ${this.lastPhysicsSummary.movedEntities}`,
221221
`Resolved collisions: ${this.lastPhysicsSummary.collisionCount}`,
222-
'View mode: first person + collision-aware movement',
222+
'View mode: C cycles follow/wide/overhead',
223223
]);
224224

225225
drawPhase16DebugOverlay(renderer, this.viewport, this.viewState, [

samples/phase-16/1604/Platformer3DBasicsScene.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ export default class Platformer3DBasicsScene extends Scene {
272272

273273
const player = this.world.requireComponent(this.playerId, 'transform3D');
274274
const velocity = this.world.requireComponent(this.playerId, 'velocity3D');
275-
drawPanel(renderer, 620, 34, 300, 126, 'Platformer Runtime', [
275+
drawPanel(renderer, 620, 34, 300, 156, 'Platformer Runtime', [
276276
`Cube: x=${player.x.toFixed(2)} y=${player.y.toFixed(2)} z=${player.z.toFixed(2)}`,
277277
`VelocityY: ${velocity.y.toFixed(2)} | Grounded: ${this.isGrounded ? 'yes' : 'no'}`,
278278
`Moved entities: ${this.lastPhysicsSummary.movedEntities}`,

samples/phase-16/1605/DrivingSandbox3DScene.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ export default class DrivingSandbox3DScene extends Scene {
332332
'Sample 1605 - 3D Driving Sandbox',
333333
'Drive a simple 3D test track with throttle, steering, and AABB barriers.',
334334
'Throttle: W/S | Steer: A/D | Camera: C | Debug: V',
335-
'Chase camera hard-locks behind the vehicle for stable readability.',
335+
'Default follow mode uses a hard-locked chase camera for stable readability.',
336336
]);
337337

338338
renderer.strokeRect(this.viewport.x, this.viewport.y, this.viewport.width, this.viewport.height, '#d8d5ff', 2);
@@ -380,7 +380,7 @@ export default class DrivingSandbox3DScene extends Scene {
380380
drawAsymmetricVehicle(renderer, car, carSize, vehicleYaw, cameraState, projectionViewport, '#38bdf8');
381381
drawVehicleHeadingMarker(renderer, this.getVehicleMarkerWorldPoints(), cameraState, projectionViewport);
382382

383-
drawPanel(renderer, 620, 34, 300, 126, 'Driving Runtime', [
383+
drawPanel(renderer, 620, 34, 300, 176, 'Driving Runtime', [
384384
`Car: x=${car.x.toFixed(2)} y=${car.y.toFixed(2)} z=${car.z.toFixed(2)}`,
385385
`Speed: ${this.speed.toFixed(2)} u/s | Heading: ${this.heading.toFixed(2)} rad`,
386386
`Chase yaw: ${this.cameraYaw.toFixed(2)} rad`,

0 commit comments

Comments
 (0)