Page actions
instrument / verified-clean
2D Collision Solver (oblique)
The current ledger marks this instrument verified clean within the source-bound verification corpus.
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_CLEANevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json