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
Fast-mover test uses speed instead of displacement · case 01
At high frame rates everything is flagged for CCD.
Fast-mover test uses speed instead of displacement · case 02
At high frame rates everything is flagged for CCD.
Fast-mover test uses speed instead of displacement · case 03
At high frame rates everything is flagged for CCD.
Fast-mover test uses speed instead of displacement · case 04
At high frame rates everything is flagged for CCD.
Fast-mover test uses speed instead of displacement · case 05
At high frame rates everything is flagged for CCD.
Swept box candidate test ignores touching bounds · case 01
Objects resting exactly at the sweep boundary are skipped.
Swept box candidate test ignores touching bounds · case 02
Objects resting exactly at the sweep boundary are skipped.
Swept box candidate test ignores touching bounds · case 03
Objects resting exactly at the sweep boundary are skipped.
Swept box candidate test ignores touching bounds · case 04
Objects resting exactly at the sweep boundary are skipped.
Swept box candidate test ignores touching bounds · case 05
Objects resting exactly at the sweep boundary are skipped.
Pairs between two moved proxies are never created · case 01
Two bodies moving into each other never collide.
Pairs between two moved proxies are never created · case 02
Two bodies moving into each other never collide.
Pairs between two moved proxies are never created · case 03
Two bodies moving into each other never collide.
Pairs between two moved proxies are never created · case 04
Two bodies moving into each other never collide.
Pairs between two moved proxies are never created · case 05
Two bodies moving into each other never collide.
Moved-moved pairs are tested from both sides · case 01
Overlap tests double for moving crowds.
Moved-moved pairs are tested from both sides · case 02
Overlap tests double for moving crowds.
Moved-moved pairs are tested from both sides · case 03
Overlap tests double for moving crowds.
Moved-moved pairs are tested from both sides · case 04
Overlap tests double for moving crowds.
Moved-moved pairs are tested from both sides · case 05
Overlap tests double for moving crowds.
Proxies moved twice in a frame are queried twice · case 01
Tree queries and test counts double for proxies touched twice.
Proxies moved twice in a frame are queried twice · case 02
Tree queries and test counts double for proxies touched twice.
Proxies moved twice in a frame are queried twice · case 03
Tree queries and test counts double for proxies touched twice.
Proxies moved twice in a frame are queried twice · case 04
Tree queries and test counts double for proxies touched twice.
Proxies moved twice in a frame are queried twice · case 05
Tree queries and test counts double for proxies touched twice.
Move-buffer overlap test ignores the vertical upper bound · case 01
Proxies stacked far above still pair.
Move-buffer overlap test ignores the vertical upper bound · case 02
Proxies stacked far above still pair.
Move-buffer overlap test ignores the vertical upper bound · case 03
Proxies stacked far above still pair.
Move-buffer overlap test ignores the vertical upper bound · case 04
Proxies stacked far above still pair.
Move-buffer overlap test ignores the vertical upper bound · case 05
Proxies stacked far above still pair.
Moved proxy is tested against itself · case 01
A self pair is created and one wasted test is counted.
Moved proxy is tested against itself · case 02
A self pair is created and one wasted test is counted.
Moved proxy is tested against itself · case 03
A self pair is created and one wasted test is counted.
Moved proxy is tested against itself · case 04
A self pair is created and one wasted test is counted.
Moved proxy is tested against itself · case 05
A self pair is created and one wasted test is counted.
Hash buckets keep particles from previous frames · case 01
Particles pair with ghosts of where neighbours were last frame.
Hash buckets keep particles from previous frames · case 02
Particles pair with ghosts of where neighbours were last frame.
Hash buckets keep particles from previous frames · case 03
Particles pair with ghosts of where neighbours were last frame.
Hash buckets keep particles from previous frames · case 04
Particles pair with ghosts of where neighbours were last frame.
Hash buckets keep particles from previous frames · case 05
Particles pair with ghosts of where neighbours were last frame.
Particles in colliding hash buckets are paired regardless of cell · case 01
Distant particles that hash to the same bucket become neighbours.
Particles in colliding hash buckets are paired regardless of cell · case 02
Distant particles that hash to the same bucket become neighbours.
Particles in colliding hash buckets are paired regardless of cell · case 03
Distant particles that hash to the same bucket become neighbours.
Particles in colliding hash buckets are paired regardless of cell · case 04
Distant particles that hash to the same bucket become neighbours.
Particles in colliding hash buckets are paired regardless of cell · case 05
Distant particles that hash to the same bucket become neighbours.
Hash products are not reduced to 32 bits · case 01
Negative cells map to different buckets than the native engine.
Hash products are not reduced to 32 bits · case 02
Negative cells map to different buckets than the native engine.
Hash products are not reduced to 32 bits · case 03
Negative cells map to different buckets than the native engine.
Hash products are not reduced to 32 bits · case 04
Negative cells map to different buckets than the native engine.
Hash products are not reduced to 32 bits · case 05
Negative cells map to different buckets than the native engine.
Hash combines cell products with addition · case 01
Bucket distribution differs from the contract and collisions cluster.
Hash combines cell products with addition · case 02
Bucket distribution differs from the contract and collisions cluster.
Hash combines cell products with addition · case 03
Bucket distribution differs from the contract and collisions cluster.
Hash combines cell products with addition · case 04
Bucket distribution differs from the contract and collisions cluster.
Hash combines cell products with addition · case 05
Bucket distribution differs from the contract and collisions cluster.
Occupancy statistic counts stale buckets · case 01
Load reports grow monotonically across frames.
Occupancy statistic counts stale buckets · case 02
Load reports grow monotonically across frames.
Occupancy statistic counts stale buckets · case 03
Load reports grow monotonically across frames.
Occupancy statistic counts stale buckets · case 04
Load reports grow monotonically across frames.
Occupancy statistic counts stale buckets · case 05
Load reports grow monotonically across frames.
Boxes starting at the same x are paired by both passes · case 01
Pairs with equal minimum x are reported twice.
Boxes starting at the same x are paired by both passes · case 02
Pairs with equal minimum x are reported twice.
Boxes starting at the same x are paired by both passes · case 03
Pairs with equal minimum x are reported twice.
Boxes starting at the same x are paired by both passes · case 04
Pairs with equal minimum x are reported twice.
Boxes starting at the same x are paired by both passes · case 05
Pairs with equal minimum x are reported twice.
First pruning pass excludes boxes starting at the end of a · case 01
Static boxes that just touch a dynamic box are missed.
First pruning pass excludes boxes starting at the end of a · case 02
Static boxes that just touch a dynamic box are missed.
First pruning pass excludes boxes starting at the end of a · case 03
Static boxes that just touch a dynamic box are missed.
First pruning pass excludes boxes starting at the end of a · case 04
Static boxes that just touch a dynamic box are missed.
First pruning pass excludes boxes starting at the end of a · case 05
Static boxes that just touch a dynamic box are missed.
Box pruning runs only the first pass · case 01
Static boxes that start before a dynamic box never pair with it.
Box pruning runs only the first pass · case 02
Static boxes that start before a dynamic box never pair with it.
Box pruning runs only the first pass · case 03
Static boxes that start before a dynamic box never pair with it.
Box pruning runs only the first pass · case 04
Static boxes that start before a dynamic box never pair with it.
Box pruning runs only the first pass · case 05
Static boxes that start before a dynamic box never pair with it.
Box sets are sorted by id instead of minimum x · case 01
The running index skips boxes and pairs are lost.
Box sets are sorted by id instead of minimum x · case 02
The running index skips boxes and pairs are lost.
Box sets are sorted by id instead of minimum x · case 03
The running index skips boxes and pairs are lost.
Box sets are sorted by id instead of minimum x · case 04
The running index skips boxes and pairs are lost.
Box sets are sorted by id instead of minimum x · case 05
The running index skips boxes and pairs are lost.
Second pass reports pairs as [b, a] · case 01
Consumers index the static set with a dynamic id.
Second pass reports pairs as [b, a] · case 02
Consumers index the static set with a dynamic id.
Second pass reports pairs as [b, a] · case 03
Consumers index the static set with a dynamic id.
Second pass reports pairs as [b, a] · case 04
Consumers index the static set with a dynamic id.
Second pass reports pairs as [b, a] · case 05
Consumers index the static set with a dynamic id.
Insertion sort ignores endpoint kind on equal coordinates · case 01
Boxes that move into touching contact never begin a pair.
Insertion sort ignores endpoint kind on equal coordinates · case 02
Boxes that move into touching contact never begin a pair.
Insertion sort ignores endpoint kind on equal coordinates · case 03
Boxes that move into touching contact never begin a pair.
Insertion sort ignores endpoint kind on equal coordinates · case 04
Boxes that move into touching contact never begin a pair.
Insertion sort ignores endpoint kind on equal coordinates · case 05
Boxes that move into touching contact never begin a pair.
Swap-begin events skip the y overlap check · case 01
Boxes crossing on x far apart in y create contacts.
Swap-begin events skip the y overlap check · case 02
Boxes crossing on x far apart in y create contacts.
Swap-begin events skip the y overlap check · case 03
Boxes crossing on x far apart in y create contacts.
Swap-begin events skip the y overlap check · case 04
Boxes crossing on x far apart in y create contacts.
Swap-begin events skip the y overlap check · case 05
Boxes crossing on x far apart in y create contacts.
Same-kind endpoint swaps end pairs · case 01
Boxes sliding past each other while overlapping lose their contact.
Same-kind endpoint swaps end pairs · case 02
Boxes sliding past each other while overlapping lose their contact.
Same-kind endpoint swaps end pairs · case 03
Boxes sliding past each other while overlapping lose their contact.
Same-kind endpoint swaps end pairs · case 04
Boxes sliding past each other while overlapping lose their contact.
Same-kind endpoint swaps end pairs · case 05
Boxes sliding past each other while overlapping lose their contact.
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 ↗