Independent analytical / numerical verification
Computed result: PASS
303 primary + 303 mirrored positions across three configurations, 101 points each from −50 to +50 mm at 1 mm intervals. Acceptance uses every full-resolution point, not the plotted appearance.
Reference: vehiclelab.verification.double-wishbone.cartesian-circles v1.0.0. Model: vehiclelab.suspension.v1; orientation: chassis-forward-projection. Production implementation: packages/simulation-core/src/suspension.ts, unchanged from 1.12.0.
Download full geometry, rows and metrics (JSON)· Download reference equations and numerical rationale
Reference construction and assumptions
Both wishbones rotate around fixed, parallel longitudinal hinges. The upright is rigid; wheel travel is prescribed at the wheel centre, not a ball joint. Spring and damper have separate fixed upper mounts and independent lower-arm mounts. The heading rule is an idealized mathematical constraint; it does not reproduce a physical tie rod.
The reference finds the lower ball joint on a Cartesian circle, intersects the upper-arm and upright circles, and bisects only the lower ball's height to satisfy wheel-centre travel. It differentiates the Cartesian circle constraints analytically and transports each mount using a radial/tangential basis. It imports no production runtime or pose helpers. A separate parallel-arm closed form checks this reference itself.
Signed compression C = L₀ − L; signed motion ratio MR = dC/dq = −dL/dq. Analytical derivatives are compared with production's unchanged 10 µm centred difference and, separately, a reference-only 1 µm derivative check.
This exact reference covers regular planar mechanisms with the stated parallel hinges and heading. Arbitrary 3D geometries retain separate rigid-link, rejection and integration tests; they are not claimed as independently reproduced by this planar reference.
Canonical standalone cases
VL-DW-001 · Design reconstruction · PASS
Check the stated rigid, locked-heading mechanism with an independent Cartesian reference.
All full-resolution metrics pass the declared position, rigid-link, angle and derivative bounds; invalid travel fails explicitly.
Source: tests/validation/suspension-kinematics.test.ts. Degenerate hinges, invalid travel and non-finite input are explicitly rejected. The production suite separately exercises singular geometries and branch endpoints.
VL-DW-002 · Rigid wishbone and upright motion · PASS
Check the stated rigid, locked-heading mechanism with an independent Cartesian reference.
All full-resolution metrics pass the declared position, rigid-link, angle and derivative bounds; invalid travel fails explicitly.
Source: tests/validation/suspension-kinematics.test.ts. Degenerate hinges, invalid travel and non-finite input are explicitly rejected. The production suite separately exercises singular geometries and branch endpoints.
VL-DW-003 · Independent spring compression · PASS
Check the stated rigid, locked-heading mechanism with an independent Cartesian reference.
All full-resolution metrics pass the declared position, rigid-link, angle and derivative bounds; invalid travel fails explicitly.
Source: tests/validation/suspension-kinematics.test.ts. Degenerate hinges, invalid travel and non-finite input are explicitly rejected. The production suite separately exercises singular geometries and branch endpoints.
VL-DW-004 · Independent damper compression · PASS
Check the stated rigid, locked-heading mechanism with an independent Cartesian reference.
All full-resolution metrics pass the declared position, rigid-link, angle and derivative bounds; invalid travel fails explicitly.
Source: tests/validation/suspension-kinematics.test.ts. Degenerate hinges, invalid travel and non-finite input are explicitly rejected. The production suite separately exercises singular geometries and branch endpoints.
VL-DW-005 · Signed motion ratios · PASS
Check the stated rigid, locked-heading mechanism with an independent Cartesian reference.
All full-resolution metrics pass the declared position, rigid-link, angle and derivative bounds; invalid travel fails explicitly.
Source: tests/validation/suspension-kinematics.test.ts. Degenerate hinges, invalid travel and non-finite input are explicitly rejected. The production suite separately exercises singular geometries and branch endpoints.
VL-DW-006 · Left/right reflection · PASS
Check the stated rigid, locked-heading mechanism with an independent Cartesian reference.
All full-resolution metrics pass the declared position, rigid-link, angle and derivative bounds; invalid travel fails explicitly.
Source: tests/validation/suspension-kinematics.test.ts. Degenerate hinges, invalid travel and non-finite input are explicitly rejected. The production suite separately exercises singular geometries and branch endpoints.
VL-DW-007 · Feasible branch and explicit rejection · PASS
Check the stated rigid, locked-heading mechanism with an independent Cartesian reference.
All full-resolution metrics pass the declared position, rigid-link, angle and derivative bounds; invalid travel fails explicitly.
Source: tests/validation/suspension-kinematics.test.ts. Degenerate hinges, invalid travel and non-finite input are explicitly rejected. The production suite separately exercises singular geometries and branch endpoints.
Generic front planar
Computed PASS. Coordinates are SI metres: x forward, y left, z up. The design wheel centre is the origin. Fixture metadata marks manually entered verification geometries; front and rear match the authoritative default hardpoints exactly.
Complete design hardpoints
| Hardpoint | x (m) | y (m) | z (m) |
|---|---|---|---|
| upperFront | 0.14 | -0.34 | 0.16 |
| upperRear | -0.14 | -0.34 | 0.16 |
| upperBall | 0 | -0.06 | 0.15 |
| lowerFront | 0.18 | -0.4 | -0.14 |
| lowerRear | -0.18 | -0.4 | -0.14 |
| lowerBall | 0 | -0.05 | -0.16 |
| springUpper | 0.04 | -0.29 | 0.27 |
| springLower | 0.04 | -0.15 | -0.15 |
| damperUpper | -0.05 | -0.27 | 0.26 |
| damperLower | -0.05 | -0.13 | -0.15 |
| spindleReference | 0 | 0.12 | 0 |
Generic front planar · Element length
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Generic front planar · Signed compression
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Generic front planar · Signed motion ratio
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Generic front planar · Motion-ratio absolute error
Full-resolution analytical-reference difference. The independently declared absolute acceptance bound is 2 × 10⁻⁷ for each element.
- spring error (solid)
- damper error (solid)
Full-resolution acceptance
| Metric | Maximum | RMS | Declared limit | Result |
|---|---|---|---|---|
| hardpointPosition (m) | 1.4326e-13 | 4.4131e-14 | ≤ 2.0000e-9 | PASS |
| constraintResidual (m) | 7.5537e-14 | 2.5062e-14 | ≤ 2.0000e-10 | PASS |
| armAngle (rad) | 5.1134e-13 | 1.5748e-13 | ≤ 2.0000e-8 | PASS |
| reflection (m) | 1.4326e-13 | 4.4131e-14 | ≤ 2.0000e-9 | PASS |
| springLength (m) | 5.0626e-14 | 1.6754e-14 | ≤ 2.0000e-9 | PASS |
| springCompression (m) | 5.0626e-14 | 1.6754e-14 | ≤ 2.0000e-9 | PASS |
| springMotionRatio (1) | 2.2961e-10 | 1.1322e-10 | ≤ 2.0000e-7 | PASS |
| springReferenceDerivative (1) | 1.9017e-10 | 8.3149e-11 | ≤ 2.0000e-8 | PASS |
| springReflectionLength (m) | 0 | 0 | ≤ 2.0000e-9 | PASS |
| springReflectionMotionRatio (1) | 2.2961e-10 | 1.1322e-10 | ≤ 2.0000e-7 | PASS |
| springCompressionRelative (1) | 1.5400e-12 | 6.7914e-13 | Informational | — |
| springMotionRatioRelative (1) | 3.5338e-10 | 1.7263e-10 | Informational | — |
| damperLength (m) | 5.4567e-14 | 1.8078e-14 | ≤ 2.0000e-9 | PASS |
| damperCompression (m) | 5.4567e-14 | 1.8078e-14 | ≤ 2.0000e-9 | PASS |
| damperMotionRatio (1) | 2.5091e-10 | 1.2545e-10 | ≤ 2.0000e-7 | PASS |
| damperReferenceDerivative (1) | 2.5276e-10 | 8.8913e-11 | ≤ 2.0000e-8 | PASS |
| damperReflectionLength (m) | 0 | 0 | ≤ 2.0000e-9 | PASS |
| damperReflectionMotionRatio (1) | 2.5091e-10 | 1.2545e-10 | ≤ 2.0000e-7 | PASS |
| damperCompressionRelative (1) | 1.5388e-12 | 6.8206e-13 | Informational | — |
| damperMotionRatioRelative (1) | 3.5779e-10 | 1.7725e-10 | Informational | — |
Relative errors use a 0.01 m or 0.01 motion-ratio denominator floor and are informational; absolute limits govern acceptance. Design reconstruction error: 2.4985e-16 m. Deterministic repeatability: exact.
Generic rear planar
Computed PASS. Coordinates are SI metres: x forward, y left, z up. The design wheel centre is the origin. Fixture metadata marks manually entered verification geometries; front and rear match the authoritative default hardpoints exactly.
Complete design hardpoints
| Hardpoint | x (m) | y (m) | z (m) |
|---|---|---|---|
| upperFront | 0.16 | -0.37 | 0.17 |
| upperRear | -0.16 | -0.37 | 0.17 |
| upperBall | 0 | -0.065 | 0.145 |
| lowerFront | 0.2 | -0.43 | -0.15 |
| lowerRear | -0.2 | -0.43 | -0.15 |
| lowerBall | 0 | -0.055 | -0.17 |
| springUpper | 0.055 | -0.31 | 0.29 |
| springLower | 0.055 | -0.18 | -0.16 |
| damperUpper | -0.055 | -0.3 | 0.28 |
| damperLower | -0.055 | -0.16 | -0.16 |
| spindleReference | 0 | 0.12 | 0 |
Generic rear planar · Element length
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Generic rear planar · Signed compression
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Generic rear planar · Signed motion ratio
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Generic rear planar · Motion-ratio absolute error
Full-resolution analytical-reference difference. The independently declared absolute acceptance bound is 2 × 10⁻⁷ for each element.
- spring error (solid)
- damper error (solid)
Full-resolution acceptance
| Metric | Maximum | RMS | Declared limit | Result |
|---|---|---|---|---|
| hardpointPosition (m) | 2.1282e-13 | 7.2465e-14 | ≤ 2.0000e-9 | PASS |
| constraintResidual (m) | 1.1324e-13 | 3.7465e-14 | ≤ 2.0000e-10 | PASS |
| armAngle (rad) | 6.9542e-13 | 2.3680e-13 | ≤ 2.0000e-8 | PASS |
| reflection (m) | 2.1282e-13 | 7.2465e-14 | ≤ 2.0000e-9 | PASS |
| springLength (m) | 5.6455e-14 | 2.0650e-14 | ≤ 2.0000e-9 | PASS |
| springCompression (m) | 5.6455e-14 | 2.0650e-14 | ≤ 2.0000e-9 | PASS |
| springMotionRatio (1) | 3.1240e-10 | 1.5358e-10 | ≤ 2.0000e-7 | PASS |
| springReferenceDerivative (1) | 2.1760e-10 | 7.3804e-11 | ≤ 2.0000e-8 | PASS |
| springReflectionLength (m) | 0 | 0 | ≤ 2.0000e-9 | PASS |
| springReflectionMotionRatio (1) | 3.1240e-10 | 1.5358e-10 | ≤ 2.0000e-7 | PASS |
| springCompressionRelative (1) | 1.7943e-12 | 9.7807e-13 | Informational | — |
| springMotionRatioRelative (1) | 4.9124e-10 | 2.4383e-10 | Informational | — |
| damperLength (m) | 6.0396e-14 | 2.2108e-14 | ≤ 2.0000e-9 | PASS |
| damperCompression (m) | 6.0396e-14 | 2.2108e-14 | ≤ 2.0000e-9 | PASS |
| damperMotionRatio (1) | 3.3576e-10 | 1.6638e-10 | ≤ 2.0000e-7 | PASS |
| damperReferenceDerivative (1) | 1.9842e-10 | 8.2163e-11 | ≤ 2.0000e-8 | PASS |
| damperReflectionLength (m) | 0 | 0 | ≤ 2.0000e-9 | PASS |
| damperReflectionMotionRatio (1) | 3.3576e-10 | 1.6638e-10 | ≤ 2.0000e-7 | PASS |
| damperCompressionRelative (1) | 1.7934e-12 | 9.9130e-13 | Informational | — |
| damperMotionRatioRelative (1) | 4.9298e-10 | 2.4678e-10 | Informational | — |
Relative errors use a 0.01 m or 0.01 motion-ratio denominator floor and are informational; absolute limits govern acceptance. Design reconstruction error: 2.4990e-16 m. Deterministic repeatability: exact.
Parallel arms, independent elements
Computed PASS. Coordinates are SI metres: x forward, y left, z up. The design wheel centre is the origin. Fixture metadata marks manually entered verification geometries; front and rear match the authoritative default hardpoints exactly.
Complete design hardpoints
| Hardpoint | x (m) | y (m) | z (m) |
|---|---|---|---|
| upperFront | 0.15 | -0.4 | 0.15 |
| upperRear | -0.15 | -0.4 | 0.15 |
| upperBall | 0 | -0.05 | 0.15 |
| lowerFront | 0.15 | -0.4 | -0.15 |
| lowerRear | -0.15 | -0.4 | -0.15 |
| lowerBall | 0 | -0.05 | -0.15 |
| springUpper | 0.06 | -0.2 | 0.3 |
| springLower | 0.04 | -0.2 | -0.15 |
| damperUpper | -0.05 | -0.17 | 0.32 |
| damperLower | -0.05 | -0.13 | -0.15 |
| spindleReference | 0 | 0.12 | 0 |
Parallel arms, independent elements · Element length
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Parallel arms, independent elements · Signed compression
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Parallel arms, independent elements · Signed motion ratio
All 101 points. Solid: production; dashed: independently derived Cartesian reference. Coincident curves are expected when verification passes.
- spring production (solid)
- spring reference (dashed)
- damper production (solid)
- damper reference (dashed)
Parallel arms, independent elements · Motion-ratio absolute error
Full-resolution analytical-reference difference. The independently declared absolute acceptance bound is 2 × 10⁻⁷ for each element.
- spring error (solid)
- damper error (solid)
Full-resolution acceptance
| Metric | Maximum | RMS | Declared limit | Result |
|---|---|---|---|---|
| hardpointPosition (m) | 8.9908e-15 | 3.4064e-15 | ≤ 2.0000e-9 | PASS |
| constraintResidual (m) | 8.7846e-15 | 3.3599e-15 | ≤ 2.0000e-10 | PASS |
| armAngle (rad) | 2.5591e-14 | 9.7239e-15 | ≤ 2.0000e-8 | PASS |
| reflection (m) | 8.9908e-15 | 3.4064e-15 | ≤ 2.0000e-9 | PASS |
| springLength (m) | 4.9405e-15 | 1.9112e-15 | ≤ 2.0000e-9 | PASS |
| springCompression (m) | 4.9405e-15 | 1.9112e-15 | ≤ 2.0000e-9 | PASS |
| springMotionRatio (1) | 9.2998e-11 | 1.5467e-11 | ≤ 2.0000e-7 | PASS |
| springReferenceDerivative (1) | 1.8302e-10 | 8.5667e-11 | ≤ 2.0000e-8 | PASS |
| springReflectionLength (m) | 0 | 0 | ≤ 2.0000e-9 | PASS |
| springReflectionMotionRatio (1) | 9.2998e-11 | 1.5467e-11 | ≤ 2.0000e-7 | PASS |
| springCompressionRelative (1) | 1.7313e-13 | 7.8106e-14 | Informational | — |
| springMotionRatioRelative (1) | 1.6291e-10 | 2.7086e-11 | Informational | — |
| damperLength (m) | 6.8279e-15 | 2.5803e-15 | ≤ 2.0000e-9 | PASS |
| damperCompression (m) | 6.8279e-15 | 2.5803e-15 | ≤ 2.0000e-9 | PASS |
| damperMotionRatio (1) | 1.1186e-10 | 2.7605e-11 | ≤ 2.0000e-7 | PASS |
| damperReferenceDerivative (1) | 1.8536e-10 | 1.0557e-10 | ≤ 2.0000e-8 | PASS |
| damperReflectionLength (m) | 0 | 0 | ≤ 2.0000e-9 | PASS |
| damperReflectionMotionRatio (1) | 1.1186e-10 | 2.7605e-11 | ≤ 2.0000e-7 | PASS |
| damperCompressionRelative (1) | 1.7713e-13 | 7.8389e-14 | Informational | — |
| damperMotionRatioRelative (1) | 1.4553e-10 | 3.6076e-11 | Informational | — |
Relative errors use a 0.01 m or 0.01 motion-ratio denominator floor and are informational; absolute limits govern acceptance. Design reconstruction error: 2.7894e-16 m. Deterministic repeatability: exact.
Full-Car integration remains separate
VL-DW-008 records the existing force/potential-gradient, passive damper-power, direct/map, design wheel-rate and axle-mapping assertions in packages/simulation-core/src/full-car/geometry.test.ts. Force-gradient acceptance is 0.003 N; passive-power acceptance is 0.001 W. Those tests exercise generalized forces; they are not the standalone Cartesian reference.
Follow the Full-Car force, energy and numerical evidence chain →
Evidence and hardware boundaries
No compatible published suspension reproduction or physical test correlation has been established. No steering, bump-steer, compliance, camber/toe K&C, certification or vehicle-specific accuracy is claimed. The previous external-publication audit remains valid.
Displayed damper housing and rod are constant illustrative dimensions, each 0.68 times the design mount separation. The piston location follows solved separation; compression moves it into the housing and rebound draws it toward the rod end. This depicts geometric telescoping only, not pressure, valving, seals, friction, cavitation or hydraulic dynamics. Custom travel may exceed the illustrative package; artwork is never clamped to change solved motion.
Evidence may be shared as numerical verification of this idealized mechanism. Read the intended-use boundaries.