VehicleLabLaunch Studio
Menu

Vehicle / Suspension

Define hardpoints. Inspect the mechanism.

Double-wishbone rigid geometry around design ride height, with independent Front and Rear axle definitions.

Geometry and transient dynamics

VehicleLab 1.19.0 uses Double-Wishbone geometry to determine passive Full-Car forces. Jounce drives rigid kinematics, incremental spring/damper compression and signed motion ratios. Linear installed element coefficients map through virtual work into the existing 7-DOF vehicle equations. No suspension-link dynamics or additional DOFs are introduced. A compiled compression map and its analytic derivative serve every RK4 stage; departure from its validated branch fails the run with a corner-specific engineering error.

Suspension Engineering Comparison - release 1.19.0

In Studio → Suspension Kinematics → Front, select Engineering Comparison. Mechanism A is physically steered Double Wishbone; B is MacPherson. This session owns both definitions, initialized from regular current front geometry and generic MacPherson. Set an identical jounce range, rack position and sample resolution, then Run comparison.

Signed camber uses the actual wheel spindle in the front projection; positive means top outward. Toe-in retains the verified side conventions. Fixed-rack bump toe uses the zero-jounce state at the same rack. Caster and SAI are clearly labeled geometric reference projections; they are not complete instantaneous screw axes. Spring/damper motion ratios are signed compression derivatives, not length ratios or wheel stiffness.

Advanced editors independently modify hardpoints and rack geometry in mm. Apply explicitly derives design tie lengths, validates design rank and checks requested coverage. Changes invalidate previous results. Rejected samples retain reasons; common curves never bridge invalid gaps or extrapolate. Switch the solved mechanism view at the selected jounce/rack.

Download the completed comparison as SI CSV, full geometry/provenance JSON and a searchable Engineering Report with four plots. All use the same immutable snapshot; stale exports are blocked. This session is separate from Project Save/Open and passive Full-Car physics.

Independent metric evidence →

Canonical architecture

Release 1.18.0 adds MacPherson Strut in Studio → Suspension Kinematics → Front → Inspection mechanism. It is a separate rigid kinematics study: one hinged lower arm, a rigid carrier, an ideal spherical upper strut mount and a telescoping strut axis fixed to the carrier. Two transverse alignment constraints, prescribed wheel jounce and constant tie length close four tangent coordinates. Strut length is solved, not prescribed.

Jounce and rack controls update independently solved corners, spring/damper compression, signed motion ratios and toe curves at fixed rack. The advanced editor takes axle-frame hardpoints in mm; applying geometry explicitly derives constant design tie lengths and checks ±50 mm jounce / ±20 mm rack coverage. Use the labelled midpoint action to update the axis reference after a top-mount edit. Rejected definitions preserve the accepted pose. Coaxial spring/damper seats have different installed offsets; this arrangement implies equal incremental motion ratios. Ideal joints omit bushings and rubber-mount compliance.

MacPherson is not included in legacy Project Save/Open and does not change Full-Car forces, road-load simulation or handling. Closing its inspection discards its inputs and geometry. Independent MacPherson evidence →

Release 1.17.0 adds Physical Rack & Tie Rod as an explicit front-inspector mode. The existing Passive Double Wishbone / Fixed Heading mode continues to drive passive Full-Car forces. The steering study is inspection-only: it is separate from main Project Save/Open, and closing it discards its steering inputs and edits.

Open Studio → Suspension Kinematics → Front → Steering constraint. Scrub front jounce and common rack displacement, inspect independently solved Left corner, Right corner or Whole axle, and choose Engineering 3/4, Front, Side or Top. The collapsed advanced editor accepts rack reference/inner offsets and each upright's outer tie joint in mm. Applying geometry derives constant tie lengths once at design; rejected edits or poses preserve the last valid state and identify requested versus accepted coordinates.

Heading is positive left. Toe-in is minus left heading and plus right heading. Steering angle is relative to (jounce, rack) = (0, 0). The computed toe-change curve uses toe(jounce, current rack) minus toe(0, the same rack), so design-height bump steer is zero even while steering. Heading gain is degrees per mm of rack travel, not a steering-wheel ratio. Independent steering evidence and numerical limits →

