Warning
This page is WIP.
Tires
TBC
Tire brand found in *.hdv files refer to file name.
The TBC is primarily for AI use, although some things are still used to define player physics.
Slip curves do not represent the coefficient of grip. Instead they represent the reaction to the current slip. Regardless of the peak value in this curve, it will be automatically normalized to have a peak of 1.0.
The peak of the slip curve is dynamically adjusted to higher or lower slip values based on current load and speed. The second value of “SpeedEffects” is an equivalency value for load and speed. To calculate the slip peak, we use the following input which is a combination of load and speed: <load/speed combination> = <load> + (<speed> * <equivalency>) Obviously a larger equivalency value will make speed a more dominant factor in the calculation of the peak. See the SpeedEffects, LatPeak, and LongPeak tire parameters for more info.
Slip curve data points are connected using a cubic spline, so there is no need to use a massive amount of data points unless the curve is really busy.
Lateral slip angles are normalized so that you need to take the sine of the angle to get the slip. For example, 12 degrees is a slip of 0.208 and vice versa. Longitudinal slip ratios closely match the SAE definition.
All curves should probably go out to at least a slip of 2.0, even the lateral and braking curves. Although locking up your brakes is a slip of 1.0, there are situations where you can spin your wheels in the opposite direction of your velocity (like shifting into reverse while moving forwards).
Note that the initial slope of the curve may have an effect on how some features behave, such as traction control, ABS, skids, and tire smoke.
The “DropoffFunction” is a new feature in the [SLIPCURVE] section. It describes how the slip curve dropoff is affected when the peak of the slip curve changes. The peak of the slip curve may move to a smaller or larger slip when load or speed changes. When this happens, the slip curve is stretched or shrunk to match.
The “DropoffFunction” parameter allows you to affect the behavior beyond the peak when this happens:
-1.0 = dropoff occurs faster when peak increases
0.0 = dropoff curve does NOT change shape when the peak changes
1.0 = dropoff curve is stretched or shrunk with the rest of the curve, which means the dropoff may feel more gradual as the peak increases. This is the default.
Note that you can pick in-between values for a blend of behaviors.
[SLIPCURVE]
- Name
Example value: “Default”
No description provided
- Step
Example value: 0.009
Slip step
- DropoffFunction
Example value: 0.00
See explanation above
- Data
Example value: 0.000000 0.174836 0.349483 0.518060 0.668882 0.790665 0.878928
No description provided
Skippy example data:
Data: 0.000000 0.174836 0.349483 0.518060 0.668882 0.790665 0.878928 0.936783 0.971287 0.989751 0.997978 1.000000 0.999947 0.999795 0.999544 0.999195 0.998749 0.998206 0.997567 0.996835 0.996010 0.995094 0.994089 0.992997 0.991821 0.990562 0.989222 0.987806 0.986315 0.984752 0.983119 0.981420 0.979659 0.977836 0.975957 0.974023 0.972039 0.970006 0.967929 0.965810 0.963652 0.961458 0.959232 0.956976 0.954693 0.952385 0.950057 0.947709 0.945345 0.942968 0.940580 0.938182 0.935778 0.933370 0.930959 0.928548 0.926139 0.923733 0.921332 0.918938 0.916552 0.914176 0.911811 0.909458 0.907120 0.904796 0.902488 0.900196 0.897923 0.895668 0.893433 0.891218 0.889024 0.886851 0.884700 0.882571 0.880466 0.878383 0.876324 0.874289 0.872278 0.870291 0.868329 0.866391 0.864478 0.862590 0.860727 0.858888 0.857074 0.855285 0.853521 0.851781 0.850066 0.848375 0.846708 0.845065 0.843446 0.841851 0.840280 0.838731 0.837206 0.835704 0.834224 0.832767 0.831331 0.829918 0.828526 0.827156 0.825807 0.824478 0.823170 0.821882 0.820615 0.819367 0.818138 0.816929 0.815738 0.814566 0.813413 0.812277 0.811159 0.810059 0.808976 0.807909 0.806860 0.805827 0.804810 0.803809 0.802823 0.801853 0.800898 0.799958 0.799033 0.798121 0.797224 0.796341 0.795472 0.794616 0.793773 0.792943 0.792126 0.791321 0.790529 0.789749 0.788981 0.788224 0.787479 0.786745 0.786022 0.785310 0.784609 0.783918 0.783238 0.782568 0.781908 0.781257 0.780617 0.779985 0.779364 0.778751 0.778147 0.777552 0.776965 0.776388 0.775818 0.775257 0.774704 0.774159 0.773621 0.773092 0.772570 0.772055 0.771547 0.771047 0.770554 0.770068 0.769588 0.769115 0.768649 0.768189 0.767736 0.767289 0.766848 0.766413 0.765984 0.765560 0.765143 0.764731 0.764325 0.763924 0.763528 0.763138 0.762753 0.762373 0.761998 0.761629 0.761263 0.760903 0.760548 0.760197 0.759850 0.759508 0.759171 0.758837 0.758508 0.758184 0.757863 0.757546 0.757234 0.756925 0.756620 0.756320 0.756022 0.755729 0.755439 0.755153 0.754870 0.754591 0.754315 0.754042 0.753773 0.753507 0.753244 0.752985 0.752728 0.752475 0.752224 0.751977 0.751732 0.751491 0.751252 0.751016 0.750783 0.750552 0.750324 0.750099 0.750000
Note that the dry and wet performance numbers are NOT relative.
They will still be scaled by the terrain dry/wet values in terrain.tdf.
For example, if normal pavement has the scaling parameters dry=1.0 and wet=0.8, and a rain tire has scaling parameters of dry=1.30 and wet=1.35, then the overall grip in the dry will be (1.0 * 1.30) = 1.3, while the overall grip in the wet will be (0.8 * 1.35) = 1.08.
FYI - we may add “Compound” to each name in order to translate it, because these names are not necessarily unique to tire compounds.
[COMPOUND]
- Name
Example value: “Treaded”
No description provided
- WetWeather
Example value: 1
No description provided
- ARGUMENT
Example value: FRONT
Arguments: ALL, FRONT, REAR, LEFT, RIGHT, FRONTLEFT, FRONTRIGHT, REARLEFT, REARRIGHT
- TGM
Example value: “BFGoodrich_g-ForceSport_195-55-R15x7”
Physical tire model (*.tgm) file
- DryLatLong
Example value: (1.29, 1.28)
Lateral/longitudinal coefficients in dry weather
- WetLatLong
Example value: (1.24, 1.22)
Lateral/longitudinal coefficients in wet weather
- RoadGripEffects
Example value: (0.09,-0.06,-0.0,-0.25)
Effect of maximum (<groove>,<marbles>,<dampness>,<wetness>) on grip, where dampness is fully saturated before standing water and wetness represents maximum standing water
- RoadSqrdGripEffects
Example value: -0.01
Effect of <groove>*<groove> on grip
- RoadModifierMults
Example value: (1.0,1.0,1.0,1.0)
Multipliers for the tires’ effect on (<groove_addition>,<marble_removal>, <marble_addition>,<water_removal>)
- Radius
Example value: 0.2957
Radius of tire
- RadiusRPM
Example value: 2.01e-6
Increased radius per unit RPM
- Width
Example value: 0.1956
Width of tire
- Rim
Example value: (0.2074, 850000, 6800, 3.0)
Rim radius, spring rate, damper rate, minimum velocity to produce sparks
- SpringBase
Example value: 41406
Base spring rate with no pressure
- SpringkPa
Example value: 640
Spring rate per unit pressure
- Damper
Example value: 720
Damping rate of tire
- SpeedEffects
Example value: (753,-0.5)
Speed at which grip drops to half (m/s, 0.0 to disable), speed load equivalency (see above)
- LoadSensLat
Example value: ( -4.0e-5, 0.51, 17100)
Load sensitivity for lateral grip (initial slope, final grip multiplier, final load)
- LoadSensLong
Example value: (-2.8e-5, 0.59, 17100)
Load sensitivity for longitudinal grip (initial slope, final grip multiplier, final load)
- LatPeak
Example value: ( 0.137, 0.203, 9250)
Slip range where lateral peak force occurs depending on load
- LongPeak
Example value: (0.117, 0.166, 9250)
Slip range where longitudinal peak force occurs depending on load
- LatCurve
Example value: “Default”
Slip angle curve (data uses normalized angle)
- BrakingCurve
Example value: “Default”
Slip ratio curve under braking
- TractiveCurve
Example value: “Default”
Slip ratio curve under acceleration
- CamberLatLong
Example value: (3.3, 0.07, 0.41)
Peak camber angle, lateral gain at peak, longitudinal loss at 90 degrees
- RollingResistance
Example value: 580
Resistance torque (Nm) per unit deflection (m) on ground
- PneumaticTrail
Example value: 6.0e-6
Pneumatic trail per unit load (m/N), adjusted based on slip
- HeatBasePeak
Example value: (0.2, 0.01)
Base peak slip to compute friction heat, fraction of base to use (0.0=use dynamic peak slip only)
- Heating
Example value: (1.0, 0.0165)
Heat caused by (rolling, friction)
- Transfer
Example value: (0.025, 0.0019, 3.50e-4)
Heat transfer to (road, static air, moving air)
- HeatDistrib
Example value: (9.5,100)
(Max camber angle, max off-pressure) that affects heat distribution (higher number -> less temperature difference)
- AirTreadRate
Example value: 0.003
Heat transfer between tread and inside air
- WearRate
Example value: 1.50e-7
Wear rate constant
- WearGrip1
Example value: (0.998,0.990,0.985,0.982,0.979,0.976,0.973,0.970)
Grip at 6/13/19/25/31/38/44/50% wear (defaults to 0.980->0.844), grip is 1.0 at 0% wear
- WearGrip2
Example value: (0.967,0.964,0.961,0.956,0.948,0.932,0.860,0.760)
Grip at 56/63/69/75/81/88/94/100% wear (defaults to 0.824->0.688), tire bursts at 100% wear
- Softness
Example value: 0.6
Softness is now just for AI strategic use
- AIGripMult
Example value: 1.00
Grip multiplier for AI vehicles (due to tire model simplification)
- AIHeatRate
Example value: 7.5e-6
Heating rate constant for AI tires (default: 6.6e-6)
- AIPitThreshold
Example value: 0.85
Remaining grip threshold before AI schedule to stop for fresh tires
- Temperatures
Example value: (80, 22)
Optimum operating temperature for peak forces (Celsius), starting temperature
- OptimumPressure
Example value: (190, 0.027)
Base pressure to remain flat on ground at zero deflection, and multiplier by load to stay flat on ground
- GripTempPress
Example value: (0.85, 0.54, 0.4)
Grip effects of being below temp, above temp, and off-pressure (higher number -> faster grip dropoff
TGM
The physical tire model (*.tgm) that is used to define player physics. Some things from the TBC file are still used to further define player physics.
[QuasiStaticAnalysis]
- NumLayers
Example value: 2
Number of layers in the tyre, at present, this must be 2 or ttool will crash
- NumSections
Example value: 132
Number of layers in the tyre, must be at least 2 or ttool will crash, 3 should provide more accurate behaviour however becomes computationally expensive
- RimVolume
Example value: 0.01589
Volume of air (m^3) of wheel rim, used to determine actual tire volume
- DisplaceBulkMassWithPly
Example value: 1
Whether plies displace existing bulk materials when calculating masses
- PlyCompressionTensionTransition
Example value: (-0.002,0.0001)
Strain to use compressive or tension modulus. Negative values represent compression.
- RealtimeCamberLimit
Example value: 45
Angle limit (in degrees) for bristle positioning. Higher values compromise driving under normal conditions but will provide superior results when driving on 2 wheels for example. Note this does not effect the QSA model as bristle positions are generated by the real time model.
- GaugePressure
Example value: 0
Air Pressure in Pascals (Pa) for ttool’s QSA tests. In the real time model, this entry is used to identifying results in the lookup table.
GaugePressure=0 GaugePressure=150000 GaugePressure=220000 GaugePressure=270000 GaugePressure=320000
- CarcassTemperature
Example value: 273.15
Temperature in Kevlin for QSA tests
CarcassTemperature=273.15 CarcassTemperature=353.15 CarcassTemperature=423.15
- RotationSquared
Example value: 0
Rotation speed (rad^2/sec)
RotationSquared=0 RotationSquared=18447 RotationSquared=37080.3333333333 RotationSquared=55900
- NumNodes
Example value: 49
Number of nodes defined in the tyre, generated by ttool from the number of [node] entries below, again adding more nodes increases the detail and accuracy of the tyre. A minimum of 31 is suggested and the recommended range of nodes is 41-49 to achieve the accurate results, numbers exceeding this are generally not worth due to increasing computational demands along with diminishing returns.
- TotalMass
Example value: 9.412522719792774
tire masses and inertia’s below as calculated by ttool
- TotalInertiaStandard
Example value: (0.65716333011079,0.37699329177024093,0.37699329177023894)
No description provided
- RingMass
Example value: 6.755485413509089
No description provided
- RingInertiaStandard
Example value: (0.536511967258675,0.29524779535639917,0.2952477953563986)
No description provided
[Node]
- Geometry
Example value: (0.08899,-0.19015,0.0171)
Outermost geometrical point (X, Y locations and, Thickness)
- BulkMaterial
Example value: (273.15,1258,19800000,0.472,1,1340,0.25)
Bulk material properties (Temperature at which following properties are valid, Density, Young’s Modulus, Poisson’s Ratio, Compressive modulus multiplier, Specific Heat, Thermal Conductivity)
BulkMaterial=(273.15,1258,19800000,0.472,1,1340,0.25) BulkMaterial=(373.15,1235,16200000,0.472,1,1492,0.24)
- AnisoCarcassConductivityMult
Example value: (1.1,1,1.5) Directional heat conductivity multiplier X, Y and Z
- TreadDepth
Example value: 0.0024 No description provided
- TreadMaterial
Example value: (273.15,1135,2850000,0.48,1,1700,0.21) No description provided
TreadMaterial=(273.15,1135,2850000,0.48,1,1700,0.21) TreadMaterial=(323.15,1130,2600000,0.48,1,1950,0.206) TreadMaterial=(373.15,1125,2280000,0.48,1,2100,0.202) TreadMaterial=(423.15,1120,2000000,0.48,1,2250,0.198)
- RingAndRim
Example value: (0,960000000) Fraction of node that forms part of the ‘rigid’ ring, spring rate of nodes’ connection to the wheel rim
- PlyParams
Example value: (1,0.001405,3)
Ply Angle, Ply Thickness, Connect Flags (1 = previous node, 2 = next node, 3 = both)
- PlyMaterial
Example value: (273.15,7907,34000000000,0.3,0.1,465,52)
PlyMaterial=(273.15,7907,34000000000,0.3,0.1,465,52) PlyMaterial=(373.15,7879,33000000000,0.3,0.1,484,50) PlyParams=(74,0.000409,3) PlyMaterial=(273.15,1380,3960000000,0.3,0.1,1695,0.25) PlyMaterial=(373.15,1360,3400000000,0.3,0.1,1715,0.24) PlyParams=(106,0.000409,3) PlyMaterial=(273.15,1380,3960000000,0.3,0.1,1695,0.25) PlyMaterial=(373.15,1360,3400000000,0.3,0.1,1715,0.24) PlyParams=(80.89,0.00042,3) PlyMaterial=(273.15,1205,3450000000,0.3,0.09,1695,0.25) PlyMaterial=(373.15,1185,3280000000,0.3,0.09,1715,0.24) PlyParams=(99.11,0.00042,3) PlyMaterial=(273.15,1205,3450000000,0.3,0.09,1695,0.25) PlyMaterial=(373.15,1185,3280000000,0.3,0.09,1715,0.24)
[Realtime]
- StaticBaseCoefficient
Example value: 1.985
base grip coefficient for static friction
- SlidingBaseCoefficient
Example value: 1.34
base grip coefficient for sliding friction
- InclinationExtrapolation
Example value: 1.0
0.0=no extrapolation, 1=extrapolate one step, 2=extrapolate two steps, etc.)
- AbrasionCurveWLFStartStep
Example value: (-8.5,0.5)
WLF lookup start and step value
- AbrasionVolumePerUnitEnergy
Example value: (7.02e-10,6.90e-10,6.66e-10,6.36e-10,5.95e-10,5.40e-10,4.25e-10, 3.16e-10,2.29e-10,1.55e-10,1.20e-10,9.49e-11,7.64e-11,6.55e-11,6.00e-11, 6.27e-11,6.82e-11,7.75e-11,9.71e-11,1.23e-10,1.64e-10,2.35e-10,3.22e-10, 3.82e-10,4.31e-10,4.53e-10,4.64e-10,4.73e-10,4.80e-10,4.85e-10,4.88e-10, 4.89e-10) m^3/J volume of rubber sheared per Joule energy, max 32 values
- DegradationPerWearFraction
Example value: (0.993,1,0.9992,0.998,0.9972,0.9966,0.9961,0.9956,0.9951,0.9946, 0.9941,0.9937,0.9933,0.9929,0.9925,0.9921,0.9917,0.9913,0.9909,0.9905,0.9901, 0.9897,0.9893,0.9889,0.9885,0.9881,0.9877,0.9873,0.9869,0.986,0.98,0.88)
Degradation based on wear fraction, max 32 values
- DegradationCurveParameters
Example value: (344.15,6000)
(<activation_temperature_K>,<heat_history_step_Ks>) heat history is a linear progression of temperature over activation point multiplied by time
- DegradationPerUnitHistory
Example value: (1,0.9925,0.9862,0.9809,0.9765,0.9729,0.97,0.9677,0.9659, 0.9643,0.9628,0.9614,0.96,0.9586,0.9572,0.9558,0.9544,0.953,0.9516,0.9502, 0.9488,0.9474,0.946,0.9446,0.9432,0.9418,0.9403,0.9386,0.9367,0.9345,0.9322, 0.93)
Degradation per heat history step, up to 32 values
- MassInertiaMultiplier
Example value: (1.0,1.0,1.0,1.0)
multipliers for mass (m), inertia (p,q,r)
- TemporaryRingDamper
Example value: (0.085,0.094,0.094,0.17,0.16,0.16)
tire ring damping for x,y,z,p,q,r
- TemporaryBristleSpring
Example value: (21700, 14500, 28500)
bristle spring rate for Lat/Vert/Long
- TemporaryBristleDamper
Example value:(0.95, 0.9, 0.95)
No description provided
- MarbleEffectOnEffectiveLoad
Example value: -0.06
fraction of load available for grip when driving on maximum marbles (10% less load in this case)
- TerrainWeightOnContactTemperature
Example value: 0.1
temperature used for WLF is influenced by the track temperature (in this case, 90% tire surface, 10% terrain surface)
- WLFParameters
Example value: (228.15,50,-8.86,51.5)
glass transition temperature. Other values pretty much the same for all rubbers, except butyl. Most likely, you won’t touch the last three values.
- StaticRoughnessEffect
Example value: -0.2
terrain roughness influence on static friction
- GrooveEffects
Example value: (0.092,0.092,0.076,0.048)
maximum groove influences grip here for: static friction, sliding adhesion, sliding micro-deformation, sliding macro-deformation
- DampnessEffects
Example value: (-0.075,-0.08,-0.06,-0.03)
fully damp track (at threshold of standing water or more) influence on grip for same things as GrooveEffects
- TemporaryGripLossForWetness
Example value: 0.16
Temporary hack aquaplaning. Decreases grip due to standing water.
- StaticCurve
Example value: (153, 0.66, 353, 1.176, 653, 0.65)
at -100C there’s 52% of maximum static grip, at 100C it’s maximum, at 400C it’s back down to 52% of max static grip
- SlidingAdhesionCurve
Example value: (-9.2, 0.4, -5.2, 1.68, -1.2, 0.2)
min sliding speed (log(10) aTv), grip multiplier (for min), peak sliding speed, grip multiplier (for peak), max sliding speak, grip multiplier (for max)
- SlidingMicroDeformationCurve
Example value: (-5.2, 0.3, -1.2, 1.8, +2.5, 0.3)
these values are blended following a cosine rule
- SlidingMacroDeformationCurve
Example value: (-1.2, 0.2, +2.5, 2, +6.0, 0.4)
to get the totals the adhesion, micro and macro curves are then multiplied by the surface types as defined in the TDF files, the defaults of which are 0.25 for adhesion, 0.5 microroughness, 0.25 macroroughness
- RubberPressureSensitivityPower
Example value: (-1.17,4.04e5,5e5,1) rubber contact pressure sensivity power, offset, nominal maximum, normalize (1=yes,2=no)
- IgnitionParameters
Example value: (493,0.06,49) ignition temperature of rubber in Kelvin, heat power factor, nominal max of area*temperature_over_ignition
- SizeMultiplier
Example value: (1,1)
if necessary, an adjustment to the geometrical width and radius; default is (1,1)
- ThermalDepthAtSurface
Example value: 0.0001
the depth of the temperature sample layer used for contact properties (i.e. grip and wear); if provisional second layer is disabled, tread will never be allowed to get thinner than this value
- ThermalDepthBelowSurface
Example value: 0.0004
(if provisional code enabled) the depth of the second layer; value should be >= surface layer but not too big; tread will never be allowed to get thinner than these two layers
- BristleLength
Example value: 0.12
tuned to aid collision detection, no other physical effects
- DampingHeatEnergy
Example value: (1.0,0.4,0.8)
(Fraction of ring damping heat into sidewall (should probably be 1.0), fraction of bristle damping heat into carcass, fraction of bristle damping heat into tread) the 2nd and 3rd values should generally add up to 1.0
- InternalGasHeatTransfer
Example value: (10,5,0.6)
(base, mult, power) - heat transfer coefficients to internal gas cavity = base+(mult*(vel^power)), where vel is linear velocity of tire
- ExternalGasHeatTransfer
Example value: (8,4,0.6)
(base, mult, power) - heat transfer coefficients to external air = base+(mult*(vel^power)), where vel is linear velocity of tire
- GroundConductance
Example value: (1000,0.003,0)
(base, mult, reserved) - thermal contact conductance coefficient to ground = base+(mult*pressure), where pressure is contact pressure and the reserved variable will be used at some later stage.
- WetConductance
Example value: (710,730,0,0)
Additional conductance due to (<dampness>, <wetness>,<and reserved for future usage 1>,<reserved 2>)
- TireRadiationEmissivity
Example value: 0.936
thermal radiation emissivity for external tire surface
- InternalGasSpecificHeatAtConstantVolume
Example values: (250,716)
(temperature (K), specific heat at constant volume (J/(kg*K)))
719 J/(kg*K) is an approximation for dry air, but value changes slightly depending on temperature
500 is an extreme value, you may have other issues if the internal gas reaches 500 degrees Kelvin
InternalGasSpecificHeatAtConstantVolume=(250,716)
InternalGasSpecificHeatAtConstantVolume=(300,718)
InternalGasSpecificHeatAtConstantVolume=(350,721)
InternalGasSpecificHeatAtConstantVolume=(400,726)
InternalGasSpecificHeatAtConstantVolume=(450,733)
InternalGasSpecificHeatAtConstantVolume=(500,742)
[LookupData]
- Version
Example value: 1.103
No description provided
- Bin
Example value: 53b1932d3fe4fe413583c3a63fd816d62c05b4f53fd816d608d85fdc3f068 b5f85d833ecbe375bd7d54f64143fe12287da50d7413fd2dbe4d1bd98553fd2dbe4
No description provided
- Checksum
Example value: 1100694750
No description provided