FAILURE MAP

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 ↗
100840Executable case variants
20168Distinct failure mechanisms
302520Executed implementations
20168Open-access cases

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

Python · Standard library
REFERENCEFAILURE MECHANISMDOMAINACCESS
FA-87801

Endpoint refresh swaps min and max coordinates · case 01

The endpoint array is corrupted every frame and spurious events fire.

Collision detection broadphase● Open access↗
FA-87802

Endpoint refresh swaps min and max coordinates · case 02

The endpoint array is corrupted every frame and spurious events fire.

Collision detection broadphase◈ Members↗
FA-87803

Endpoint refresh swaps min and max coordinates · case 03

The endpoint array is corrupted every frame and spurious events fire.

Collision detection broadphase◈ Members↗
FA-87804

Endpoint refresh swaps min and max coordinates · case 04

The endpoint array is corrupted every frame and spurious events fire.

Collision detection broadphase◈ Members↗
FA-87805

Endpoint refresh swaps min and max coordinates · case 05

The endpoint array is corrupted every frame and spurious events fire.

Collision detection broadphase◈ Members↗
FA-87806

Endpoint array is seeded from the new frame · case 01

No swaps happen so no pairs ever begin or end.

Collision detection broadphase● Open access↗
FA-87807

Endpoint array is seeded from the new frame · case 02

No swaps happen so no pairs ever begin or end.

Collision detection broadphase◈ Members↗
FA-87808

Endpoint array is seeded from the new frame · case 03

No swaps happen so no pairs ever begin or end.

Collision detection broadphase◈ Members↗
FA-87809

Endpoint array is seeded from the new frame · case 04

No swaps happen so no pairs ever begin or end.

Collision detection broadphase◈ Members↗
FA-87810

Endpoint array is seeded from the new frame · case 05

No swaps happen so no pairs ever begin or end.

Collision detection broadphase◈ Members↗
FA-87811

Swap events record pairs in swap orientation · case 01

The same pair appears as both (a,b) and (b,a).

Collision detection broadphase● Open access↗
FA-87812

Swap events record pairs in swap orientation · case 02

The same pair appears as both (a,b) and (b,a).

Collision detection broadphase◈ Members↗
FA-87813

Swap events record pairs in swap orientation · case 03

The same pair appears as both (a,b) and (b,a).

Collision detection broadphase◈ Members↗
FA-87814

Swap events record pairs in swap orientation · case 04

The same pair appears as both (a,b) and (b,a).

Collision detection broadphase◈ Members↗
FA-87815

Swap events record pairs in swap orientation · case 05

The same pair appears as both (a,b) and (b,a).

Collision detection broadphase◈ Members↗
FA-87816

Rotated proxy uses signed cosine and sine · case 01

Boxes rotated into the second quadrant get inverted, too small bounds.

Collision detection broadphase● Open access↗
FA-87817

Rotated proxy uses signed cosine and sine · case 02

Boxes rotated into the second quadrant get inverted, too small bounds.

Collision detection broadphase◈ Members↗
FA-87818

Rotated proxy uses signed cosine and sine · case 03

Boxes rotated into the second quadrant get inverted, too small bounds.

Collision detection broadphase◈ Members↗
FA-87819

Rotated proxy uses signed cosine and sine · case 04

Boxes rotated into the second quadrant get inverted, too small bounds.

Collision detection broadphase◈ Members↗
FA-87820

Rotated proxy uses signed cosine and sine · case 05

Boxes rotated into the second quadrant get inverted, too small bounds.

Collision detection broadphase◈ Members↗
FA-87821

Rotated proxy reuses the horizontal formula vertically · case 01

Rotated boxes get square-ish wrong proxies.

Collision detection broadphase● Open access↗
FA-87822

Rotated proxy reuses the horizontal formula vertically · case 02

Rotated boxes get square-ish wrong proxies.

Collision detection broadphase◈ Members↗
FA-87823

Rotated proxy reuses the horizontal formula vertically · case 03

Rotated boxes get square-ish wrong proxies.

Collision detection broadphase◈ Members↗
FA-87824

Rotated proxy reuses the horizontal formula vertically · case 04

Rotated boxes get square-ish wrong proxies.

Collision detection broadphase◈ Members↗
FA-87825

Rotated proxy reuses the horizontal formula vertically · case 05

Rotated boxes get square-ish wrong proxies.

Collision detection broadphase◈ Members↗
FA-87826

