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
Euler-Poincare check ignores inner rings · case 01
Any solid with a ring loop is flagged as broken.
Euler-Poincare check ignores inner rings · case 02
Any solid with a ring loop is flagged as broken.
Euler-Poincare check ignores inner rings · case 03
Any solid with a ring loop is flagged as broken.
Euler-Poincare check ignores inner rings · case 04
Any solid with a ring loop is flagged as broken.
Euler-Poincare check ignores inner rings · case 05
Any solid with a ring loop is flagged as broken.
Operator sequence may leave a face without a loop · case 01
Sequences that give a face no bounding loop are accepted.
Operator sequence may leave a face without a loop · case 02
Sequences that give a face no bounding loop are accepted.
Operator sequence may leave a face without a loop · case 03
Sequences that give a face no bounding loop are accepted.
Operator sequence may leave a face without a loop · case 04
Sequences that give a face no bounding loop are accepted.
Operator sequence may leave a face without a loop · case 05
Sequences that give a face no bounding loop are accepted.
Invalid operator is reported one position late · case 01
The error points at the operator after the offending one.
Invalid operator is reported one position late · case 02
The error points at the operator after the offending one.
Invalid operator is reported one position late · case 03
The error points at the operator after the offending one.
Invalid operator is reported one position late · case 04
The error points at the operator after the offending one.
Invalid operator is reported one position late · case 05
The error points at the operator after the offending one.
Unknown Euler operators are skipped silently · case 01
Misspelled operators disappear and later counts are wrong without an error.
Unknown Euler operators are skipped silently · case 02
Misspelled operators disappear and later counts are wrong without an error.
Unknown Euler operators are skipped silently · case 03
Misspelled operators disappear and later counts are wrong without an error.
Unknown Euler operators are skipped silently · case 04
Misspelled operators disappear and later counts are wrong without an error.
Unknown Euler operators are skipped silently · case 05
Misspelled operators disappear and later counts are wrong without an error.
Tetrahedral boundary faces have mixed winding · case 01
Two of the four faces of each tet point inward in the extracted surface.
Tetrahedral boundary faces have mixed winding · case 02
Two of the four faces of each tet point inward in the extracted surface.
Tetrahedral boundary faces have mixed winding · case 03
Two of the four faces of each tet point inward in the extracted surface.
Tetrahedral boundary faces have mixed winding · case 04
Two of the four faces of each tet point inward in the extracted surface.
Tetrahedral boundary faces have mixed winding · case 05
Two of the four faces of each tet point inward in the extracted surface.
Tetrahedral faces are matched by oriented tuple · case 01
Internal faces, which appear with opposite orientation, are never matched and all appear on the boundary.
Tetrahedral faces are matched by oriented tuple · case 02
Internal faces, which appear with opposite orientation, are never matched and all appear on the boundary.
Tetrahedral faces are matched by oriented tuple · case 03
Internal faces, which appear with opposite orientation, are never matched and all appear on the boundary.
Tetrahedral faces are matched by oriented tuple · case 04
Internal faces, which appear with opposite orientation, are never matched and all appear on the boundary.
Tetrahedral faces are matched by oriented tuple · case 05
Internal faces, which appear with opposite orientation, are never matched and all appear on the boundary.
Boundary face is emitted without canonical rotation · case 01
Output faces start at an arbitrary corner.
Boundary face is emitted without canonical rotation · case 02
Output faces start at an arbitrary corner.
Boundary face is emitted without canonical rotation · case 03
Output faces start at an arbitrary corner.
Boundary face is emitted without canonical rotation · case 04
Output faces start at an arbitrary corner.
Boundary face is emitted without canonical rotation · case 05
Output faces start at an arbitrary corner.
Faces shared by three tetrahedra are silently dropped · case 01
A non-manifold tet mesh produces a surface with a missing fin.
Faces shared by three tetrahedra are silently dropped · case 02
A non-manifold tet mesh produces a surface with a missing fin.
Faces shared by three tetrahedra are silently dropped · case 03
A non-manifold tet mesh produces a surface with a missing fin.
Faces shared by three tetrahedra are silently dropped · case 04
A non-manifold tet mesh produces a surface with a missing fin.
Faces shared by three tetrahedra are silently dropped · case 05
A non-manifold tet mesh produces a surface with a missing fin.
Boundary faces are emitted in discovery order · case 01
The face list order depends on tet order.
Boundary faces are emitted in discovery order · case 02
The face list order depends on tet order.
Boundary faces are emitted in discovery order · case 03
The face list order depends on tet order.
Boundary faces are emitted in discovery order · case 04
The face list order depends on tet order.
Boundary faces are emitted in discovery order · case 05
The face list order depends on tet order.
Degenerate tetrahedra are processed · case 01
Tets with repeated vertices produce collapsed boundary faces.
Degenerate tetrahedra are processed · case 02
Tets with repeated vertices produce collapsed boundary faces.
Degenerate tetrahedra are processed · case 03
Tets with repeated vertices produce collapsed boundary faces.
Degenerate tetrahedra are processed · case 04
Tets with repeated vertices produce collapsed boundary faces.
Degenerate tetrahedra are processed · case 05
Tets with repeated vertices produce collapsed boundary faces.
UV seam test compares edge UVs in traversal order · case 01
Every interior edge is reported as a seam because neighbours traverse it in opposite directions.
UV seam test compares edge UVs in traversal order · case 02
Every interior edge is reported as a seam because neighbours traverse it in opposite directions.
UV seam test compares edge UVs in traversal order · case 03
Every interior edge is reported as a seam because neighbours traverse it in opposite directions.
UV seam test compares edge UVs in traversal order · case 04
Every interior edge is reported as a seam because neighbours traverse it in opposite directions.
UV seam test compares edge UVs in traversal order · case 05
Every interior edge is reported as a seam because neighbours traverse it in opposite directions.
UV seam requires both endpoints to differ · case 01
Edges whose UV splits at only one endpoint are not marked as seams.
UV seam requires both endpoints to differ · case 02
Edges whose UV splits at only one endpoint are not marked as seams.
UV seam requires both endpoints to differ · case 03
Edges whose UV splits at only one endpoint are not marked as seams.
UV seam requires both endpoints to differ · case 04
Edges whose UV splits at only one endpoint are not marked as seams.
UV seam requires both endpoints to differ · case 05
Edges whose UV splits at only one endpoint are not marked as seams.
UV face lists of the wrong length are paired silently · case 01
A short UV list is wrapped around the face and invents seams.
UV face lists of the wrong length are paired silently · case 02
A short UV list is wrapped around the face and invents seams.
UV face lists of the wrong length are paired silently · case 03
A short UV list is wrapped around the face and invents seams.
UV face lists of the wrong length are paired silently · case 04
A short UV list is wrapped around the face and invents seams.
UV face lists of the wrong length are paired silently · case 05
A short UV list is wrapped around the face and invents seams.
UV seams are keyed by directed geometric edges · case 01
The two faces on an edge never meet in the table, so no seam is ever reported.
UV seams are keyed by directed geometric edges · case 02
The two faces on an edge never meet in the table, so no seam is ever reported.
UV seams are keyed by directed geometric edges · case 03
The two faces on an edge never meet in the table, so no seam is ever reported.
UV seams are keyed by directed geometric edges · case 04
The two faces on an edge never meet in the table, so no seam is ever reported.
UV seams are keyed by directed geometric edges · case 05
The two faces on an edge never meet in the table, so no seam is ever reported.
Split vertex id reuses an existing index · case 01
With index gaps the inserted vertex aliases a vertex that already exists.
Split vertex id reuses an existing index · case 02
With index gaps the inserted vertex aliases a vertex that already exists.
Split vertex id reuses an existing index · case 03
With index gaps the inserted vertex aliases a vertex that already exists.
Split vertex id reuses an existing index · case 04
With index gaps the inserted vertex aliases a vertex that already exists.
Split vertex id reuses an existing index · case 05
With index gaps the inserted vertex aliases a vertex that already exists.
Split triangles reverse winding · case 01
The two children of each split face point the opposite way.
Split triangles reverse winding · case 02
The two children of each split face point the opposite way.
Split triangles reverse winding · case 03
The two children of each split face point the opposite way.
Split triangles reverse winding · case 04
The two children of each split face point the opposite way.
Split triangles reverse winding · case 05
The two children of each split face point the opposite way.
Edge split only splits the face storing a->b · case 01
The neighbour across the edge keeps a T-junction.
Edge split only splits the face storing a->b · case 02
The neighbour across the edge keeps a T-junction.
Edge split only splits the face storing a->b · case 03
The neighbour across the edge keeps a T-junction.
Edge split only splits the face storing a->b · case 04
The neighbour across the edge keeps a T-junction.
Edge split only splits the face storing a->b · case 05
The neighbour across the edge keeps a T-junction.
Edge split processes polygons as triangles · case 01
Quads are split along a false diagonal and lose a corner.
Edge split processes polygons as triangles · case 02
Quads are split along a false diagonal and lose a corner.
Edge split processes polygons as triangles · case 03
Quads are split along a false diagonal and lose a corner.
Edge split processes polygons as triangles · case 04
Quads are split along a false diagonal and lose a corner.
Edge split processes polygons as triangles · case 05
Quads are split along a false diagonal and lose a corner.
Edge split reports success when the edge is absent · case 01
Requests for a non-existent edge return the unchanged mesh with a new vertex id.
Edge split reports success when the edge is absent · case 02
Requests for a non-existent edge return the unchanged mesh with a new vertex id.
Edge split reports success when the edge is absent · case 03
Requests for a non-existent edge return the unchanged mesh with a new vertex id.
Edge split reports success when the edge is absent · case 04
Requests for a non-existent edge return the unchanged mesh with a new vertex id.
Edge split reports success when the edge is absent · case 05
Requests for a non-existent edge return the unchanged mesh with a new vertex id.
Split children are appended after the untouched faces · case 01
Face indices shift, breaking per-face attribute arrays.
Split children are appended after the untouched faces · case 02
Face indices shift, breaking per-face attribute arrays.
Split children are appended after the untouched faces · case 03
Face indices shift, breaking per-face attribute arrays.
Split children are appended after the untouched faces · case 04
Face indices shift, breaking per-face attribute arrays.
Split children are appended after the untouched faces · case 05
Face indices shift, breaking per-face attribute arrays.
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 ↗