Jolt Vehicle Tuning Guide
jMonkeyEngine Hub
May 3, 2026
According to the documentation, the units of lateral slip are radians, not degrees:
mLateralSlip is declared here:
github.com/jrouwe/JoltPhysics
Jolt/Physics/Vehicle/WheeledVehicleController.h
a80c9dbcb
52. /// Apply a torque (N m) to the wheel for a particular delta time
53. void ApplyTorque(float inTorque, float inDeltaTime)
54. {
55. mAngularVelocity += inTorque * inDeltaTime / GetSettings()->mInertia;
56. }
57.
58. /// Update the wheel rotation based on the current angular velocity
59. void Update(uint inWheelIndex, float inDeltaTime, const VehicleConstraint &inConstraint);
60.
61. float mLongitudinalSlip = 0.0f; ///< Velocity difference between ground and wheel relative to ground velocity
62. float mLateralSlip = 0.0f; ///< Angular difference (in radians) between ground and wheel relative to ground velocity
63. float mCombinedLongitudinalFriction = 0.0f; ///< Combined friction coefficient in longitudinal direction (combines terrain and tires)
64. float mCombinedLateralFriction = 0.0f; ///< Combined friction coefficient in lateral direction (combines terrain and tires)
65. float mBrakeImpulse = 0.0f; ///< Amount of impulse that the brakes can apply to the floor (excluding friction)
66. };
67.
68. /// Settings of a vehicle with regular wheels
69. ///
70. /// The properties in this controller are largely based on "Car Physics for Games" by Marco Monster.
71. /// See: https://www.asawicki.info/Mirror/Car%20Physics%20for%20Games/Car%20Physics%20for%20Games.html
72. class JPH_EXPORT WheeledVehicleControllerSettings : public VehicleControllerSettings
and passed to the max-impulse callback here:
github.com/jrouwe/JoltPhysics
Jolt/Physics/Vehicle/WheeledVehicleController.cpp
a80c9dbcb
672. // Calculate max impulse that we can apply on the ground
673. float max_longitudinal_friction_impulse;
674. mTireMaxImpulseCallback(wheel_index,
675. max_longitudinal_friction_impulse, max_lateral_friction_impulse[wheel_index], w->GetSuspensionLambda(),
676. w->mCombinedLongitudinalFriction, w->mCombinedLateralFriction, w->mLongitudinalSlip, w->mLateralSlip, inDeltaTime);
677.
Discussion in the ATmosphere