Double Wishbone — Kinematics Verification publishes complete geometry, independent reference curves and computed full-resolution errors. Verification of the ideal heading rule does not establish tie-rod, bump-steer or physical vehicle accuracy.

Physics-linked spring and damper artwork

The inspector, Full-Car motion and supported spatial videos share the same solved hardware. Spring and damper axes remain independent. A translucent cylinder exposes a piston and rod; their placement follows solved mount separation. Housing and rod lengths remain fixed at 0.68 times the design damper length. Spring end turns meet their seats with circular wire thickness. Dimensions are schematic, not installed component drawings or a hydraulic model. Custom motion can exceed this illustrative housing; solved motion is never clamped.

A vehicle has independent front and rear suspension definitions. Each stores mechanism type, geometry metadata, explicit hardpoints and an orientation constraint under vehiclelab.suspension.v1. Only double-wishbone is implemented. The solver is an engineering service in simulation-core, separate from the transient force kernel. Visualization consumes its solved state directly.

Coordinates and mirroring

Define the left corner. The local origin is its wheel centre at design ride height: (0, 0, 0). +X is vehicle forward, +Y vehicle left, +Z up. The editor displays millimetres; canonical data and the solver use metres. Wheel centre is derived from this origin rather than duplicating track or wheelbase. Right geometry mirrors Y, including spindle reference; X and Z stay unchanged.

Vehicle placement adds the existing axle longitudinal position and ±half of the axle track. Front and rear geometry therefore do not store a second set of vehicle dimensions. The inspection viewport defaults to the left corner for hardpoint clarity; choose Whole axle to inspect mirroring at the current track. Geometry uses a uniform physical scale.

Hardpoints and attachments

A hardpoint is a mounting or joint position in the design pose. The two upper inboard pivots define the upper-arm hinge; the two lower pivots define the lower hinge. Each ball joint moves with its rigid arm. Their separation defines the rigid upright.

Spring/damper upper mounts are chassis-fixed. Both lower mounts are attached rigidly to the lower wishbone, including any bracket offset from the arm plane. The wheel centre and spindle reference belong to the upright. The spindle reference is an endpoint measured from the wheel-centre origin, defining the wheel axle direction.

Locked heading assumption

Two ball joints alone leave a free rotation of the upright about their connecting axis. VehicleLab explicitly constrains its longitudinal basis to chassis +X projected perpendicular to that axis. The lateral basis is the cross product of the ball-joint axis and that projected direction. Wheel centre and spindle reference retain their design coordinates in this orthonormal upright frame.

Passive fixed-heading mode uses this ideal constraint. It supplies no steering input or toe curve; the separate physical front mode described above supplies rack steering and fixed-rack bump steer. Steering dynamics and camber curves remain outside this release. An upright nearly parallel to chassis +X is rejected because this coordinate reference becomes singular.

VehicleLab Generic geometry

Front and Rear are independently authored educational geometries, not any named production vehicle. Both are validated over −50 to +50 mm wheel travel. Coordinates below are the left design pose in mm.

VehicleLab Generic Front Double Wishbone

HardpointX (mm)Y (mm)Z (mm)
UCA front inboard140.0-340.0160.0
UCA rear inboard-140.0-340.0160.0
Upper ball joint0.0-60.0150.0
LCA front inboard180.0-400.0-140.0
LCA rear inboard-180.0-400.0-140.0
Lower ball joint0.0-50.0-160.0
Spring chassis mount40.0-290.0270.0
Spring lower-arm mount40.0-150.0-150.0
Damper chassis mount-50.0-270.0260.0
Damper lower-arm mount-50.0-130.0-150.0
Spindle axis reference0.0120.00.0

VehicleLab Generic Rear Double Wishbone

HardpointX (mm)Y (mm)Z (mm)
UCA front inboard160.0-370.0170.0
UCA rear inboard-160.0-370.0170.0
Upper ball joint0.0-65.0145.0
LCA front inboard200.0-430.0-150.0
LCA rear inboard-200.0-430.0-150.0
Lower ball joint0.0-55.0-170.0
Spring chassis mount55.0-310.0290.0
Spring lower-arm mount55.0-180.0-160.0
Damper chassis mount-55.0-300.0280.0
Damper lower-arm mount-55.0-160.0-160.0
Spindle axis reference0.0120.00.0

