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
Backward Euler drift uses the old velocity · case 01
Position lags the implicit velocity and energy is no longer monotone.
Backward Euler drift uses the old velocity · case 02
Position lags the implicit velocity and energy is no longer monotone.
Backward Euler drift uses the old velocity · case 03
Position lags the implicit velocity and energy is no longer monotone.
Backward Euler drift uses the old velocity · case 04
Position lags the implicit velocity and energy is no longer monotone.
Backward Euler drift uses the old velocity · case 05
Position lags the implicit velocity and energy is no longer monotone.
Energy monitor doubles the spring potential · case 01
Peak energy ratio is inflated whenever the spring is stretched.
Energy monitor doubles the spring potential · case 02
Peak energy ratio is inflated whenever the spring is stretched.
Energy monitor doubles the spring potential · case 03
Peak energy ratio is inflated whenever the spring is stretched.
Energy monitor doubles the spring potential · case 04
Peak energy ratio is inflated whenever the spring is stretched.
Energy monitor doubles the spring potential · case 05
Peak energy ratio is inflated whenever the spring is stretched.
Energy peak ignores the initial state · case 01
A purely dissipative run reports a peak below one.
Energy peak ignores the initial state · case 02
A purely dissipative run reports a peak below one.
Energy peak ignores the initial state · case 03
A purely dissipative run reports a peak below one.
Energy peak ignores the initial state · case 04
A purely dissipative run reports a peak below one.
Energy peak ignores the initial state · case 05
A purely dissipative run reports a peak below one.
Implicit damping term is not divided by mass · case 01
Damping strength scales wrongly with body mass.
Implicit damping term is not divided by mass · case 02
Damping strength scales wrongly with body mass.
Implicit damping term is not divided by mass · case 03
Damping strength scales wrongly with body mass.
Implicit damping term is not divided by mass · case 04
Damping strength scales wrongly with body mass.
Implicit damping term is not divided by mass · case 05
Damping strength scales wrongly with body mass.
Backward Euler numerator applies the spring force with the wrong sign · case 01
The implicit solve pushes the mass away from rest.
Backward Euler numerator applies the spring force with the wrong sign · case 02
The implicit solve pushes the mass away from rest.
Backward Euler numerator applies the spring force with the wrong sign · case 03
The implicit solve pushes the mass away from rest.
Backward Euler numerator applies the spring force with the wrong sign · case 04
The implicit solve pushes the mass away from rest.
Backward Euler numerator applies the spring force with the wrong sign · case 05
The implicit solve pushes the mass away from rest.
Verlet inertia term ignores the change in step length · case 01
Whenever the frame time changes the implied velocity jumps.
Verlet inertia term ignores the change in step length · case 02
Whenever the frame time changes the implied velocity jumps.
Verlet inertia term ignores the change in step length · case 03
Whenever the frame time changes the implied velocity jumps.
Verlet inertia term ignores the change in step length · case 04
Whenever the frame time changes the implied velocity jumps.
Verlet inertia term ignores the change in step length · case 05
Whenever the frame time changes the implied velocity jumps.
Variable-step Verlet uses h squared for the acceleration term · case 01
Uneven steps inject spurious forces.
Variable-step Verlet uses h squared for the acceleration term · case 02
Uneven steps inject spurious forces.
Variable-step Verlet uses h squared for the acceleration term · case 03
Uneven steps inject spurious forces.
Variable-step Verlet uses h squared for the acceleration term · case 04
Uneven steps inject spurious forces.
Variable-step Verlet uses h squared for the acceleration term · case 05
Uneven steps inject spurious forces.
Verlet bootstrap step uses the full acceleration dt squared · case 01
The first displacement is too large and seeds a persistent velocity error.
Verlet bootstrap step uses the full acceleration dt squared · case 02
The first displacement is too large and seeds a persistent velocity error.
Verlet bootstrap step uses the full acceleration dt squared · case 03
The first displacement is too large and seeds a persistent velocity error.
Verlet bootstrap step uses the full acceleration dt squared · case 04
The first displacement is too large and seeds a persistent velocity error.
Verlet bootstrap step uses the full acceleration dt squared · case 05
The first displacement is too large and seeds a persistent velocity error.
Current and previous step lengths are swapped · case 01
Accelerating or decelerating frame rates distort the trajectory in opposite directions.
Current and previous step lengths are swapped · case 02
Accelerating or decelerating frame rates distort the trajectory in opposite directions.
Current and previous step lengths are swapped · case 03
Accelerating or decelerating frame rates distort the trajectory in opposite directions.
Current and previous step lengths are swapped · case 04
Accelerating or decelerating frame rates distort the trajectory in opposite directions.
Current and previous step lengths are swapped · case 05
Accelerating or decelerating frame rates distort the trajectory in opposite directions.
Verlet velocity estimate divides by the first step length · case 01
Reported velocity is wrong whenever the last step differs from the first.
Verlet velocity estimate divides by the first step length · case 02
Reported velocity is wrong whenever the last step differs from the first.
Verlet velocity estimate divides by the first step length · case 03
Reported velocity is wrong whenever the last step differs from the first.
Verlet velocity estimate divides by the first step length · case 04
Reported velocity is wrong whenever the last step differs from the first.
Verlet velocity estimate divides by the first step length · case 05
Reported velocity is wrong whenever the last step differs from the first.
Verlet bootstrap ignores the initial velocity · case 01
Launched bodies start from rest apart from the acceleration term.
Verlet bootstrap ignores the initial velocity · case 02
Launched bodies start from rest apart from the acceleration term.
Verlet bootstrap ignores the initial velocity · case 03
Launched bodies start from rest apart from the acceleration term.
Verlet bootstrap ignores the initial velocity · case 04
Launched bodies start from rest apart from the acceleration term.
Verlet bootstrap ignores the initial velocity · case 05
Launched bodies start from rest apart from the acceleration term.
Quaternion derivative omits the one-half factor · case 01
Bodies spin at twice the commanded angular velocity.
Quaternion derivative omits the one-half factor · case 02
Bodies spin at twice the commanded angular velocity.
Quaternion derivative omits the one-half factor · case 03
Bodies spin at twice the commanded angular velocity.
Quaternion derivative omits the one-half factor · case 04
Bodies spin at twice the commanded angular velocity.
Quaternion derivative omits the one-half factor · case 05
Bodies spin at twice the commanded angular velocity.
World angular velocity is applied on the body side of the product · case 01
Spinning bodies precess about the wrong axis once they are tilted.
World angular velocity is applied on the body side of the product · case 02
Spinning bodies precess about the wrong axis once they are tilted.
World angular velocity is applied on the body side of the product · case 03
Spinning bodies precess about the wrong axis once they are tilted.
World angular velocity is applied on the body side of the product · case 04
Spinning bodies precess about the wrong axis once they are tilted.
World angular velocity is applied on the body side of the product · case 05
Spinning bodies precess about the wrong axis once they are tilted.
Hamilton product x component has a flipped cross term · case 01
Rotations about combined axes drift into the wrong orientation.
Hamilton product x component has a flipped cross term · case 02
Rotations about combined axes drift into the wrong orientation.
Hamilton product x component has a flipped cross term · case 03
Rotations about combined axes drift into the wrong orientation.
Hamilton product x component has a flipped cross term · case 04
Rotations about combined axes drift into the wrong orientation.
Hamilton product x component has a flipped cross term · case 05
Rotations about combined axes drift into the wrong orientation.
Integrated quaternion is never renormalized · case 01
Orientation magnitude grows each step and scales transformed geometry.
Integrated quaternion is never renormalized · case 02
Orientation magnitude grows each step and scales transformed geometry.
Integrated quaternion is never renormalized · case 03
Orientation magnitude grows each step and scales transformed geometry.
Integrated quaternion is never renormalized · case 04
Orientation magnitude grows each step and scales transformed geometry.
Integrated quaternion is never renormalized · case 05
Orientation magnitude grows each step and scales transformed geometry.
Hemisphere canonicalization negates only the scalar part · case 01
Quaternions with negative w are turned into a different rotation.
Hemisphere canonicalization negates only the scalar part · case 02
Quaternions with negative w are turned into a different rotation.
Hemisphere canonicalization negates only the scalar part · case 03
Quaternions with negative w are turned into a different rotation.
Hemisphere canonicalization negates only the scalar part · case 04
Quaternions with negative w are turned into a different rotation.
Hemisphere canonicalization negates only the scalar part · case 05
Quaternions with negative w are turned into a different rotation.
Baumgarte bias ignores the allowed penetration slop · case 01
Resting contacts jitter because every tiny overlap is pushed apart.
Baumgarte bias ignores the allowed penetration slop · case 02
Resting contacts jitter because every tiny overlap is pushed apart.
Baumgarte bias ignores the allowed penetration slop · case 03
Resting contacts jitter because every tiny overlap is pushed apart.
Baumgarte bias ignores the allowed penetration slop · case 04
Resting contacts jitter because every tiny overlap is pushed apart.
Baumgarte bias ignores the allowed penetration slop · case 05
Resting contacts jitter because every tiny overlap is pushed apart.
Baumgarte bias multiplies by the timestep · case 01
Penetration is corrected far too slowly and objects sink.
Baumgarte bias multiplies by the timestep · case 02
Penetration is corrected far too slowly and objects sink.
Baumgarte bias multiplies by the timestep · case 03
Penetration is corrected far too slowly and objects sink.
Baumgarte bias multiplies by the timestep · case 04
Penetration is corrected far too slowly and objects sink.
Baumgarte bias multiplies by the timestep · case 05
Penetration is corrected far too slowly and objects sink.
Restitution threshold compares the signed velocity against a positive limit · case 01
Slow resting contacts bounce and never settle.
Restitution threshold compares the signed velocity against a positive limit · case 02
Slow resting contacts bounce and never settle.
Restitution threshold compares the signed velocity against a positive limit · case 03
Slow resting contacts bounce and never settle.
Restitution threshold compares the signed velocity against a positive limit · case 04
Slow resting contacts bounce and never settle.
Restitution threshold compares the signed velocity against a positive limit · case 05
Slow resting contacts bounce and never settle.
Positional bias and restitution bounce are summed · case 01
Penetrating bouncy contacts launch with excess energy.
Positional bias and restitution bounce are summed · case 02
Penetrating bouncy contacts launch with excess energy.
Positional bias and restitution bounce are summed · case 03
Penetrating bouncy contacts launch with excess energy.
Positional bias and restitution bounce are summed · case 04
Penetrating bouncy contacts launch with excess energy.
Positional bias and restitution bounce are summed · case 05
Penetrating bouncy contacts launch with excess energy.
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 ↗