Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Welding compares faces without canonical rotation · case 01
The same face listed from a different start corner is kept twice.
Welding compares faces without canonical rotation · case 02
The same face listed from a different start corner is kept twice.
Welding compares faces without canonical rotation · case 03
The same face listed from a different start corner is kept twice.
Welding compares faces without canonical rotation · case 04
The same face listed from a different start corner is kept twice.
Welding compares faces without canonical rotation · case 05
The same face listed from a different start corner is kept twice.
Welding judges collapse on the original face size · case 01
Faces that weld down to one or two corners are kept.
Welding judges collapse on the original face size · case 02
Faces that weld down to one or two corners are kept.
Welding judges collapse on the original face size · case 03
Faces that weld down to one or two corners are kept.
Welding judges collapse on the original face size · case 04
Faces that weld down to one or two corners are kept.
Welding judges collapse on the original face size · case 05
Faces that weld down to one or two corners are kept.
Fan triangulation reverses triangle winding · case 01
Every generated triangle faces the opposite way from its polygon.
Fan triangulation reverses triangle winding · case 02
Every generated triangle faces the opposite way from its polygon.
Fan triangulation reverses triangle winding · case 03
Every generated triangle faces the opposite way from its polygon.
Fan triangulation reverses triangle winding · case 04
Every generated triangle faces the opposite way from its polygon.
Fan triangulation reverses triangle winding · case 05
Every generated triangle faces the opposite way from its polygon.
Fan triangulation drops the last triangle of each polygon · case 01
Quads become single triangles and polygons leave a hole.
Fan triangulation drops the last triangle of each polygon · case 02
Quads become single triangles and polygons leave a hole.
Fan triangulation drops the last triangle of each polygon · case 03
Quads become single triangles and polygons leave a hole.
Fan triangulation drops the last triangle of each polygon · case 04
Quads become single triangles and polygons leave a hole.
Fan triangulation drops the last triangle of each polygon · case 05
Quads become single triangles and polygons leave a hole.
Fan triangulation counts triangles as diagonals · case 01
Reported diagonals are one higher per polygon.
Fan triangulation counts triangles as diagonals · case 02
Reported diagonals are one higher per polygon.
Fan triangulation counts triangles as diagonals · case 03
Reported diagonals are one higher per polygon.
Fan triangulation counts triangles as diagonals · case 04
Reported diagonals are one higher per polygon.
Fan triangulation counts triangles as diagonals · case 05
Reported diagonals are one higher per polygon.
Fan triangulation silently skips two-corner faces · case 01
Invalid faces vanish instead of being reported.
Fan triangulation silently skips two-corner faces · case 02
Invalid faces vanish instead of being reported.
Fan triangulation silently skips two-corner faces · case 03
Invalid faces vanish instead of being reported.
Fan triangulation silently skips two-corner faces · case 04
Invalid faces vanish instead of being reported.
Fan triangulation silently skips two-corner faces · case 05
Invalid faces vanish instead of being reported.
Triangulated edge set is keyed by direction · case 01
Edge growth counts each shared triangle edge twice.
Triangulated edge set is keyed by direction · case 02
Edge growth counts each shared triangle edge twice.
Triangulated edge set is keyed by direction · case 03
Edge growth counts each shared triangle edge twice.
Triangulated edge set is keyed by direction · case 04
Edge growth counts each shared triangle edge twice.
Triangulated edge set is keyed by direction · case 05
Edge growth counts each shared triangle edge twice.
Edge flip emits triangles with reversed winding · case 01
After a flip both new triangles face inward, breaking orientation consistency.
Edge flip emits triangles with reversed winding · case 02
After a flip both new triangles face inward, breaking orientation consistency.
Edge flip emits triangles with reversed winding · case 03
After a flip both new triangles face inward, breaking orientation consistency.
Edge flip emits triangles with reversed winding · case 04
After a flip both new triangles face inward, breaking orientation consistency.
Edge flip emits triangles with reversed winding · case 05
After a flip both new triangles face inward, breaking orientation consistency.
Edge flip misses an existing diagonal stored in the opposite direction · case 01
A flip that duplicates an edge already present elsewhere is accepted.
Edge flip misses an existing diagonal stored in the opposite direction · case 02
A flip that duplicates an edge already present elsewhere is accepted.
Edge flip misses an existing diagonal stored in the opposite direction · case 03
A flip that duplicates an edge already present elsewhere is accepted.
Edge flip misses an existing diagonal stored in the opposite direction · case 04
A flip that duplicates an edge already present elsewhere is accepted.
Edge flip misses an existing diagonal stored in the opposite direction · case 05
A flip that duplicates an edge already present elsewhere is accepted.
Edge flip accepts two triangles with the same apex · case 01
A folded pair is flipped into triangles that repeat a vertex.
Edge flip accepts two triangles with the same apex · case 02
A folded pair is flipped into triangles that repeat a vertex.
Edge flip accepts two triangles with the same apex · case 03
A folded pair is flipped into triangles that repeat a vertex.
Edge flip accepts two triangles with the same apex · case 04
A folded pair is flipped into triangles that repeat a vertex.
Edge flip accepts two triangles with the same apex · case 05
A folded pair is flipped into triangles that repeat a vertex.
Edge flip swaps which face slot receives which new triangle · case 01
Face indices referenced elsewhere now point at the other triangle.
Edge flip swaps which face slot receives which new triangle · case 02
Face indices referenced elsewhere now point at the other triangle.
Edge flip swaps which face slot receives which new triangle · case 03
Face indices referenced elsewhere now point at the other triangle.
Edge flip swaps which face slot receives which new triangle · case 04
Face indices referenced elsewhere now point at the other triangle.
Edge flip swaps which face slot receives which new triangle · case 05
Face indices referenced elsewhere now point at the other triangle.
Edge flip reads the second apex from the wrong corner · case 01
The second apex is an endpoint of the flipped edge, so valid flips are refused as "edge-exists".
Edge flip reads the second apex from the wrong corner · case 02
The second apex is an endpoint of the flipped edge, so valid flips are refused as "edge-exists".
Edge flip reads the second apex from the wrong corner · case 03
The second apex is an endpoint of the flipped edge, so valid flips are refused as "edge-exists".
Edge flip reads the second apex from the wrong corner · case 04
The second apex is an endpoint of the flipped edge, so valid flips are refused as "edge-exists".
Edge flip reads the second apex from the wrong corner · case 05
The second apex is an endpoint of the flipped edge, so valid flips are refused as "edge-exists".
One-ring is walked clockwise · case 01
Neighbour rings come out in reverse angular order.
One-ring is walked clockwise · case 02
Neighbour rings come out in reverse angular order.
One-ring is walked clockwise · case 03
Neighbour rings come out in reverse angular order.
One-ring is walked clockwise · case 04
Neighbour rings come out in reverse angular order.
One-ring is walked clockwise · case 05
Neighbour rings come out in reverse angular order.
Boundary one-ring starts in the middle of the fan · case 01
Boundary vertices whose smallest neighbour is not the fan start are reported non-manifold.
Boundary one-ring starts in the middle of the fan · case 02
Boundary vertices whose smallest neighbour is not the fan start are reported non-manifold.
Boundary one-ring starts in the middle of the fan · case 03
Boundary vertices whose smallest neighbour is not the fan start are reported non-manifold.
Boundary one-ring starts in the middle of the fan · case 04
Boundary vertices whose smallest neighbour is not the fan start are reported non-manifold.
Boundary one-ring starts in the middle of the fan · case 05
Boundary vertices whose smallest neighbour is not the fan start are reported non-manifold.
One-ring completeness is measured against the successor count · case 01
Every boundary vertex is reported non-manifold.
One-ring completeness is measured against the successor count · case 02
Every boundary vertex is reported non-manifold.
One-ring completeness is measured against the successor count · case 03
Every boundary vertex is reported non-manifold.
One-ring completeness is measured against the successor count · case 04
Every boundary vertex is reported non-manifold.
One-ring completeness is measured against the successor count · case 05
Every boundary vertex is reported non-manifold.
One-ring overwrites a repeated spoke · case 01
Two faces leaving v along the same edge (a flipped neighbour) are merged into a plausible ring.
One-ring overwrites a repeated spoke · case 02
Two faces leaving v along the same edge (a flipped neighbour) are merged into a plausible ring.
One-ring overwrites a repeated spoke · case 03
Two faces leaving v along the same edge (a flipped neighbour) are merged into a plausible ring.
One-ring overwrites a repeated spoke · case 04
Two faces leaving v along the same edge (a flipped neighbour) are merged into a plausible ring.
One-ring overwrites a repeated spoke · case 05
Two faces leaving v along the same edge (a flipped neighbour) are merged into a plausible ring.
One-ring walk stops before leaving the start · case 01
Every ring collapses to its start vertex and is reported non-manifold.
One-ring walk stops before leaving the start · case 02
Every ring collapses to its start vertex and is reported non-manifold.
One-ring walk stops before leaving the start · case 03
Every ring collapses to its start vertex and is reported non-manifold.
One-ring walk stops before leaving the start · case 04
Every ring collapses to its start vertex and is reported non-manifold.
One-ring walk stops before leaving the start · case 05
Every ring collapses to its start vertex and is reported non-manifold.
Make-edge-face does not add the new face loop · case 01
Every face-closing operation reports a broken invariant or too few loops.
Make-edge-face does not add the new face loop · case 02
Every face-closing operation reports a broken invariant or too few loops.
Make-edge-face does not add the new face loop · case 03
Every face-closing operation reports a broken invariant or too few loops.
Make-edge-face does not add the new face loop · case 04
Every face-closing operation reports a broken invariant or too few loops.
Make-edge-face does not add the new face loop · case 05
Every face-closing operation reports a broken invariant or too few loops.
Kill-edge-make-ring removes a loop instead of adding one · case 01
Creating an inner ring breaks the Euler-Poincare relation.
Kill-edge-make-ring removes a loop instead of adding one · case 02
Creating an inner ring breaks the Euler-Poincare relation.
Kill-edge-make-ring removes a loop instead of adding one · case 03
Creating an inner ring breaks the Euler-Poincare relation.
Kill-edge-make-ring removes a loop instead of adding one · case 04
Creating an inner ring breaks the Euler-Poincare relation.
Kill-edge-make-ring removes a loop instead of adding one · case 05
Creating an inner ring breaks the Euler-Poincare relation.
Kill-face-make-ring-hole forgets the new handle · case 01
Through-holes are rejected as broken invariants.
Kill-face-make-ring-hole forgets the new handle · case 02
Through-holes are rejected as broken invariants.
Kill-face-make-ring-hole forgets the new handle · case 03
Through-holes are rejected as broken invariants.
Kill-face-make-ring-hole forgets the new handle · case 04
Through-holes are rejected as broken invariants.
Kill-face-make-ring-hole forgets the new handle · case 05
Through-holes are rejected as broken invariants.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