Rotation angle in degrees is passed to trig as radians · case 01

Proxy bounds wobble unpredictably with rotation.

Collision detection broadphase● Open access↗
FA-87827

Rotation angle in degrees is passed to trig as radians · case 02

Proxy bounds wobble unpredictably with rotation.

Collision detection broadphase◈ Members↗
FA-87828

Rotation angle in degrees is passed to trig as radians · case 03

Proxy bounds wobble unpredictably with rotation.

Collision detection broadphase◈ Members↗
FA-87829

Rotation angle in degrees is passed to trig as radians · case 04

Proxy bounds wobble unpredictably with rotation.

Collision detection broadphase◈ Members↗
FA-87830

Rotation angle in degrees is passed to trig as radians · case 05

Proxy bounds wobble unpredictably with rotation.

Collision detection broadphase◈ Members↗
FA-87831

Proxy margin is added only on the maximum corner · case 01

Contacts from the left and below begin late.

Collision detection broadphase● Open access↗
FA-87832

Proxy margin is added only on the maximum corner · case 02

Contacts from the left and below begin late.

Collision detection broadphase◈ Members↗
FA-87833

Proxy margin is added only on the maximum corner · case 03

Contacts from the left and below begin late.

Collision detection broadphase◈ Members↗
FA-87834

Proxy margin is added only on the maximum corner · case 04

Contacts from the left and below begin late.

Collision detection broadphase◈ Members↗
FA-87835

Proxy margin is added only on the maximum corner · case 05

Contacts from the left and below begin late.

Collision detection broadphase◈ Members↗
FA-87836

Rotated proxy halves the already-half extents · case 01

Proxies are half the size of the shape and contacts are missed.

Collision detection broadphase● Open access↗
FA-87837

Rotated proxy halves the already-half extents · case 02

Proxies are half the size of the shape and contacts are missed.

Collision detection broadphase◈ Members↗
FA-87838

Rotated proxy halves the already-half extents · case 03

Proxies are half the size of the shape and contacts are missed.

Collision detection broadphase◈ Members↗
FA-87839

Rotated proxy halves the already-half extents · case 04

Proxies are half the size of the shape and contacts are missed.

Collision detection broadphase◈ Members↗
FA-87840

Rotated proxy halves the already-half extents · case 05

Proxies are half the size of the shape and contacts are missed.

Collision detection broadphase◈ Members↗
FA-87841

Two-link reach test rejects the fully extended pose · case 01

A target exactly at l1+l2 is reported unreachable although the straight arm touches it.

Inverse kinematics solvers● Open access↗
FA-87842

Two-link reach test rejects the fully extended pose · case 02

A target exactly at l1+l2 is reported unreachable although the straight arm touches it.

Inverse kinematics solvers◈ Members↗
FA-87843

Two-link reach test rejects the fully extended pose · case 03

A target exactly at l1+l2 is reported unreachable although the straight arm touches it.

Inverse kinematics solvers◈ Members↗
FA-87844

Two-link reach test rejects the fully extended pose · case 04

A target exactly at l1+l2 is reported unreachable although the straight arm touches it.

Inverse kinematics solvers◈ Members↗
FA-87845

Two-link reach test rejects the fully extended pose · case 05

A target exactly at l1+l2 is reported unreachable although the straight arm touches it.

Inverse kinematics solvers◈ Members↗
FA-87846

Two-link solver answers targets inside the unreachable inner hole · case 01

Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".

Inverse kinematics solvers● Open access↗
FA-87847

Two-link solver answers targets inside the unreachable inner hole · case 02

Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".

Inverse kinematics solvers◈ Members↗
FA-87848

Two-link solver answers targets inside the unreachable inner hole · case 03

Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".

Inverse kinematics solvers◈ Members↗
FA-87849

Two-link solver answers targets inside the unreachable inner hole · case 04

Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".

Inverse kinematics solvers◈ Members↗
FA-87850

Two-link solver answers targets inside the unreachable inner hole · case 05

Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".

Inverse kinematics solvers◈ Members↗
FA-87851

Elbow angle uses the interior triangle angle instead of the joint angle · case 01

Every reachable pose has the elbow bent to the supplementary angle and misses the target.

Inverse kinematics solvers● Open access↗
FA-87852

Elbow angle uses the interior triangle angle instead of the joint angle · case 02

Every reachable pose has the elbow bent to the supplementary angle and misses the target.

Inverse kinematics solvers◈ Members↗
FA-87853

