Inspiration
A diagram, context, coordinate representation, or answer set can make a math problem more approachable. It can also quietly change the equation, reveal a shortcut, duplicate an option, or weaken the skill being measured. Those problems are easy to miss when review is manual or compressed into one score.
Math Dressing Studio began with a simple question: Can we change how a math problem is presented without silently changing what it measures?
What it does
Math Dressing Studio separates each problem into two parts:
- A Body that contains the mathematical relationship, unknown, domain, answer, and target skill.
- A removable Layer that changes presentation or diagnostic support.
The Build Week MVP freezes one middle-school Body: a one-variable linear relationship. It supports exactly three reviewed Layers:
- Geometry Representation
- Coordinate Representation
- Diagnostic Choices
The studio can load a sample, verify it, remove or restore its Layer, expose an intentional Layer failure, apply one bounded repair, and revalidate the result. Body integrity and Layer quality are shown separately, criterion by criterion, with evidence. There is deliberately no aggregate score that could hide a blocking failure.
How we built it
The application is a one-page Next.js and TypeScript product built with React, Tailwind CSS, Zod, and Vitest.
Strict schemas define the Body, equation, domain, undressed form, and Layer payloads. Deterministic validation then checks:
- mathematical correctness and the unique real solution;
- representation-to-equation mapping;
- dressed-versus-undressed Body invariance;
- Layer compatibility and removal;
- distractor mechanisms and answer uniqueness;
- shortcut risk;
- independent validation evidence and repair boundaries.
Curated mode is the stable demonstration path and requires no API. It contains three original reviewed samples: a geometry bar model, a coordinate representation, and a diagnostic-choice problem.
An inspectable failure and bounded repair
The diagnostic sample keeps the equation 5x + 10 = 45 and the unique answer x = 7. Its intentional failure uses the choices:
[7, 9, 35, 35]
The duplicate choice does not break the Body mathematics, so Body integrity remains PASS. It does break the Diagnostic Layer: one misconception path is missing, the options are duplicated, and shortcut risk increases. The failed criteria stay visible.
The single curated repair changes only the second 35 to 11:
[7, 9, 35, 35] -> [7, 9, 11, 35]
The stem, equation, answer, domain, target skill, and undressed problem remain unchanged. Revalidation then returns PASS for both Body integrity and Layer quality.
How Codex and GPT-5.6 were used
Codex supported the isolated project bootstrap, implementation, test design, interface polish, bounded security repair, QA preparation, and submission packaging. The project keeps a concise Git history so those decisions remain inspectable.
GPT-5.6 is used only in an optional server-side bounded-repair route. It did not author the three frozen samples. The server sends the exact intentional failure to the OpenAI Responses API using strict structured output. There is one request attempt, no relaxed-schema retry, and no client exposure of the API credential.
Any model proposal remains provisional until the deterministic local validator approves it. The latest external smoke test reached the integration but ended upstream before a model or schema outcome, so this submission does not claim live model execution success or model failure. Curated mode remains stable and independently testable.
Challenges we ran into
The hardest design problem was preserving the mathematical Body while allowing useful creative Layers. We needed more than a correct final answer: every Layer required an explicit mapping, an undressed comparison, and a reasoned failure boundary.
A second challenge was securing the live repair path. An early guard checked only a partial fingerprint. Fresh QA showed that a modified representation or evidence payload could still reach the requester. We repaired this by requiring deterministic structural equality against the complete frozen failure fixture before any live request can execute. Four focused tamper tests now prove that altered representation, mapping, distractor, or curriculum evidence is rejected before the requester is called.
Accomplishments
- Three original, reviewed middle-school samples under one frozen Body.
- Ten visible criterion results with evidence and no aggregate score.
- A complete Layer removal test for every sample.
- A failure state that preserves correct Body mathematics.
- A one-field repair with an exact before-and-after comparison.
- A server-only strict-schema GPT-5.6 integration with deterministic post-validation.
- TypeScript, production build, and 23/23 tests passing.
- A stable public curated demo with no student data and no API requirement.
What we learned
Creative generation and mathematical validation should be separate responsibilities. A Layer is useful only when it can be removed without damaging the Body, and a repair is trustworthy only when its allowed change is explicit.
We also learned that criterion-level evidence is more useful than a polished total score. When a problem fails, educators and authors need to know whether the mathematics, representation, options, or shortcut risk caused the failure.
What's next
The MVP is intentionally narrow. The next steps are educator testing, accessibility review, additional curriculum-approved Bodies and Layers, broader originality checks, and production-level browser validation for the optional live route. Expansion will keep the same principle: compose presentation creatively, validate mathematics deterministically, and repair only what failed.
Live demo: https://math-dressing-studio-build-week.vercel.app
Source code: https://github.com/rose00548/math-dressing-studio-build-week
Built With
- api
- codex
- css
- gpt-5.6
- next.js
- openai
- react
- responses
- tailwind
- typescript
- vercel
- vitest
- zod
Log in or sign up for Devpost to join the conversation.