# Concordia 3D Gate 1 — movement foundation

Entry: `/concordia/index.html?mode=3d`, also linked on the game title screen.

This gate adds an isolated Three.js runtime for Ashen in the Infernal Causeway. It reads the existing character definition and 7 × 6 Causeway coordinates. It does not load the gameplay store, hydrate or write saves, resolve combat, grant progression, or change narrative.

Included: a procedural 3D character with walking animation, arena geometry, follow/orbit camera, keyboard and simultaneous touch controls, running, fixed 60 Hz movement, normalized diagonal speed, perimeter/landmark collision, pause/reset, background input clearing, resize handling, capped device resolution, renderer/resource disposal, and a WebGL failure path back to the game. The existing offline manifest automatically includes the new lazy-loaded code chunks.

Controls: WASD/arrows; Shift to run; drag the scene to orbit; mouse wheel to zoom; R to reset; Escape to pause. On phones: left joystick, drag elsewhere to orbit, Run toggle. The violet gate marks the end of the movement test. The standing crystal and relic plinth use the current NPC/secret tile coordinates as landmarks, without adding story interactions.

The character and environment are procedural foundation models, not final production art. This gate does not include enemy behavior, attacks, dodge, health, boss, rewards, or the real-time combat adapter. The next gate must bridge the existing deterministic combat through explicit command boundaries and prove timing/targeting/terminal-state behavior before activating damage or progression.

Verification: movement regression at 30/60/120 render rates; boundaries and camera-relative controls; collision; scene construction/disposal; unchanged game-store identity; existing repository regression suite; full Site build. Browser visual QA and real iPhone performance still require verification when a supported preview is available.

Earlier Phase 8D reports are historical context. The original named Phase 8D test suite is not present in this hosted checkout; this gate uses the tests actually available here and does not claim to have rerun missing tests.