Elbow angle uses the interior triangle angle instead of the joint angle · case 03

Every reachable pose has the elbow bent to the supplementary angle and misses the target.

Inverse kinematics solvers◈ Members↗
FA-87854

Elbow angle uses the interior triangle angle instead of the joint angle · case 04

Every reachable pose has the elbow bent to the supplementary angle and misses the target.

Inverse kinematics solvers◈ Members↗
FA-87855

Elbow angle uses the interior triangle angle instead of the joint angle · case 05

Every reachable pose has the elbow bent to the supplementary angle and misses the target.

Inverse kinematics solvers◈ Members↗
FA-87856

Elbow-up and elbow-down requests return swapped branches · case 01

Asking for elbow up yields a negative q2 and elbow down a positive one.

Inverse kinematics solvers● Open access↗
FA-87857

Elbow-up and elbow-down requests return swapped branches · case 02

Asking for elbow up yields a negative q2 and elbow down a positive one.

Inverse kinematics solvers◈ Members↗
FA-87858

Elbow-up and elbow-down requests return swapped branches · case 03

Asking for elbow up yields a negative q2 and elbow down a positive one.

Inverse kinematics solvers◈ Members↗
FA-87859

Elbow-up and elbow-down requests return swapped branches · case 04

Asking for elbow up yields a negative q2 and elbow down a positive one.

Inverse kinematics solvers◈ Members↗
FA-87860

Elbow-up and elbow-down requests return swapped branches · case 05

Asking for elbow up yields a negative q2 and elbow down a positive one.

Inverse kinematics solvers◈ Members↗
FA-87861

Shoulder angle adds the forearm offset instead of subtracting it · case 01

The shoulder points past the target by twice the forearm offset angle.

Inverse kinematics solvers● Open access↗
FA-87862

Shoulder angle adds the forearm offset instead of subtracting it · case 02

The shoulder points past the target by twice the forearm offset angle.

Inverse kinematics solvers◈ Members↗
FA-87863

Shoulder angle adds the forearm offset instead of subtracting it · case 03

The shoulder points past the target by twice the forearm offset angle.

Inverse kinematics solvers◈ Members↗
FA-87864

Shoulder angle adds the forearm offset instead of subtracting it · case 04

The shoulder points past the target by twice the forearm offset angle.

Inverse kinematics solvers◈ Members↗
FA-87865

Shoulder angle adds the forearm offset instead of subtracting it · case 05

The shoulder points past the target by twice the forearm offset angle.

Inverse kinematics solvers◈ Members↗
FA-87866

Target bearing reflects the goal across the diagonal · case 01

Targets off the 45 degree diagonal are reached at their mirror image.

Inverse kinematics solvers● Open access↗
FA-87867

Target bearing reflects the goal across the diagonal · case 02

Targets off the 45 degree diagonal are reached at their mirror image.

Inverse kinematics solvers◈ Members↗
FA-87868

Target bearing reflects the goal across the diagonal · case 03

Targets off the 45 degree diagonal are reached at their mirror image.

Inverse kinematics solvers◈ Members↗
FA-87869

Target bearing reflects the goal across the diagonal · case 04

Targets off the 45 degree diagonal are reached at their mirror image.

Inverse kinematics solvers◈ Members↗
FA-87870

Target bearing reflects the goal across the diagonal · case 05

Targets off the 45 degree diagonal are reached at their mirror image.

Inverse kinematics solvers◈ Members↗
FA-87871

Shoulder angle is wrapped to 0..360 instead of the signed interval · case 01

Shoulder commands below zero come back as large positive angles.

Inverse kinematics solvers● Open access↗
FA-87872

Shoulder angle is wrapped to 0..360 instead of the signed interval · case 02

Shoulder commands below zero come back as large positive angles.

Inverse kinematics solvers◈ Members↗
FA-87873

Shoulder angle is wrapped to 0..360 instead of the signed interval · case 03

Shoulder commands below zero come back as large positive angles.

Inverse kinematics solvers◈ Members↗
FA-87874

Shoulder angle is wrapped to 0..360 instead of the signed interval · case 04

Shoulder commands below zero come back as large positive angles.

Inverse kinematics solvers◈ Members↗
FA-87875

Shoulder angle is wrapped to 0..360 instead of the signed interval · case 05

Shoulder commands below zero come back as large positive angles.

Inverse kinematics solvers◈ Members↗
FA-87876

Wrist centre is placed beyond the tool tip instead of behind it · case 01

