Wolfenstein raycaster
Build a playable first-person raycasting maze shooter on a canvas in a Wolfenstein-inspired style.
Show full promptHide full prompt
Build a playable first-person raycasting maze shooter on a canvas in a Wolfenstein-inspired style. Use HTML, CSS, and JavaScript as needed. Write it to `index.html` in the current working directory using your file tools. Inline your own CSS and JavaScript. Do not use external assets, CDNs, or network requests. No third-party libraries are provided. Required behavior: - Render a textured grid maze through a raycaster, with perspective wall heights and visible enemies. Generate textures procedurally; do not load external assets. - Use W/S to move forward/backward, A/D to strafe, Left/Right arrows to turn, and Space to shoot. Display the controls. Mouse turning is optional and must not be required. - Use solid wall collision and a small level with a reachable exit and at least three enemies. Enemies must be occluded by walls; shots cannot damage an enemy through a wall. - Give the player health. Enemies can damage the player under a clear attack rule. Show health and remaining enemy count; zero health causes Game Over. - Defeating all enemies unlocks the exit; reaching it shows a win state. Provide Restart to restore the level, player, enemies, and health. Verify: Test movement and turning near the starting area, check collision against a nearby wall, and fire to inspect weapon feedback. Sample the scene for stable wall rendering, then use Restart and check the initial viewpoint and health.
Latest of 2 prompt revisions (run 2026-10-29) · each run page shows its exact prompt
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Timed out ▶ preview · view live
Timed out ▶ preview · view live
Timed out ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
Timed out ▶ preview · view live
▶ preview · view live
Timed out ▶ preview · view live
▶ preview · view live
Timed out ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
▶ preview · view live
Hit the output limit ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
Timed out ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
Timed out ▶ preview · view live
▶ preview · view live
Timed out ▶ preview · view live
Stopped by an API error ▶ preview · view live
Timed out ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Hit the output limit ▶ preview · view live
▶ preview · view live
Timed out ▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
Stopped by an API error ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
Stopped by an API error ▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live
▶ preview · view live Error: agent produced no index.html
See transcript →Upstream idle timeout exceeded
See transcript →agent produced no index.html
See transcript →agent produced no index.html
See transcript →agent produced no index.html
See transcript →agent produced no index.html
See transcript →agent produced no index.html
See transcript →agent produced no index.html
See transcript →agent produced no index.html
See transcript →agent produced no index.html
See transcript →agent produced no index.html
See transcript →timed out after 600000ms
See transcript →pi container exit 124: Warning: Model "poolside/laguna-xs-2.1" not found for provider "openrouter". Using custom model id.
See transcript →agent produced no index.html
See transcript →