All tests

Exhibit No. 005 · 3D worlds

Rubik’s cube that solves itself

A 3D Rubik’s cube with move buttons, a scrambler and an automatic unscrambler — the test that split reasoning models in 2025.

Prompt

> Create a single HTML file that uses Three.js to visualize a Rubik's Cube with realistic lighting and interactive controls. The cube should be built from 27 cubies with standard Rubik's Cube coloring. Include buttons for standard moves (U, U′, D, D′, L, L′, R, R′, F, F′, B, B′) that animate a 90° rotation on the appropriate face. Also, implement a scramble function that performs a series of random moves (recording each move), and an automatic unscrambler that, every 500 ms, applies the inverse of the recorded moves until the cube is solved. The solved state should be determined by comparing each cubie's current world position and rotation with its originally stored "solved" state (using a small tolerance). Use the following script sources:
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
Provide the complete, self-contained HTML file with all necessary code.

Run it in your AI

Opens with the prompt filled in — you press send.

Claude Code
claude 'Create a single HTML file that uses Three.js to visualize a Rubik'\''s Cube with realistic lighting and interactive controls. The cube should be built from 27 cubies with standard Rubik'\''s Cube coloring. Include buttons for standard moves (U, U′, D, D′, L, L′, R, R′, F, F′, B, B′) that animate a 90° rotation on the appropriate face. Also, implement a scramble function that performs a series of random moves (recording each move), and an automatic unscrambler that, every 500 ms, applies the inverse of the recorded moves until the cube is solved. The solved state should be determined by comparing each cubie'\''s current world position and rotation with its originally stored "solved" state (using a small tolerance). Use the following script sources: <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script> Provide the complete, self-contained HTML file with all necessary code.'
Codex CLI
codex 'Create a single HTML file that uses Three.js to visualize a Rubik'\''s Cube with realistic lighting and interactive controls. The cube should be built from 27 cubies with standard Rubik'\''s Cube coloring. Include buttons for standard moves (U, U′, D, D′, L, L′, R, R′, F, F′, B, B′) that animate a 90° rotation on the appropriate face. Also, implement a scramble function that performs a series of random moves (recording each move), and an automatic unscrambler that, every 500 ms, applies the inverse of the recorded moves until the cube is solved. The solved state should be determined by comparing each cubie'\''s current world position and rotation with its originally stored "solved" state (using a small tolerance). Use the following script sources: <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script> Provide the complete, self-contained HTML file with all necessary code.'
Any agent
Fetch https://aitestmuseum.com/prompts/rubiks-cube.txt and complete the task it describes in a single attempt. Save your answer as one self-contained HTML file.

What it tests

3D rotations that have to stay exact after dozens of moves, plus state tracking and a correct solved check.

Origin

@nobody_qwert (re-run by AK) · 2025

50K views on the original post

Difficulty

●●●

Results

Verdicts are our own assessment of each answer.

Claude Opus 5.5

Partial
Run on 2026-10-19Open the raw answer

Moves, scrambling and the 500 ms unscrambler all work, and the cube does return to solved. But the cube slowly spins while idle, and the solved check compares against the starting world position, so the status line keeps saying “Scrambled” on a solved cube.

Test conditions

Single attempt per test, no retries and no edits afterwards. Run inside a Claude Code agent session, which includes its own system prompt, rather than the raw API.

All results for Claude Opus 5.5

Save the answer as a .html file and open it in a browser to compare it with the one above.

More tests in this category