The tool tip ends 2*l3 past the target along the heading.

Inverse kinematics solvers● Open access↗
FA-87877

Wrist centre is placed beyond the tool tip instead of behind it · case 02

The tool tip ends 2*l3 past the target along the heading.

Inverse kinematics solvers◈ Members↗
FA-87878

Wrist centre is placed beyond the tool tip instead of behind it · case 03

The tool tip ends 2*l3 past the target along the heading.

Inverse kinematics solvers◈ Members↗
FA-87879

Wrist centre is placed beyond the tool tip instead of behind it · case 04

The tool tip ends 2*l3 past the target along the heading.

Inverse kinematics solvers◈ Members↗
FA-87880

Wrist centre is placed beyond the tool tip instead of behind it · case 05

The tool tip ends 2*l3 past the target along the heading.

Inverse kinematics solvers◈ Members↗
FA-87881

Tool heading in degrees is used directly as radians · case 01

Headings other than zero produce wild wrist offsets and wrist joint angles.

Inverse kinematics solvers● Open access↗
FA-87882

Tool heading in degrees is used directly as radians · case 02

Headings other than zero produce wild wrist offsets and wrist joint angles.

Inverse kinematics solvers◈ Members↗
FA-87883

Tool heading in degrees is used directly as radians · case 03

Headings other than zero produce wild wrist offsets and wrist joint angles.

Inverse kinematics solvers◈ Members↗
FA-87884

Tool heading in degrees is used directly as radians · case 04

Headings other than zero produce wild wrist offsets and wrist joint angles.

Inverse kinematics solvers◈ Members↗
FA-87885

Tool heading in degrees is used directly as radians · case 05

Headings other than zero produce wild wrist offsets and wrist joint angles.

Inverse kinematics solvers◈ Members↗
FA-87886

Wrist joint ignores the shoulder angle when matching heading · case 01

The tool heading is off by exactly the shoulder angle.

Inverse kinematics solvers● Open access↗
FA-87887

Wrist joint ignores the shoulder angle when matching heading · case 02

The tool heading is off by exactly the shoulder angle.

Inverse kinematics solvers◈ Members↗
FA-87888

Wrist joint ignores the shoulder angle when matching heading · case 03

The tool heading is off by exactly the shoulder angle.

Inverse kinematics solvers◈ Members↗
FA-87889

Wrist joint ignores the shoulder angle when matching heading · case 04

The tool heading is off by exactly the shoulder angle.

Inverse kinematics solvers◈ Members↗
FA-87890

Wrist joint ignores the shoulder angle when matching heading · case 05

The tool heading is off by exactly the shoulder angle.

Inverse kinematics solvers◈ Members↗
FA-87891

Joint wrap saturates at +/-180 instead of wrapping · case 01

Multi-turn heading requests yield wrist angles pinned at 180 or -180.

Inverse kinematics solvers● Open access↗
FA-87892

Joint wrap saturates at +/-180 instead of wrapping · case 02

Multi-turn heading requests yield wrist angles pinned at 180 or -180.

Inverse kinematics solvers◈ Members↗
FA-87893

Joint wrap saturates at +/-180 instead of wrapping · case 03

Multi-turn heading requests yield wrist angles pinned at 180 or -180.

Inverse kinematics solvers◈ Members↗
FA-87894

Joint wrap saturates at +/-180 instead of wrapping · case 04

Multi-turn heading requests yield wrist angles pinned at 180 or -180.

Inverse kinematics solvers◈ Members↗
FA-87895

Joint wrap saturates at +/-180 instead of wrapping · case 05

Multi-turn heading requests yield wrist angles pinned at 180 or -180.

Inverse kinematics solvers◈ Members↗
FA-87896

Shoulder bearing aims at the tool tip rather than the wrist centre · case 01

The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.

Inverse kinematics solvers● Open access↗
FA-87897

Shoulder bearing aims at the tool tip rather than the wrist centre · case 02

The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.

Inverse kinematics solvers◈ Members↗
FA-87898

Shoulder bearing aims at the tool tip rather than the wrist centre · case 03

The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.

Inverse kinematics solvers◈ Members↗
FA-87899

Shoulder bearing aims at the tool tip rather than the wrist centre · case 04

The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.

Inverse kinematics solvers◈ Members↗
FA-87900

Shoulder bearing aims at the tool tip rather than the wrist centre · case 05

The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.

Inverse kinematics solvers◈ Members↗

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 ↗