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
Reachability is judged on the tool tip with the tool length included · case 01
Targets whose wrist centre is out of reach return a clamped pose instead of "unreachable".
Reachability is judged on the tool tip with the tool length included · case 02
Targets whose wrist centre is out of reach return a clamped pose instead of "unreachable".
Reachability is judged on the tool tip with the tool length included · case 03
Targets whose wrist centre is out of reach return a clamped pose instead of "unreachable".
Reachability is judged on the tool tip with the tool length included · case 04
Targets whose wrist centre is out of reach return a clamped pose instead of "unreachable".
Reachability is judged on the tool tip with the tool length included · case 05
Targets whose wrist centre is out of reach return a clamped pose instead of "unreachable".
Forearm Jacobian column uses the shoulder angle · case 01
Steps move the wrist in a direction that does not reduce the task error whenever q2 is non-zero.
Forearm Jacobian column uses the shoulder angle · case 02
Steps move the wrist in a direction that does not reduce the task error whenever q2 is non-zero.
Forearm Jacobian column uses the shoulder angle · case 03
Steps move the wrist in a direction that does not reduce the task error whenever q2 is non-zero.
Forearm Jacobian column uses the shoulder angle · case 04
Steps move the wrist in a direction that does not reduce the task error whenever q2 is non-zero.
Forearm Jacobian column uses the shoulder angle · case 05
Steps move the wrist in a direction that does not reduce the task error whenever q2 is non-zero.
Damping factor is added unsquared to the normal matrix · case 01
Steps are over-damped for lambda<1 and under-damped for lambda>1 relative to the contract.
Damping factor is added unsquared to the normal matrix · case 02
Steps are over-damped for lambda<1 and under-damped for lambda>1 relative to the contract.
Damping factor is added unsquared to the normal matrix · case 03
Steps are over-damped for lambda<1 and under-damped for lambda>1 relative to the contract.
Damping factor is added unsquared to the normal matrix · case 04
Steps are over-damped for lambda<1 and under-damped for lambda>1 relative to the contract.
Damping factor is added unsquared to the normal matrix · case 05
Steps are over-damped for lambda<1 and under-damped for lambda>1 relative to the contract.
Task error is measured from target to end effector · case 01
Every step moves the arm away from the goal.
Task error is measured from target to end effector · case 02
Every step moves the arm away from the goal.
Task error is measured from target to end effector · case 03
Every step moves the arm away from the goal.
Task error is measured from target to end effector · case 04
Every step moves the arm away from the goal.
Task error is measured from target to end effector · case 05
Every step moves the arm away from the goal.
Joint update multiplies by J instead of J transpose · case 01
Joint deltas are rotated into the wrong space and the arm drifts sideways.
Joint update multiplies by J instead of J transpose · case 02
Joint deltas are rotated into the wrong space and the arm drifts sideways.
Joint update multiplies by J instead of J transpose · case 03
Joint deltas are rotated into the wrong space and the arm drifts sideways.
Joint update multiplies by J instead of J transpose · case 04
Joint deltas are rotated into the wrong space and the arm drifts sideways.
Joint update multiplies by J instead of J transpose · case 05
Joint deltas are rotated into the wrong space and the arm drifts sideways.
Step limiter clips joints independently and bends the step direction · case 01
Large corrections change direction instead of being scaled along the DLS direction.
Step limiter clips joints independently and bends the step direction · case 02
Large corrections change direction instead of being scaled along the DLS direction.
Step limiter clips joints independently and bends the step direction · case 03
Large corrections change direction instead of being scaled along the DLS direction.
Step limiter clips joints independently and bends the step direction · case 04
Large corrections change direction instead of being scaled along the DLS direction.
Step limiter clips joints independently and bends the step direction · case 05
Large corrections change direction instead of being scaled along the DLS direction.
Radian joint delta is added to degree joint state · case 01
Updates are 57 times too small relative to the degree-valued joints.
Radian joint delta is added to degree joint state · case 02
Updates are 57 times too small relative to the degree-valued joints.
Radian joint delta is added to degree joint state · case 03
Updates are 57 times too small relative to the degree-valued joints.
Radian joint delta is added to degree joint state · case 04
Updates are 57 times too small relative to the degree-valued joints.
Radian joint delta is added to degree joint state · case 05
Updates are 57 times too small relative to the degree-valued joints.
CCD sweep reuses tip position from before earlier joint updates · case 01
Joints nearer the base rotate toward a tip position that no longer exists, overshooting the target.
CCD sweep reuses tip position from before earlier joint updates · case 02
Joints nearer the base rotate toward a tip position that no longer exists, overshooting the target.
CCD sweep reuses tip position from before earlier joint updates · case 03
Joints nearer the base rotate toward a tip position that no longer exists, overshooting the target.
CCD sweep reuses tip position from before earlier joint updates · case 04
Joints nearer the base rotate toward a tip position that no longer exists, overshooting the target.
CCD sweep reuses tip position from before earlier joint updates · case 05
Joints nearer the base rotate toward a tip position that no longer exists, overshooting the target.
CCD sweep visits joints base first · case 01
Converged configurations differ from the tip-first CCD contract and use more sweeps.
CCD sweep visits joints base first · case 02
Converged configurations differ from the tip-first CCD contract and use more sweeps.
CCD sweep visits joints base first · case 03
Converged configurations differ from the tip-first CCD contract and use more sweeps.
CCD sweep visits joints base first · case 04
Converged configurations differ from the tip-first CCD contract and use more sweeps.
CCD sweep visits joints base first · case 05
Converged configurations differ from the tip-first CCD contract and use more sweeps.
CCD rotation angle has the wrong handedness · case 01
Each joint rotates away from the target by the angle it should close.
CCD rotation angle has the wrong handedness · case 02
Each joint rotates away from the target by the angle it should close.
CCD rotation angle has the wrong handedness · case 03
Each joint rotates away from the target by the angle it should close.
CCD rotation angle has the wrong handedness · case 04
Each joint rotates away from the target by the angle it should close.
CCD rotation angle has the wrong handedness · case 05
Each joint rotates away from the target by the angle it should close.
CCD clamps the per-step rotation instead of the joint angle · case 01
Joints drift beyond their limits over repeated sweeps.
CCD clamps the per-step rotation instead of the joint angle · case 02
Joints drift beyond their limits over repeated sweeps.
CCD clamps the per-step rotation instead of the joint angle · case 03
Joints drift beyond their limits over repeated sweeps.
CCD clamps the per-step rotation instead of the joint angle · case 04
Joints drift beyond their limits over repeated sweeps.
CCD clamps the per-step rotation instead of the joint angle · case 05
Joints drift beyond their limits over repeated sweeps.
CCD reports a sweep for the convergence check that stops it · case 01
Solves that start inside tolerance report one sweep instead of zero, and every count is one high after convergence.
CCD reports a sweep for the convergence check that stops it · case 02
Solves that start inside tolerance report one sweep instead of zero, and every count is one high after convergence.
CCD reports a sweep for the convergence check that stops it · case 03
Solves that start inside tolerance report one sweep instead of zero, and every count is one high after convergence.
CCD reports a sweep for the convergence check that stops it · case 04
Solves that start inside tolerance report one sweep instead of zero, and every count is one high after convergence.
CCD reports a sweep for the convergence check that stops it · case 05
Solves that start inside tolerance report one sweep instead of zero, and every count is one high after convergence.
CCD joint limit in degrees is compared with radian angles · case 01
Joint limits are effectively disabled because 45 is treated as 45 radians.
CCD joint limit in degrees is compared with radian angles · case 02
Joint limits are effectively disabled because 45 is treated as 45 radians.
CCD joint limit in degrees is compared with radian angles · case 03
Joint limits are effectively disabled because 45 is treated as 45 radians.
CCD joint limit in degrees is compared with radian angles · case 04
Joint limits are effectively disabled because 45 is treated as 45 radians.
CCD joint limit in degrees is compared with radian angles · case 05
Joint limits are effectively disabled because 45 is treated as 45 radians.
FABRIK reachability is measured from the current tip · case 01
Reachable targets are stretched toward as unreachable, and far targets near the tip enter the iteration.
FABRIK reachability is measured from the current tip · case 02
Reachable targets are stretched toward as unreachable, and far targets near the tip enter the iteration.
FABRIK reachability is measured from the current tip · case 03
Reachable targets are stretched toward as unreachable, and far targets near the tip enter the iteration.
FABRIK reachability is measured from the current tip · case 04
Reachable targets are stretched toward as unreachable, and far targets near the tip enter the iteration.
FABRIK reachability is measured from the current tip · case 05
Reachable targets are stretched toward as unreachable, and far targets near the tip enter the iteration.
FABRIK forward pass starts from a drifted base · case 01
The returned chain has its base displaced from the fixed mount.
FABRIK forward pass starts from a drifted base · case 02
The returned chain has its base displaced from the fixed mount.
FABRIK forward pass starts from a drifted base · case 03
The returned chain has its base displaced from the fixed mount.
FABRIK forward pass starts from a drifted base · case 04
The returned chain has its base displaced from the fixed mount.
FABRIK forward pass starts from a drifted base · case 05
The returned chain has its base displaced from the fixed mount.
FABRIK backward pass interpolates from the wrong joint · case 01
Joints are placed at the complementary fraction of the segment and link lengths are not preserved.
FABRIK backward pass interpolates from the wrong joint · case 02
Joints are placed at the complementary fraction of the segment and link lengths are not preserved.
FABRIK backward pass interpolates from the wrong joint · case 03
Joints are placed at the complementary fraction of the segment and link lengths are not preserved.
FABRIK backward pass interpolates from the wrong joint · case 04
Joints are placed at the complementary fraction of the segment and link lengths are not preserved.
FABRIK backward pass interpolates from the wrong joint · case 05
Joints are placed at the complementary fraction of the segment and link lengths are not preserved.
FABRIK forward pass uses link lengths in reversed order · case 01
Chains with unequal links come back with swapped segment lengths.
FABRIK forward pass uses link lengths in reversed order · case 02
Chains with unequal links come back with swapped segment lengths.
FABRIK forward pass uses link lengths in reversed order · case 03
Chains with unequal links come back with swapped segment lengths.
FABRIK forward pass uses link lengths in reversed order · case 04
Chains with unequal links come back with swapped segment lengths.
FABRIK forward pass uses link lengths in reversed order · case 05
Chains with unequal links come back with swapped segment lengths.
Unreachable FABRIK stretch uses the base distance for every joint · case 01
Stretched chains for unreachable targets have compressed outer links.
Unreachable FABRIK stretch uses the base distance for every joint · case 02
Stretched chains for unreachable targets have compressed outer links.
Unreachable FABRIK stretch uses the base distance for every joint · case 03
Stretched chains for unreachable targets have compressed outer links.
Unreachable FABRIK stretch uses the base distance for every joint · case 04
Stretched chains for unreachable targets have compressed outer links.
Unreachable FABRIK stretch uses the base distance for every joint · case 05
Stretched chains for unreachable targets have compressed outer links.
FABRIK reports the pass budget instead of the tip error · case 01
A solve that converges on its final allowed pass is reported as "max-iterations".
FABRIK reports the pass budget instead of the tip error · case 02
A solve that converges on its final allowed pass is reported as "max-iterations".
FABRIK reports the pass budget instead of the tip error · case 03
A solve that converges on its final allowed pass is reported as "max-iterations".
FABRIK reports the pass budget instead of the tip error · case 04
A solve that converges on its final allowed pass is reported as "max-iterations".
FABRIK reports the pass budget instead of the tip error · case 05
A solve that converges on its final allowed pass is reported as "max-iterations".
Candidates exactly at a joint stop are rejected · case 01
A solution sitting on a limit is discarded and a costlier branch or "none" is returned.
Candidates exactly at a joint stop are rejected · case 02
A solution sitting on a limit is discarded and a costlier branch or "none" is returned.
Candidates exactly at a joint stop are rejected · case 03
A solution sitting on a limit is discarded and a costlier branch or "none" is returned.
Candidates exactly at a joint stop are rejected · case 04
A solution sitting on a limit is discarded and a costlier branch or "none" is returned.
Candidates exactly at a joint stop are rejected · case 05
A solution sitting on a limit is discarded and a costlier branch or "none" is returned.
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 ↗