{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihufjcuyai24upxplcxecnijl4j36wx23oixmiucnarqh6i6l4fd4",
    "uri": "at://did:plc:dxjzgxe7cvirxkwfjr2tjspt/app.bsky.feed.post/3mkxmmrjgn3e2"
  },
  "path": "/t/jolt-vehicle-tuning-guide/49569#post_9",
  "publishedAt": "2026-05-03T16:21:39.000Z",
  "site": "https://hub.jmonkeyengine.org",
  "tags": [
    "github.com/jrouwe/JoltPhysics",
    "Jolt/Physics/Vehicle/WheeledVehicleController.h",
    "a80c9dbcb",
    "Jolt/Physics/Vehicle/WheeledVehicleController.cpp"
  ],
  "textContent": "According to the documentation, the units of lateral slip are radians, not degrees:\n\n`mLateralSlip` is declared here:\n\ngithub.com/jrouwe/JoltPhysics\n\n#### Jolt/Physics/Vehicle/WheeledVehicleController.h\n\na80c9dbcb\n\n\n\n\n\n\n        52. \t/// Apply a torque (N m) to the wheel for a particular delta time\n\n\n        53. \tvoid\t\t\t\t\t\tApplyTorque(float inTorque, float inDeltaTime)\n\n\n        54. \t{\n\n\n        55. \t\tmAngularVelocity += inTorque * inDeltaTime / GetSettings()->mInertia;\n\n\n        56. \t}\n\n\n        57.\n\n        58. \t/// Update the wheel rotation based on the current angular velocity\n\n\n        59. \tvoid\t\t\t\t\t\tUpdate(uint inWheelIndex, float inDeltaTime, const VehicleConstraint &inConstraint);\n\n\n        60.\n\n        61. \tfloat\t\t\t\t\t\tmLongitudinalSlip = 0.0f;\t\t\t\t\t///< Velocity difference between ground and wheel relative to ground velocity\n\n\n        62. \tfloat\t\t\t\t\t\tmLateralSlip = 0.0f;\t\t\t\t\t\t///< Angular difference (in radians) between ground and wheel relative to ground velocity\n\n\n        63. \tfloat\t\t\t\t\t\tmCombinedLongitudinalFriction = 0.0f;\t\t///< Combined friction coefficient in longitudinal direction (combines terrain and tires)\n\n\n        64. \tfloat\t\t\t\t\t\tmCombinedLateralFriction = 0.0f;\t\t\t///< Combined friction coefficient in lateral direction (combines terrain and tires)\n\n\n        65. \tfloat\t\t\t\t\t\tmBrakeImpulse = 0.0f;\t\t\t\t\t\t///< Amount of impulse that the brakes can apply to the floor (excluding friction)\n\n\n        66. };\n\n\n        67.\n\n        68. /// Settings of a vehicle with regular wheels\n\n\n        69. ///\n\n\n        70. /// The properties in this controller are largely based on \"Car Physics for Games\" by Marco Monster.\n\n\n        71. /// See: https://www.asawicki.info/Mirror/Car%20Physics%20for%20Games/Car%20Physics%20for%20Games.html\n\n\n        72. class JPH_EXPORT WheeledVehicleControllerSettings : public VehicleControllerSettings\n\n\n\n\n\nand passed to the max-impulse callback here:\n\ngithub.com/jrouwe/JoltPhysics\n\n#### Jolt/Physics/Vehicle/WheeledVehicleController.cpp\n\na80c9dbcb\n\n\n\n\n\n\n        672. \t\t\t// Calculate max impulse that we can apply on the ground\n\n\n        673. \t\t\tfloat max_longitudinal_friction_impulse;\n\n\n        674. \t\t\tmTireMaxImpulseCallback(wheel_index,\n\n\n        675. \t\t\t\tmax_longitudinal_friction_impulse, max_lateral_friction_impulse[wheel_index], w->GetSuspensionLambda(),\n\n\n        676. \t\t\t\tw->mCombinedLongitudinalFriction, w->mCombinedLateralFriction, w->mLongitudinalSlip, w->mLateralSlip, inDeltaTime);\n\n\n        677.\n\n\n",
  "title": "Jolt Vehicle Tuning Guide"
}