It tests itself before a child sees it
Every generation renders headlessly and asserts its own interactive invariants. If the pedagogy is wrong, it retries with the error trace. Nothing untested ships.
A teacher types the misconception she fights every year. Codex writes an interactive, runs its own test, retries until it passes, and publishes a phone-friendly manipulative her students open on any device.
Demo mode — pre-seeded build trace, no live Codex/Supabase call.
Chalkbox executes what it generates, reads the failure, fixes it, and only publishes what passes. The pedagogy itself is a machine-checked assertion — so a sim that renders but teaches the wrong thing never reaches a student.
Luna triages the prompt: subject, grade band, curriculum code — or rejects it.
accept · math · 6-8 · CCSS.6.NS.A.1Sol writes a single-file React manipulative; AST validation enforces the allowlist.
import allowlist · no network APIsIt mounts headlessly, then the pedagogy is asserted as a test. Fail → retry with the trace.
assert: smaller divisor, bigger quotientA final safety pass, then it ships under a strict no-network CSP.
CSP connect-src 'none' · null originretry-with-traceon any gate failure, within a bounded token budget — never an infinite loop.
Every generation renders headlessly and asserts its own interactive invariants. If the pedagogy is wrong, it retries with the error trace. Nothing untested ships.
Sims run in a null-origin iframe with a strict CSP (connect-src 'none'), an import allowlist, and AST validation. No network, no surprises.
Math and physics, tagged to real Common Core / NGSS codes — the gate rejects anything off-curriculum or off-grade.
Students open a zero-chrome manipulative on any phone. No login, no install — just the thing their class is stuck on tonight.
This is the real self-debug loop on the flagship fraction-division sim: two rejected attempts, then a verified one. The static validator and the interactive-invariant runner it exercises are real and unit-tested — you can run them yourself.
“Show why dividing by a fraction makes the answer bigger, not smaller.”
“Let them feel that subtracting a negative moves you to the right.”
“Show that 3 apples for $2 is the same rate as 9 for $6.”
“Let them see that a steeper line means a bigger rate of change.”
“Show that 1/2 and 2/4 cover the exact same amount.”
“Let them see a² + b² literally fill up c².”
Every sim runs inside a null-origin iframe with a strict Content-Security-Policy (connect-src 'none'), an import allowlist, and AST validation before it ever mounts. It can't reach the network, read cookies, or touch the parent page.
A chat completion produces plausible-looking code. Chalkbox executes it, asserts the pedagogy as an interactive invariant (e.g. 'dragging the divisor smaller must make the quotient bigger'), reads the failure, and retries with the trace. It only publishes a sim that passed its own test.
No. They open a zero-chrome share link on any phone or laptop — no login, no install, no app store.
Math and physics today, tagged to real Common Core (CCSS) and NGSS standards. The safety gate rejects prompts that are off-curriculum or off-grade-band.
No. The site runs in demo mode with zero keys — the seeded gallery is fully browsable and the Create flow replays the flagship build end-to-end.
It's a runnable demo built for OpenAI Build Week. The harness it exercises — the static validator and the interactive-invariant runner — is real and unit-tested. The live engine that generates a brand-new verified sim from any prompt is the next milestone.
The manipulative your class is stuck on tonight — built, verified, and shareable before the bell.