{
  "schemaVersion": "vehiclelab.assembly-mapping-fixture.v1",
  "description": "ML65 exact default applied assembly plus explicit educational complements; no measured vehicle",
  "fixtureRules": "Tie-rod length is design joint distance. Free length is design installed length plus declared sprung corner target/(installed rate*physical design motion ratio); target uses body weight and axle-distance statics. These are explicit educational fixture choices, not inferred user parameters.",
  "assembly": {
    "schemaVersion": "vehiclelab.vehicle-assembly.v1",
    "units": {
      "mass": "kg",
      "length": "m",
      "inertia": "kg_m2",
      "stiffness": "N_per_m",
      "damping": "N_s_per_m"
    },
    "model": { "id": "vehiclelab.full-car.geometry-passive", "version": "1.0.0" },
    "parameters": {
      "sprungMass": 1200,
      "pitchInertia": 2000,
      "rollInertia": 550,
      "frontLeftUnsprungMass": 30,
      "frontRightUnsprungMass": 31,
      "rearLeftUnsprungMass": 32,
      "rearRightUnsprungMass": 33,
      "frontLeftSuspensionStiffness": 15000,
      "frontRightSuspensionStiffness": 15500,
      "rearLeftSuspensionStiffness": 16000,
      "rearRightSuspensionStiffness": 16500,
      "frontLeftSuspensionDamping": 1250,
      "frontRightSuspensionDamping": 1300,
      "rearLeftSuspensionDamping": 1350,
      "rearRightSuspensionDamping": 1400,
      "frontLeftTireStiffness": 110000,
      "frontRightTireStiffness": 112000,
      "rearLeftTireStiffness": 115000,
      "rearRightTireStiffness": 117000,
      "cgToFrontAxle": 1.2,
      "cgToRearAxle": 1.5,
      "frontTrack": 1.6,
      "rearTrack": 1.58
    },
    "vehicle": {
      "schemaVersion": "vehiclelab.vehicle-definition.v1",
      "forceMappingVersion": "virtual-work.hermite.v1",
      "frontAxle": {
        "suspension": {
          "type": "double-wishbone",
          "geometry": {
            "schemaVersion": "vehiclelab.suspension.v1",
            "mechanism": "double-wishbone",
            "metadata": { "name": "VehicleLab Generic Front Double Wishbone", "source": "generic" },
            "orientationConstraint": "chassis-forward-projection",
            "hardpoints": {
              "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]
            }
          },
          "left": {
            "springRateNpm": 33788.13482893926,
            "damperCoefficientNspm": 2422.5366753922335
          },
          "right": {
            "springRateNpm": 34914.405989903906,
            "damperCoefficientNspm": 2519.438142407923
          },
          "designSpringMotionRatio": 0.6662903452608893,
          "designDamperMotionRatio": 0.7183230890356328
        }
      },
      "rearAxle": {
        "suspension": {
          "type": "double-wishbone",
          "geometry": {
            "schemaVersion": "vehiclelab.suspension.v1",
            "mechanism": "double-wishbone",
            "metadata": { "name": "VehicleLab Generic Rear Double Wishbone", "source": "generic" },
            "orientationConstraint": "chassis-forward-projection",
            "hardpoints": {
              "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]
            }
          },
          "left": {
            "springRateNpm": 39522.52842395264,
            "damperCoefficientNspm": 2907.250568315024
          },
          "right": {
            "springRateNpm": 40757.60743720116,
            "damperCoefficientNspm": 3014.9265152896546
          },
          "designSpringMotionRatio": 0.6362644097313019,
          "designDamperMotionRatio": 0.681436908106514
        }
      },
      "provenance": {
        "source": "generic-design-rate-conversion",
        "reference": "Incremental compression at design; original equivalent wheel coefficients retained in parameters."
      }
    },
    "origins": {
      "body": "generic-default",
      "frontSuspension": "generic-default",
      "rearSuspension": "generic-default",
      "frontLeft": "generic-default",
      "frontRight": "generic-default",
      "rearLeft": "generic-default",
      "rearRight": "generic-default",
      "model": "generic-default"
    }
  },
  "complements": {
    "schemaVersion": "vehiclelab.assembly-physical-complements.v1",
    "sourceAssemblySha256": "e7ad311ead2768d48efe5b36cdf0e8e366b13685ec721d3935ff842ed581b205",
    "targetModel": "vehiclelab.assembly-coupled-14dof.ml65.v1",
    "provenanceReference": "ML65 exact default applied assembly plus explicit educational complements; no measured vehicle",
    "units": "SI:m,kg,s,rad,N,kg_m2",
    "frame": "body-CG:x-forward,y-left,z-up",
    "bodyInertiaKgM2": [
      [550, 12, -6],
      [12, 2000, 8],
      [-6, 8, 2300]
    ],
    "gravityMps2": 9.80665,
    "rules": {
      "assemblyInertia": "central-body-diagonals",
      "unsprungAllocation": "entire-corner-mass-at-wheel-centre",
      "rightGeometry": "reflect-left-in-body-xz",
      "heading": "replace-Ride-heading-with-explicit-physical-tie-rod",
      "verticalSupport": "reuse-assembly-vertical-stiffness-as-absolute-slope",
      "contact": "flat-compliant-point;loaded-height-rolling-radius",
      "spring": "installed-rate;explicit-absolute-free-length"
    },
    "front": {
      "designWheelCentreZBodyM": -0.45,
      "rack": {
        "referenceM": [-0.12, 0, -0.12],
        "axis": [0, 1, 0],
        "leftOffsetM": 0.46,
        "rightOffsetM": -0.46,
        "minimumM": -0.01,
        "maximumM": 0.01
      },
      "left": { "outerTieRodM": [-0.12, -0.06, -0.12], "tieRodLengthM": 0.27999999999999997 },
      "right": { "outerTieRodM": [-0.12, 0.06, -0.12], "tieRodLengthM": 0.27999999999999997 }
    },
    "rear": {
      "designWheelCentreZBodyM": -0.45,
      "rack": {
        "referenceM": [-0.12, 0, -0.12],
        "axis": [0, 1, 0],
        "leftOffsetM": 0.45,
        "rightOffsetM": -0.45,
        "minimumM": -0.01,
        "maximumM": 0.01
      },
      "left": { "outerTieRodM": [-0.12, -0.06, -0.12], "tieRodLengthM": 0.27999999999999997 },
      "right": { "outerTieRodM": [-0.12, 0.06, -0.12], "tieRodLengthM": 0.27999999999999997 }
    },
    "corners": {
      "frontLeft": {
        "wheelAxialInertiaKgM2": 0.9,
        "wheelTransverseInertiaKgM2": 0.55,
        "springFreeLengthM": 0.5879205660836262,
        "minimumJounceM": -0.025,
        "maximumJounceM": 0.025,
        "effectiveVerticalRadiusM": 0.3
      },
      "frontRight": {
        "wheelAxialInertiaKgM2": 0.92,
        "wheelTransverseInertiaKgM2": 0.5650000000000001,
        "springFreeLengthM": 0.583236640481689,
        "minimumJounceM": -0.025,
        "maximumJounceM": 0.025,
        "effectiveVerticalRadiusM": 0.3
      },
      "rearLeft": {
        "wheelAxialInertiaKgM2": 0.9400000000000001,
        "wheelTransverseInertiaKgM2": 0.5800000000000001,
        "springFreeLengthM": 0.5723952433791785,
        "minimumJounceM": -0.025,
        "maximumJounceM": 0.025,
        "effectiveVerticalRadiusM": 0.3
      },
      "rearRight": {
        "wheelAxialInertiaKgM2": 0.96,
        "wheelTransverseInertiaKgM2": 0.5950000000000001,
        "springFreeLengthM": 0.5692439189478462,
        "minimumJounceM": -0.025,
        "maximumJounceM": 0.025,
        "effectiveVerticalRadiusM": 0.3
      }
    },
    "tires": {
      "frontLeft": {
        "schemaVersion": "vehiclelab.tire.combined-slip-force.v1",
        "model": { "id": "vehiclelab.tire.combined-isotropic-friction-circle", "version": "1.0.0" },
        "slipStiffnessNPerRatio": 40000,
        "corneringStiffnessNPerRad": 35000,
        "frictionCoefficient": 0.75
      },
      "frontRight": {
        "schemaVersion": "vehiclelab.tire.combined-slip-force.v1",
        "model": { "id": "vehiclelab.tire.combined-isotropic-friction-circle", "version": "1.0.0" },
        "slipStiffnessNPerRatio": 41000,
        "corneringStiffnessNPerRad": 36000,
        "frictionCoefficient": 0.77
      },
      "rearLeft": {
        "schemaVersion": "vehiclelab.tire.combined-slip-force.v1",
        "model": { "id": "vehiclelab.tire.combined-isotropic-friction-circle", "version": "1.0.0" },
        "slipStiffnessNPerRatio": 42000,
        "corneringStiffnessNPerRad": 37000,
        "frictionCoefficient": 0.79
      },
      "rearRight": {
        "schemaVersion": "vehiclelab.tire.combined-slip-force.v1",
        "model": { "id": "vehiclelab.tire.combined-isotropic-friction-circle", "version": "1.0.0" },
        "slipStiffnessNPerRatio": 43000,
        "corneringStiffnessNPerRad": 38000,
        "frictionCoefficient": 0.81
      }
    }
  }
}
