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
Pinched boundary vertex silently merges or splits loops · case 01
A bowtie vertex yields a loop answer instead of "ambiguous".
Pinched boundary vertex silently merges or splits loops · case 02
A bowtie vertex yields a loop answer instead of "ambiguous".
Pinched boundary vertex silently merges or splits loops · case 03
A bowtie vertex yields a loop answer instead of "ambiguous".
Pinched boundary vertex silently merges or splits loops · case 04
A bowtie vertex yields a loop answer instead of "ambiguous".
Pinched boundary vertex silently merges or splits loops · case 05
A bowtie vertex yields a loop answer instead of "ambiguous".
Boundary loops are ordered by first vertex only · case 01
The outer boundary is no longer listed first when a hole has a smaller vertex id.
Boundary loops are ordered by first vertex only · case 02
The outer boundary is no longer listed first when a hole has a smaller vertex id.
Boundary loops are ordered by first vertex only · case 03
The outer boundary is no longer listed first when a hole has a smaller vertex id.
Boundary loops are ordered by first vertex only · case 04
The outer boundary is no longer listed first when a hole has a smaller vertex id.
Boundary loops are ordered by first vertex only · case 05
The outer boundary is no longer listed first when a hole has a smaller vertex id.
Boundary loop walk starts from an arbitrary vertex · case 01
Loops start at whichever vertex was inserted first rather than at their smallest vertex.
Boundary loop walk starts from an arbitrary vertex · case 02
Loops start at whichever vertex was inserted first rather than at their smallest vertex.
Boundary loop walk starts from an arbitrary vertex · case 03
Loops start at whichever vertex was inserted first rather than at their smallest vertex.
Boundary loop walk starts from an arbitrary vertex · case 04
Loops start at whichever vertex was inserted first rather than at their smallest vertex.
Boundary loop walk starts from an arbitrary vertex · case 05
Loops start at whichever vertex was inserted first rather than at their smallest vertex.
Vertex link tolerates a link vertex of degree three · case 01
Vertices on a three-sheet fin are classified as manifold.
Vertex link tolerates a link vertex of degree three · case 02
Vertices on a three-sheet fin are classified as manifold.
Vertex link tolerates a link vertex of degree three · case 03
Vertices on a three-sheet fin are classified as manifold.
Vertex link tolerates a link vertex of degree three · case 04
Vertices on a three-sheet fin are classified as manifold.
Vertex link tolerates a link vertex of degree three · case 05
Vertices on a three-sheet fin are classified as manifold.
Vertex link connectivity compares visited vertices with link edges · case 01
Ordinary boundary vertices are flagged non-manifold.
Vertex link connectivity compares visited vertices with link edges · case 02
Ordinary boundary vertices are flagged non-manifold.
Vertex link connectivity compares visited vertices with link edges · case 03
Ordinary boundary vertices are flagged non-manifold.
Vertex link connectivity compares visited vertices with link edges · case 04
Ordinary boundary vertices are flagged non-manifold.
Vertex link connectivity compares visited vertices with link edges · case 05
Ordinary boundary vertices are flagged non-manifold.
Vertex is called interior when any link vertex closes the fan · case 01
Boundary vertices with more than one incident triangle are reported interior.
Vertex is called interior when any link vertex closes the fan · case 02
Boundary vertices with more than one incident triangle are reported interior.
Vertex is called interior when any link vertex closes the fan · case 03
Boundary vertices with more than one incident triangle are reported interior.
Vertex is called interior when any link vertex closes the fan · case 04
Boundary vertices with more than one incident triangle are reported interior.
Vertex is called interior when any link vertex closes the fan · case 05
Boundary vertices with more than one incident triangle are reported interior.
Vertex link traversal follows link edges in one direction only · case 01
Boundary fans whose start vertex is not the path tail are reported disconnected.
Vertex link traversal follows link edges in one direction only · case 02
Boundary fans whose start vertex is not the path tail are reported disconnected.
Vertex link traversal follows link edges in one direction only · case 03
Boundary fans whose start vertex is not the path tail are reported disconnected.
Vertex link traversal follows link edges in one direction only · case 04
Boundary fans whose start vertex is not the path tail are reported disconnected.
Vertex link traversal follows link edges in one direction only · case 05
Boundary fans whose start vertex is not the path tail are reported disconnected.
Half-edge next pointer assumes triangular faces · case 01
On quads and pentagons the next half-edge points back into the wrong corner.
Half-edge next pointer assumes triangular faces · case 02
On quads and pentagons the next half-edge points back into the wrong corner.
Half-edge next pointer assumes triangular faces · case 03
On quads and pentagons the next half-edge points back into the wrong corner.
Half-edge next pointer assumes triangular faces · case 04
On quads and pentagons the next half-edge points back into the wrong corner.
Half-edge next pointer assumes triangular faces · case 05
On quads and pentagons the next half-edge points back into the wrong corner.
Half-edge prev pointer is stored reversed · case 01
prev returns the twin direction of the real previous half-edge.
Half-edge prev pointer is stored reversed · case 02
prev returns the twin direction of the real previous half-edge.
Half-edge prev pointer is stored reversed · case 03
prev returns the twin direction of the real previous half-edge.
Half-edge prev pointer is stored reversed · case 04
prev returns the twin direction of the real previous half-edge.
Half-edge prev pointer is stored reversed · case 05
prev returns the twin direction of the real previous half-edge.
Half-edge twin lookup finds the half-edge itself · case 01
Boundary half-edges report a twin.
Half-edge twin lookup finds the half-edge itself · case 02
Boundary half-edges report a twin.
Half-edge twin lookup finds the half-edge itself · case 03
Boundary half-edges report a twin.
Half-edge twin lookup finds the half-edge itself · case 04
Boundary half-edges report a twin.
Half-edge twin lookup finds the half-edge itself · case 05
Boundary half-edges report a twin.
Repeated directed half-edges overwrite each other · case 01
A mesh with two faces using the same directed edge is accepted and navigation silently follows the later face.
Repeated directed half-edges overwrite each other · case 02
A mesh with two faces using the same directed edge is accepted and navigation silently follows the later face.
Repeated directed half-edges overwrite each other · case 03
A mesh with two faces using the same directed edge is accepted and navigation silently follows the later face.
Repeated directed half-edges overwrite each other · case 04
A mesh with two faces using the same directed edge is accepted and navigation silently follows the later face.
Repeated directed half-edges overwrite each other · case 05
A mesh with two faces using the same directed edge is accepted and navigation silently follows the later face.
Queries for absent half-edges return the reversed half-edge · case 01
Asking for a non-existent direction silently returns data for its twin.
Queries for absent half-edges return the reversed half-edge · case 02
Asking for a non-existent direction silently returns data for its twin.
Queries for absent half-edges return the reversed half-edge · case 03
Asking for a non-existent direction silently returns data for its twin.
Queries for absent half-edges return the reversed half-edge · case 04
Asking for a non-existent direction silently returns data for its twin.
Queries for absent half-edges return the reversed half-edge · case 05
Asking for a non-existent direction silently returns data for its twin.
Valence counts every vertex of each incident face · case 01
Quad vertices gain the diagonal corner as a neighbour.
Valence counts every vertex of each incident face · case 02
Quad vertices gain the diagonal corner as a neighbour.
Valence counts every vertex of each incident face · case 03
Quad vertices gain the diagonal corner as a neighbour.
Valence counts every vertex of each incident face · case 04
Quad vertices gain the diagonal corner as a neighbour.
Valence counts every vertex of each incident face · case 05
Quad vertices gain the diagonal corner as a neighbour.
Valence counts a vertex as its own neighbour · case 01
Faces with a repeated corner raise the valence and create a fake boundary edge.
Valence counts a vertex as its own neighbour · case 02
Faces with a repeated corner raise the valence and create a fake boundary edge.
Valence counts a vertex as its own neighbour · case 03
Faces with a repeated corner raise the valence and create a fake boundary edge.
Valence counts a vertex as its own neighbour · case 04
Faces with a repeated corner raise the valence and create a fake boundary edge.
Valence counts a vertex as its own neighbour · case 05
Faces with a repeated corner raise the valence and create a fake boundary edge.
Only one endpoint of a boundary edge is marked boundary · case 01
Half the boundary vertices are treated as interior and judged against valence 6.
Only one endpoint of a boundary edge is marked boundary · case 02
Half the boundary vertices are treated as interior and judged against valence 6.
Only one endpoint of a boundary edge is marked boundary · case 03
Half the boundary vertices are treated as interior and judged against valence 6.
Only one endpoint of a boundary edge is marked boundary · case 04
Half the boundary vertices are treated as interior and judged against valence 6.
Only one endpoint of a boundary edge is marked boundary · case 05
Half the boundary vertices are treated as interior and judged against valence 6.
Boundary vertices are judged against the interior valence · case 01
Regular boundary vertices of a triangle grid are counted as irregular.
Boundary vertices are judged against the interior valence · case 02
Regular boundary vertices of a triangle grid are counted as irregular.
Boundary vertices are judged against the interior valence · case 03
Regular boundary vertices of a triangle grid are counted as irregular.
Boundary vertices are judged against the interior valence · case 04
Regular boundary vertices of a triangle grid are counted as irregular.
Boundary vertices are judged against the interior valence · case 05
Regular boundary vertices of a triangle grid are counted as irregular.
Edge collapse accepts extra common neighbours · case 01
Collapses that would fuse two faces or pinch the surface are accepted.
Edge collapse accepts extra common neighbours · case 02
Collapses that would fuse two faces or pinch the surface are accepted.
Edge collapse accepts extra common neighbours · case 03
Collapses that would fuse two faces or pinch the surface are accepted.
Edge collapse accepts extra common neighbours · case 04
Collapses that would fuse two faces or pinch the surface are accepted.
Edge collapse accepts extra common neighbours · case 05
Collapses that would fuse two faces or pinch the surface are accepted.
Opposite vertex is taken from a fixed corner · case 01
When the edge is not stored in the first two corners the link check compares against a or b.
Opposite vertex is taken from a fixed corner · case 02
When the edge is not stored in the first two corners the link check compares against a or b.
Opposite vertex is taken from a fixed corner · case 03
When the edge is not stored in the first two corners the link check compares against a or b.
Opposite vertex is taken from a fixed corner · case 04
When the edge is not stored in the first two corners the link check compares against a or b.
Opposite vertex is taken from a fixed corner · case 05
When the edge is not stored in the first two corners the link check compares against a or b.
Boundary bridge rule is inverted · case 01
Collapsing a rim edge is refused while collapsing an interior edge between two rim vertices is allowed.
Boundary bridge rule is inverted · case 02
Collapsing a rim edge is refused while collapsing an interior edge between two rim vertices is allowed.
Boundary bridge rule is inverted · case 03
Collapsing a rim edge is refused while collapsing an interior edge between two rim vertices is allowed.
Boundary bridge rule is inverted · case 04
Collapsing a rim edge is refused while collapsing an interior edge between two rim vertices is allowed.
Boundary bridge rule is inverted · case 05
Collapsing a rim edge is refused while collapsing an interior edge between two rim vertices is allowed.
Tetrahedron edge collapse is allowed · case 01
Collapsing any edge of a tetrahedron is accepted and produces a degenerate surface.
Tetrahedron edge collapse is allowed · case 02
Collapsing any edge of a tetrahedron is accepted and produces a degenerate surface.
Tetrahedron edge collapse is allowed · case 03
Collapsing any edge of a tetrahedron is accepted and produces a degenerate surface.
Tetrahedron edge collapse is allowed · case 04
Collapsing any edge of a tetrahedron is accepted and produces a degenerate surface.
Tetrahedron edge collapse is allowed · case 05
Collapsing any edge of a tetrahedron is accepted and produces a degenerate surface.
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 ↗