◭
SPATIAL NAVIGATION LAB

Mirror Maze / 02

Playable environment · v0.2
FIRST-PERSON OBSERVATION

Reach the green goal

Square grid10 mirror bounces
↑
Heading—
Orange frontBlue back
0Actions
0Cells moved
0Collisions
00:00Elapsed

◆ Enter the cell containing the green beacon. A reflection does not count.

Rendering status and controls WebGL 2 · initializing

Mirrors trace reflections from the actual walls. The robot has an orange front, a blue back, and a heading arrow. Fixed floor symbols also appear in reflections.

Waiting for a frame.

The map starts hidden and is excluded from saved first-person images. Map and route assistance are recorded in exported episodes. Disable mirrors to explore a matte-wall control. Human play and the formal model protocol are distinct.

MIRROR MAZE / PLAYABLE ENVIRONMENT

Three actions. Find the real passage.

Find the goal among tiled cells. Closed walls reflect the scene; only openings can be crossed. Reflected robots, landmarks, and beacons follow the same geometry.

Actions and geometry

Squares use 90° turns; hexagons and triangles use 60° turns. A triangular cell has six headings, alternating between edges and vertices. Moving toward a vertex is blocked; crossing an edge preserves heading.

Rendering

A WebGL 2 fragment shader traces rays through adjacent cells. Each segment tests only the current cell’s 3, 4, or 6 edges. The CPU handles maze generation and actions; the main rendering work runs on the GPU.

The renderer supports up to 12 reflections and 160 segments per ray, then terminates the ray in darkness. Mirrors absorb a small amount of light; floors and ceilings are matte. This specialized vertical-wall renderer does not simulate full global illumination.

Reproduction and evaluation

Square tilings have a square outline; triangular and hexagonal tilings have a hexagonal outline. Square side lengths are 7, 11, and 15; hexagon side lengths are 5, 7, and 9. An identical version, topology, side length, and seed reproduce the same maze. JSON exports include actions, state, assistance, render settings, and geometry. The window.mirrorMaze interface supports screenshot observation and three-action control. The playable environment makes no model calls.

References: Three.js planar reflector · Khronos WebGL · WebRays WebGL ray intersections. This implementation has no external runtime dependencies.

Python API reference ↗

Maze overview

The pale-green arrow marks pose; the green dot marks the goal. This view is for human review only.