Customize geometry

  1. At Full-Car Vehicle, choose Customize Geometry for the axle. Editing starts from its current valid geometry.
  2. Enter grouped X/Y/Z coordinates, then Apply Geometry. Schema, geometric and design-Jacobian checks run before acceptance. Invalid edits leave the last valid definition and solved display intact.
  3. Reset to VehicleLab Generic restores that axle and the default travel study.

Rig projects retain front/rear hardpoints, installed element coefficients, design motion ratios and mapping provenance. Older editable definitions migrate to generic Double Wishbone with installed rates converted to preserve local wheel rates. Completed runs retain the definition used at execution; later edits cannot change their playback. Spatial runs retain the same vehicle definition in evidence, while spatial project saving remains unavailable. MacPherson is available separately for front kinematics inspection; it does not replace this saved Full-Car vehicle definition.

Jounce, rebound and motion ratio

Completed Full-Car Motion also offers a Suspension camera with FL/FR/RL/RR selection, exact hardpoint highlighting and read-only design/current local coordinates in mm. One See-through body checkbox changes exterior materials only; it defaults ON at 30% opacity. Artificial chassis rails and towers are removed. Built-in or locally imported GLB/STL exterior meshes do not configure the mechanism or its mass/inertia. All eleven canonical hardpoints stay authoritative. Spring and damper retain independent authored axes.

Jounce > 0 means the wheel centre moves up relative to the chassis; rebound < 0 means down. Wheel-centre Z is the travel constraint, rather than ball-joint Z. Spring/damper compression is design length minus current geometric length. Positive compression means the element is shorter.

Motion ratio = d(element compression) / d(wheel-centre jounce). It is signed and dimensionless. A negative value means that element extends during increasing jounce; values are neither clamped nor smoothed. A deterministic centred derivative uses a 10 µm wheel-travel step; verification compares 1, 10 and 100 µm steps and an independent closed-form parallel-arm derivative.

Solver and feasible travel

Each wishbone uses an exact rotation about its inboard hinge. Two arm angles satisfy rigid ball-joint separation and prescribed wheel-centre Z. Damped Newton iteration with centred angular Jacobian follows the design branch in steps of at most 1 mm. Large angle steps, poor residual descent, loss of Jacobian independence or unreachable travel fail explicitly. Link and wheel travel residuals must converge below 10⁻¹¹ m. Zero travel reproduces all entered design points exactly.

The default study requests ±50 mm. Advanced requested bounds may bracket zero within ±150 mm. Each direction is checked in ≤1 mm increments and stops at its first infeasible sample; the scrub range retains only that contiguous feasible interval. Derivative neighbours must also solve. Each scrub position is solved again, so sampled feasibility never licenses interpolation across an unsolved configuration. The service rejects nonfinite requests and has a ±500 mm request limit.

Validation rejects nonfinite coordinates, coincident pivots, ball joints on hinge axes, insufficient upright separation, degenerate spindle references, zero-length spring/damper elements and lower mounts on the lower-arm hinge. Thresholds represent explicit v1 geometry admission limits, not a collision or strength analysis. Design singularities are rejected before applying custom geometry.

Visualization and boundaries

Visualize Suspension uses the Engineering Viewport: orbit, pan, zoom, Fit scene, Reset view, Expand/Restore and Engineering 3/4, Front, Side and Top cameras. Labelled markers and links follow exactly the same solved state as the length and motion-ratio readouts. Cyan points are chassis-fixed; orange points move; green is the spring and violet is the damper. Wheels are schematic. A localized WebGL failure retains editing and numerical inspection.

This is rigid mechanism kinematics, not a full multibody or K&C solver. Collision, compliance, roll centres, anti-dive/squat, tyre-force kinematics and a static ride-height solve are deferred. Physical steering is a separate rigid kinematic study; steering forces and coupled handling remain deferred. Passive transient suspension forces use the existing qualified compression maps.

Visualize Road follows the same define → visualize workflow. Quarter-Car and prescribed corner inputs use temporal profiles; Half-Car shows its actual front/rear timing relationship; procedural spatial and OpenCRG roads use canonical road geometry in 3D. All road previews remain presentation-only.