Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-clean

2D Collision Solver (oblique)

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: VERIFIED_CLEANLifecycle: verified-clean

Inspectable records

Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Area
Physics — Kinematics/Projectiles/Orbits, Forces/Energy/Momentum, Rotational Dynamics, Gravitation, Oscillations/Waves, Optics, E&M Fields, Relativity, Quantum, Statistical Thermo
Tranche
tranche-4
Evidence ID
t4-227
Ledger rows
1

No ledger note is attached.

Review findings

The honest label 'idealized rigid-body, frictionless contact' is appropriate only if the implementation leaves tangential components unchanged and uses restitution along the line of centers. As written, the component-wise formula description is incorrect and the impact-angle definition is incomplete, so the instrument cannot be approved without correction.

Formula and scope findings

  • For an ideal frictionless collision, the 1D restitution/momentum formulas apply only along the line-of-centers normal component; the tangential components remain unchanged. Applying elastic/inelastic formulas independently to both normal and tangent components is incorrect unless a tangential friction/impulse model is explicitly supplied.
  • The impact angle is underdefined: it must specify the orientation of the line-of-centers unit normal relative to the coordinate axes, or the normal vector itself.
  • The spec does not state the exact normal-component formulas or the convention for coefficient of restitution e.
  • A physically standard model requires positive masses and normally constrains 0 <= e <= 1 for passive elastic/inelastic impacts.

Unit assumptions

  • m1 and m2 are positive masses in the same mass unit.
  • All velocity-vector components use the same velocity unit; outputs preserve that unit unless an explicit conversion is specified.
  • impact_angle_deg is interpreted as the line-of-centers normal angle measured counterclockwise from the +x axis.
  • The tangent unit vector is t = (-sin(theta), cos(theta)).
  • For a frictionless contact, tangential velocity components are unchanged and the normal components use v1n' = ((m1 - e*m2)*v1n + (1+e)*m2*v2n)/(m1+m2) and v2n' = ((1+e)*m1*v1n + (m2 - e*m1)*v2n)/(m1+m2).
  • The test vectors use the corrected frictionless-contact interpretation rather than applying restitution independently to the tangent component.

Boundary hardening

BREAK_CLAIMED · SELF_FLAGGED

A zero-total-mass input makes the solver's mass denominator vanish, producing undefined post-collision velocities unless the instrument validates and rejects the input. The branch test also exposes a required approaching-versus-separating decision that a solver must implement consistently.

Errata and corrections

No applied erratum is attached to this unique-name record.

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "inputs": {
    "m1": 1,
    "m2": 1,
    "v1": [
      2,
      1
    ],
    "v2": [
      -1,
      0
    ],
    "impact_angle_deg": 0,
    "line_of_centers_unit": [
      1,
      0
    ],
    "e": 1,
    "velocity_unit": "m/s"
  },
  "expected_outputs": {
    "v1_prime": [
      -1,
      1
    ],
    "v2_prime": [
      2,
      0
    ],
    "velocity_unit": "m/s"
  },
  "working": "n=(1,0), t=(0,1). Normal components: v1n=2, v2n=-1; tangential components: v1t=1, v2t=0. For equal masses and e=1: v1n'=((1-1)*2+(1+1)*1*(-1))/2=-2/2=-1. v2n'=((1+1)*1*2+(1-1)*(-1))/2=4/2=2. Tangential components are unchanged, so v1'=(-1)n+1t=(-1,1) and v2'=2n+0t=(2,0)."
}

Related workflows

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json · VERIFIED_CLEAN
  • evidence-tranche4/tranche4-results.json
  • BOUNDARY_HAZARD_CATALOG.json