Pressure Wheels

The pressureWheel is the primary method for creating wheels in BeamNG. It is a real time physical tire model made from nodes, beams, and triangles.

The pressure wheel system will automatically generate a wheel with the defined parameters around a pair of nodes which acts as an axle. The position and orientation of the nodes determines the position and orientation of the wheel.

Due to their complexity and large number of parameters, it is reccomended that you copy sections of vanilla jbeam when using pressure wheels, and modify the things that are needed.

Wheel construction

Wheels are made out of two primary components.

The first element is the hub, which matches with the exterior layer of the rim. Those nodes are attached to the axle, a set of 2 predefined nodes that are attached to the vehicles hub.

The second element is the tire, which has it’s own set of nodes on the exterior layer of the tire, connected to the hub nodes with multiple beams. A pressure group is also set-up using both the hub and tire nodes.

The beams between the hub and the axle are fairly rigid standard beams, to represent the rigid structure of a wheel.

The tire nodes are linked to the hub node and each other with a mix of beams to represent the structure of the tire, and allow for tread deformation and sidewall flex.

The radial beams are the main weight bearing nodes on the tire. They are generated as anisotropic beams, allowing them to be quite soft in compression, to simulate the squishiness of tires, while still being strong in extension, keeping the tires from expanding at higher speeds.

Reinforcement beams link the tire nodes on one side to the wheel nodes on the other side. They assure the lateral rigidity of the tire, but can still allow for some amount of sidewall flex under cornering like a real tire.

Tire friction parameters

In order to replicate as closely as possible the behavior of real life tires, the pressure wheel system has multiple more advanced friction parameters based on sliding speed and the load on the tire.

Each ground surface in beamNG has a static and sliding friction parameter, along with a stribekVelocity which affects the transition between static and sliding friction.

The tire’s various friction parameters are defined as multipliers of those various friction parameters.

Friction velocity

The first two parameters are the “frictionCoef” and “slidingFrictionCoef” parameters, which are friction multipliers when the tire is rolling, and when it’s sliding. As with most objects, tires can require less force to keep sliding once they’re already sliding, meaning that the sliding friction coefficient is lower than the static friction coefficient.

Since rubber has some flexibility, tires do not abrubtly go from static friction to sliding friction and tend to do it progressively. To simulate this behavior, the stribeck curve, which defines the transitory behavior from static to sliding friction, can be used.

The stribeckVelocity parameter will affect the overall lenght of the transition, with larger numbers resulting in a tire that will more slowly transition to sliding friction.

The stribeckExponent parameter will smooth out the top and bottom parts of the curve, resulting in a more bell shaped curve.

Tire load

In standard friction models, friction force is directly proportional to the load on the surface. However, with tires, it’s a little more complicated than that, as tires aren’t completely rigid in the way they interface the ground. Their frictionCoefficient is slightly better at lighter loads comparatively, which also helps the tire react more progressively to load changes when braking and cornering.

Three parameters are used; “noLoadCoef”, “loadSensitivitySlope” and “fullLoadCoef”. noLoadCoef will usually be slightly above one, and fullLoadCoef slightly under. The load sensitivity slope affects how quickly the tire reaches the fullLoadCoef. The end result is a curve similar to this :

As the force is calculated per node, the normal force used is the force on each individual node, not the force on the wheel itself.

Required arguments

string
type
The name of the wheel

The standard naming for 4 wheeled vehicles is FR, FL, RR and RL.

This will be used when referring to the wheel in other sections, like the powertrain.

string
type
The nodegroup of the hub nodes.
Works in a similar way to standard node groups.
string
type
The nodegroup of the tire nodes.
Works in a similar way to standard node groups.
string
type
The first axle node.
The standard naming scheme for 4 wheeled vehicles is fw1rr, fw1ll, rw1rr and rw1ll.
string
type
The second axle node
The standard naming scheme for 4 wheeled vehicles is fw1r, fw1l, rw1r, and rw1l.

string
type
Name of the stabilizing node
Each node from the hub will attach to this node with a beam. It’s mostly legacy and not generally used. Putting 9999 in will disable it.
string
type
Along with nodeCoupling, this node will be used to apply braking counter torque to the suspension and body.
NodeArm should should located roughly where the brake caliper should be. Keep in mind that this node needs to be far enough from the nodeCoupling, and heavy enough. A node that is too close, or too light for the set braking torque can cause instability in the braking system, resulting in poor braking performance and brakes that overheat when the parking brake is applied. For a typical car, they should be at least 2kg. For a large truck, as much as 5-10kg.
string
type
The direction that drive torque is applied.
The correct value (1 or -1) depends on which order you define the axle nodes.

Optional arguments

Basic settings and dimensions

These arguments define the size and position of the wheel, along with some basic structural parameter

float
type
Radius of tire tread (meters)
For a wheel that has no physical tire, but still needs tire sounds, this should be set to the same as hubRadius.
float
type
Radius of hub (meters)
float
type
Offset of wheel midpoint from midpoint of axle nodes (meters)
float
type
Width of tire tread (meters)
float
type
Width of hub (meters)
It is a good idea generally to have the tireWidth slightly narrower than hubWidth for automotive tires.
boolean
type
When disabled, only the hub will be generated, not the tire.
Used in common wheel system to allow different tire choices for one wheel rim.
string
type
Defines if the wheel will be used when calculating speedometer speed.
string
type
Along with nodeArm, this creates a lever that will apply braking torque to the suspension or body.

If this is not defined, the inner axle node will be used.

It should be located in the center of the wheel, where the center of the brake disc would be located. It should be heavy enough for the desired braking power. For a typical car, they should be at least 2kg. For a large truck, as much as 5-10kg.

string
type
Along with torqueArm and torqueArm2 forms a set of nodes that will be used to apply counter torque to the suspension or body.

The torqueCoupling node should be defined either at the differential, or differential output node.

As with nodeArm/Coupling, nodes that are heavier and further appart will allow for more torque to be transmitted before running into stability issues.

If torqueCoupling or torqueArm are not defined, the game will default to not generating drivetrain torque reactions.

string
type
Along with torqueCoupling and torqueArm2, forms a set of nodes that will be used to apply counter torque to the suspension or body.

This node should be located on the same structure as the torqueCoupling, and not move compared to it during typical driving. The engine itself, axle, or suspension subframes can be decent choices depending on the suspension and powertrain layout.

As with nodeArm/Coupling, nodes that are heavier and further appart will allow for more torque to be transmitted before running into stability issues.

If torqueCoupling or torqueArm is not defined, the game will default to not generating drivetrain torque reactions.

string
type
Along with torqueCoupling and torqueArm, forms a set of nodes that will be used to apply counter torque to the suspension or body.

Will default to one of the axle nodes if not defined.

Should be part of the same structure as torqueCoupling and torqueArm, and not move compared to them during typical driving. The engine itself, axle, or suspension subframes can be decent choices depending on the suspension and powertrain layout.

As with nodeArm/Coupling, nodes that are heavier and further appart will allow for more torque to be transmitted before running into stability issues.

This node should also not form a line between it, torqueArm2 and torqueCoupling.

string
type
The top node of the steering axis.
This is used by the advanced suspension UI tool to calculate caster.
string
type
The bottom node of the steering axis.
This is used by the advanced suspension UI tool to calculate caster.
string
type
Defines beams which, when broken, disable drive torque to the wheel.
These beams should be the beams representing the half-shafts, which transfer power from the differential to the wheels.
boolean
type
Enables and disables mesh breaking on the tire.
boolean
type
Enables and disables mesh breaking on the hub.
float
type
A value of 0 disables drive torque, a value of 1 allows engine torque to drive the wheel.
This is deprecated and has been replaced with the powertrain system. Should be left at 0.
boolean
type
If the wheel nodes have collision with the vehicle they’re attached to.
Usually set to false.
boolean
type
If the wheel nodes have collision with other objects.
Should always be set to true.

Node Arguments

Node settings define the friction parameters of the wheels, along with the weight of the wheels, both for the tire and hub.

float
type
Mass of tire tread nodes (kg).
Because part of the weight of a tire is in the sidewall and tire bead, start with a real life tire and wheel weight, but subtract some weight from the tire nodes and add it to the hub nodes.
float
type
Mass of hub nodes (kg)
Because part of the weight of a tire is in the sidewall and tire bead, start with a real life tire and wheel weight, but subtract some weight from the tire nodes and add it to the hub nodes.
float
type
Friction coefficient of hub nodes.
string
type
Material of hub nodes.
As of version 0.34.2.0 the following physics materials are available:
METAL, PLASTIC, RUBBER, GLASS, WOOD, FOLIAGE, CLOTH, WATER, ASPHALT, ASPHALT_WET, SLIPPERY, ROCK, DIRT_DUSTY, DIRT, SAND, SANDY_ROAD, MUD, GRAVEL, GRASS, ICE, SNOW, FIRESMALL, FIREMEDIUM, FIRELARGE, SMOKESMALLBLACK, SMOKEMEDIUMBLACK, STEAM, RUMBLE_STRIP, COBBLESTONE, FOLIAGE_THIN, SPIKE_STRIP
float
type
Friction coefficient of tire tread nodes.
Determines overall grip of the tire.
float
type
Friction coefficient of tire tread nodes when sliding.
float
type
Allows finer control of the sliding friction curve.
Affects the velocity at which the sliding coefficient will apply.
float
type
1.75
default
Allows finer control of the sliding friction curve.
Smaller values will result in a more progressive transition.
float
type
1
default
How treaded the tire is.

A slick tire will be 0, an offroad tire about 0.9 and a standard tire 0.7.

This value is multiplied against a roughness coefficient for each ground type (mud has a high roughness, asphalt has very little) this means that a mud tire now works well in mud but mediocre on pavement, a slick works well on pavement but horribly on mud.

This value affects tire sounds, so it is important to set a realistic value even if the vehicle has no physical tires.

float
type
The friction coefficient modifier when the tire is unloaded.

Allows to give the tire comparatively more grip when unloaded, which helps the tire react more progressively to weight transfers and load changes.

This value should be higher than the “fullLoadCoef”

float
type
The loss of coef per newton of normal force
The friction coefficient will keep going down from the “noLoadCoef” until it reaches the “fullLoadCoef”, at which point it will stay stable.
float
type
The friction coefficient modifier when the tire is fully loaded.

Allows to give the tire comparatively less grip when fully loaded, which helps the tire react more progressively to weight transfers and load changes.

This value should be lower than the “noLoadCoef”

string
type
Material of tire tread nodes (kg).
As of version 0.34.2.0 the following physics materials are available:
METAL, PLASTIC, RUBBER, GLASS, WOOD, FOLIAGE, CLOTH, WATER, ASPHALT, ASPHALT_WET, SLIPPERY, ROCK, DIRT_DUSTY, DIRT, SAND, SANDY_ROAD, MUD, GRAVEL, GRASS, ICE, SNOW, FIRESMALL, FIREMEDIUM, FIRELARGE, SMOKESMALLBLACK, SMOKEMEDIUMBLACK, STEAM, RUMBLE_STRIP, COBBLESTONE, FOLIAGE_THIN, SPIKE_STRIP
float
type
0.6
default
Affects tire squeal

Harder tires squeal more.

This value affects tire sounds, so it is important to set a realistic value even if the vehicle has no physical tires.

Beam Generation Arguments

int
type
Number of spokes per side of wheel (must be an even number)

Keep numRays between 10 for small basic wheels to 20 for smoothest running. Most vanilla wheels have 16 rays

While it is true that a high numRay wheel runs smoother, this effect is mainly only noticeable at low speed (<10km/h).

High numRay wheels use considerably more nodes, beams, and triangles, using up more of the CPU budget. Wheels with high numRays will also run into stability issues quicker, meaning they might struggle to achieve the cornering and longitudinal stiffness of a real tire, leading to smooth but vague handling. They may also suffer from greater amounts of expansion at high speeds.

boolean
type
false
default
Enable diagonal tire reinforcement beams.
Mimics the stiffness of the sidewall to tread connection of a real tire.
boolean
type
Enable L-beam tire reinforcement beams.
Mimics the stiffness of the sidewall to tread connection of a real tire. Similar to TireReinfBeams, but a better method. If enabled, TireReinfBeams will be disabled.
boolean
type
Enable extra anisotropic sidewall beams.
Adds longitudinal stiffness, most useful for tall sidewalls or high numRay tires.
boolean
type
Enable extra tread beams.
Improves lateral stiffness and reduces grip loss at high speeds.
boolean
type
Enable extra periphery beams.

Beam Arguments

Beam settings define the parameters of all the beams that make up a pressure wheel.

Each parameter listed bellow has Spring, Damp, Deform and Strength parameters, which can be used by replacing the “*” symbol with the property you want to change.

For example, the spring setting of the hubBeams would be “hubBeamSpring”, while the deform would be “hubBeamDeform. All those parameters work in a similar way as the parameters for standard beams.

float
type
Spring, Damp, Deform, Strength of hub beams
float
type
Spring, Damp, Deform, Strength of hub tread beams (across)
The hub refers to the wheel. The spring value should be as stiff as possible without running into instability issues, to limit deflection within the wheel and avoid expansion of the wheel at higher speeds. The damping values can be kept very low (<10)
float
type
Spring, Damp, Deform, Strength of hub periphery beams (circumference)
The hub refers to the wheel. The spring value should be as stiff as possible without running into instability issues, to limit deflection within the wheel and avoid expansion of the wheel at higher speeds. The damping values can be kept very low (<10)
float
type
Spring, Damp, Deform, Strength of hub side beams (radial spokes)
The hub refers to the wheel. The spring value should be as stiff as possible without running into instability issues, to limit deflection within the wheel and avoid expansion of the wheel at higher speeds. The damping values can be kept very low (<10)
float
type
Spring, Damp, Deform, Strength of Anisotropic hub side reinforcement beams (hub only)
The hub refers to the wheel. This is used by a simplified model in which the hub and tire are 1 part, utilized by traffic cars for optimization purposes. Should not be used on normal wheels.
float
type
Spring, Damp, Deform, Strength, DampCutoffHz, Precompression of Anisotropic hub side beams (sidewall)
Spring and Damp Should be low to allow air pressure to handle weight of vehicle. Since 0.22, the spring parameter is often set as a function of tire pressure.
float
type
Expansion Spring, Damp of Anisotropic hub side beams in expansion (sidewall)

Spring and Damp affects longitudinal stiffness (higher->stiffer), rolling resistance(higher->better), sharpness of lateral grip curve (higher->sharper peak), compression stiffness to a small extent (higher ->stiffer in compression)

The spring value should be as high as possible, on the limit of instability, to keep the tire from expanding at higher speeds.

float
type
Spring, Damp, Deform, Strength, DampCutoffHz of Anisotropic hub side reinforcement beams (sidewall +-2 nodes)
Spring and Damp should be low to allow air pressure to handle weight of vehicle.
float
type
Expansion Spring, Damp of Anisotropic hub side reinforcement beams in expansion (sidewall +- 2 nodes)
Spring and Damp affects longitudinal stiffness (higher->stiffer), rolling resistance(higher->better), sharpness of lateral grip curve (higher->softer peak), compression stiffness to a small extent (higher ->stiffer in compression)
float
type
Spring, Damp, Deform, Strength, DampCutoffHz, Precompression of diagonal tire reinforcement beams, or L-beams (diagonal)

Spring and Damp affects lateral stiffness primarily at lower slip angles (higher->stiffer). Low values can make a tire that tends to roll onto the sidewall more under hard cornering. Too high of a value reduces aligning torque.

The spring value should be as high as possible, on the limit of instability, to keep the tire from expanding at higher speeds.

float
type
Spring, Damp, Deform, Strength, DampCutoffHz, Precompression of tire tread beams (across)

Spring and Damp primarily affects lateral stiffness from low to high slip angles (higher->stiffer)

The spring value should be fairly high, up to about 50-75% of the sideBeamSpringExpansion or at the limit of stability.

float
type
Spring, Damp, Deform, Strength, DampCutoffHz, Precompression of diagonal tread reinforcement beams (across +-2 nodes)
Spring and Damp primarily affects lateral stiffness at low slip angles (higher_>stiffer) and also reduces grip loss at high speeds. Keep spring value between 1/4 to 1/2 of wheelTreadBeam values.
float
type
Spring, Damp, Deform, Strength, DampCutoffHz, Precompression of tire periphery beams (circumference)

Spring and Damp affects longitudinal stiffness (higher->stiffer). Also affects compression stiffness, high speed expansion, high speed grip.

Should be nearly the same as treadBeamSpring for narrow tires, but stiffer for wide tires.

float
type
Spring, Damp, Deform, Strength, DampCutoffHz, Precompression of tire periphery beams (circumference)
Spring and Damp affects longitudinal stiffness (higher->stiffer). Also affects compression stiffness, high speed expansion, high speed grip.

Collision/Pressure Tri Arguments

float
type
Pressure in PSI that fills the tires

This value should be set to a realistic value for the tire size and application.

Here are some examples of various real life applications of tires:

  • Car, typical road tire: 25-35psi
  • Car, racing slick: 22-27psi
  • Light truck: 30-50psi
  • Rock Crawler: 5-15psi
  • Heavy truck: 50-100psi
  • Aircraft: 100psi+
float
type
Max tire pressure in PSI that fills the tires.
This primarily exists to keep internal pressure rising too high and causing instability when the tire is deformed.
boolean
type
false
default
Sets whether tire triangles collide with the collision triangles of own vehicle or other vehicles.

When enabled, tires will not clip right through firewalls, for example, but may get stuck in sharp bodywork after a collision. More CPU resources are needed when this is enabled.

This argument, as well as the other triangle collision related ones, is normally only used on off-road vehicles with big tires, where simulating accurate tire collision is more important.

boolean
type
false
default
Sets whether tire tread triangles collide with the collision triangles of own vehicle or other vehicles.
Only affects tire tread triangles.
boolean
type
false
default
Sets whether tire side 1 triangles collide with the collision triangles of own vehicle or other vehicles.
Side 1 is normally the inner side, while Side 2 is the outer.
boolean
type
false
default
Sets whether tire side 2 triangles collide with the collision triangles of own vehicle or other vehicles.
Side 1 is normally the inner side, while Side 2 is the outer.
boolean
type
false
default
Sets whether inner hub triangles collide with the collision triangles of own vehicle or other vehicles.

These triangles are behind the tire surface, meaning that they will normally not collide with anything, so this argument is not useful in standard use cases.

Not affected by triangleCollision argument.

boolean
type
false
default
Sets whether hub side 1 triangles collide with the collision triangles of own vehicle or other vehicles.

Side 1 is normally the inner side, while Side 2 is the outer.

Not affected by triangleCollision argument.

boolean
type
false
default
Sets whether hub side 2 triangles collide with the collision triangles of own vehicle or other vehicles.

Side 1 is normally the inner side, while Side 2 is the outer.

Not affected by triangleCollision argument.

float
type
100
default
Sets fluid drag for the tires.
This value should be in the range of 5-20. It is a fairly small component of vehicle drag, but mainly important to make sure the tires don’t fly through water unimpeded.
float
type
0
default
Sets skin drag for the tires.
Additional drag coefficient defined along the tire surface rather than across. Used to simulate paddle-like treads in mud tires.

Hubcap Arguments

boolean
type
Defines if hubcaps should be added to the wheel.
string
type
The name of the hubcap’s breakgroup
string
type
The node group of the hubcap
Should match the hubcap’s flexbody group parameter.
boolean
type
If the hubcap has collisions with the world and other objects.
boolean
type
If the hubcap has collisions with the vehicle.
boolean
type
Creates beams between the center node of the hubcap and the axle nodes of the wheel.
float
type
The offset of the hubcap compared to the face of the wheel.
Negative values will move the nodes inside the wheel.
float
type
The offset of the center node compared to the outside rim of the hubcap.

Negative values will cause the center node to be outside of the wheel, while positive values will result in the center need being inside the wheel.

This should not be left at 0, as the center node acts as a rigidifier. 0.06 is a common value.

float
type
The radius of the hubcap.
float
type
The spring, damp, strength, deform setting of the beams composing the hubcap itself.
float
type
The spring, damp, strength, deform setting of the beams attaching the hubcap to the wheel.
float
type
The spring, damp, strength, deform setting of the support beams between the hubcap and wheel.
float
type
The weight of the hubcap nodes (kg)
float
type
The weight of the hubcap center node (kg)
float
type
The material of the hubcap nodes.
As of version 0.34.2.0 the following physics materials are available:
METAL, PLASTIC, RUBBER, GLASS, WOOD, FOLIAGE, CLOTH, WATER, ASPHALT, ASPHALT_WET, SLIPPERY, ROCK, DIRT_DUSTY, DIRT, SAND, SANDY_ROAD, MUD, GRAVEL, GRASS, ICE, SNOW, FIRESMALL, FIREMEDIUM, FIRELARGE, SMOKESMALLBLACK, SMOKEMEDIUMBLACK, STEAM, RUMBLE_STRIP, COBBLESTONE, FOLIAGE_THIN, SPIKE_STRIP
float
type
The friction coefficient of the hubcap nodes.

Brakes arguments

These settings affect the parameters that apply to the brakes on this wheel.

Most parameters are related to the brake thermals system, which calculates the amount of energy heating up the rotor, and how quickly it cools.

float
type
0
default
The braking torque when using the service brake (Nm).
float
type
0
default
The braking torque when using the parking brake (Nm).
float
type
10
default
The flexibility of the braking torque (Nm/rad).
This is mostly used for stability purposes, with the brake torque having some level of flexibility to avoid running into instability problems in the wheels and suspension. This value should be proportional to the weight of the wheels and reaction nodes.
boolean
type
false
default
Enables thermals for the brakes.
float
type
0.35
default
The diameter of the rotor at the pad contact point. (Meters)

Used for the thermals calculations.

Defines the cooling area of the brakes.

float
type
10
default
The mass of the rotor (kg)

Used for the thermals calculations.

Affects the thermal inertia of the brakes. Heavier rotors will heat up and cool down more slowly.

string
type
vented-disc
default
The type of rotor

Used by the thermals calculations, and affects how quickly the rotors cool down.

The available options are “vented-disc, disc and drum”

string
type
steel
default
The material of the brake rotor

Used by the thermals calculations, and affects the heat capacity of the rotors, their maximum operating temperature, along with how quickly they cool down.

The available options are “steel, aluminum, aluminium, carbon-ceramic and godmode”

float
type
How much aeration the brakes are getting
Simulates the effect of brake ducts and other similar systems on the brake cooling.
string
type
basic
default
The material of the brake pad.

Affects the braking force vs temperature curves.

The available options are “basic, premium, sport, semi-race, full-race.”

float
type
1
default
Percentage of brake input at which the brakeSplitCoef will apply.
Should be between 0 and 1. Allows to have a point at which braking force rises slower, to have progressive or digressive brakes.
float
type
1
default
Braking curve when brake input is above brakeInputSplit.
Values below 1 will result in a digressive braking curve. Values above 1 will result in a progressive curve.
float
type
0
default
The inherent level of brake squeal generated by the brakes.
Should be 0 for modern brakes.
float
type
0
default
The inherent level of brake squeal generated by the brakes at low speeds.
Should be 0 for modern road brakes.
float
type
1
default
The level of brake squeal generated by glazed brake pads.
float
type
false
default
Indicates if the brakes have ABS enabled.
float
type
0.18
default
The target slip ratio to be achieved by ABS under braking.
Just like in real life, our tires provide optimum grip at non-zero slip ratios. The optimal value is different for each car and requires manual testing to find.
float
type
100
default
Vibration frequency of the ABS
ABS works by pulsing the brakes. This parameter changes the pulsation frequency.
number
type
0.05
default
Smoother to replicate delay when pressing the brakes.
Mostly relevant with air brakes.
number
type
0.1
default
Smoother to replicate delay when releasing the brakes.
Mostly relevant with air brakes.

Specific to simplified traffic cars

These arguments are used to send tire data to the tire sound system for simplified traffic vehicles which have no actual tires for optimization purposes.

number
type
Wheel hub radius as seen by the tire sound system.
When present, the tire sounds system will treat this value as the hub radius, and the actual hub radius will be treated as tire radius.

Simple example

A simple tire-less wheel, not separated into individual components.

"pressureWheels": [
    ["name","hubGroup","group","node1:","node2:","nodeS","nodeArm:","wheelDir"],

    //general settings
    {"hubRadius":0.08},
    {"wheelOffset":0.005},
    {"hubWidth":0.025},
    {"numRays":10},
    {"hasTire":false}
    //hub options
    {"hubBeamSpring":251000, "hubBeamDamp":5},
    {"hubBeamDeform":40000, "hubBeamStrength":160000},
    {"hubNodeWeight":0.1},
    {"hubNodeMaterial":"|NM_RUBBER"},
    {"hubFrictionCoef":0.8},
    //stabilizer wheel
    {"propulsed":0},
    {"brakeTorque":0},
    {"parkingTorque":0},
    {"selfCollision":true},
    {"collision":true},
    ["STR", "stabwheel_R", "stabwheel_R", "stw1r", "stw1rr", 9999, "sta1r", 1{"speedo":false}],
    {"propulsed":0},
    {"hasTire":true},
],

Advanced example

A pair of front wheels split into individual components.

Hubs:

"pressureWheels": [
    ["name","hubGroup","group","node1:","node2:","nodeS","nodeArm:","wheelDir"],
    {"disableMeshBreaking":false,"disableHubMeshBreaking":false,"hasTire":false},

    //general settings
    {"hubRadius":0.18},
    {"wheelOffset":-0.04},
    {"hubWidth":0.160},
    {"numRays":16},
    //hub options
    {"hubTreadBeamSpring":901000, "hubTreadBeamDamp":6},
    {"hubPeripheryBeamSpring":901000, "hubPeripheryBeamDamp":6},
    {"hubSideBeamSpring":1351000, "hubSideBeamDamp":6},
    {"hubNodeWeight":0.40},
    {"hubNodeMaterial":"|NM_METAL"},
    {"hubFrictionCoef":0.5},
    {"hubBeamDeform":15000, "hubBeamStrength":66000},
],

Tires:

"pressureWheels": [
    ["name","hubGroup","group","node1:","node2:","nodeS","nodeArm:","wheelDir"],
    {"disableMeshBreaking":false,"disableHubMeshBreaking":false,"hasTire":false},

    {"hasTire":true},
    {"enableTireReinfBeams":false},
    {"enableTireLbeams":true},
    {"enableTireSideReinfBeams":false},
    {"enableTreadReinfBeams":true},
    {"enableTirePeripheryReinfBeams":true},

    //general settings
    {"radius":0.28},
    {"tireWidth":0.135},

    //tire options
    {"wheelSideBeamSpring":"$=$tirepressure_F*550","wheelSideBeamDamp":20},
    {"wheelSideBeamSpringExpansion":281000,"wheelSideBeamDampExpansion":30},
    {"wheelSideTransitionZone":0.09,"wheelSideBeamPrecompression":0.98},

    {"wheelReinfBeamSpring":15000,"wheelReinfBeamDamp":140},
    {"wheelReinfBeamDampCutoffHz":500,"wheelReinfBeamPrecompression":0.98},

    {"wheelTreadBeamSpring":50000,"wheelTreadBeamDamp":50},
    {"wheelTreadBeamDampCutoffHz":500,"wheelTreadBeamPrecompression":0.98},

    {"wheelTreadReinfBeamSpring":120000,"wheelTreadReinfBeamDamp":40},
    {"wheelTreadReinfBeamDampCutoffHz":500,"wheelTreadReinfBeamPrecompression":0.98},

    {"wheelPeripheryBeamSpring":35000,"wheelPeripheryBeamDamp":23},
    {"wheelPeripheryBeamDampCutoffHz":500,"wheelPeripheryBeamPrecompression":0.98},

    {"wheelPeripheryReinfBeamSpring":95000,"wheelPeripheryReinfBeamDamp":23},
    {"wheelPeripheryReinfBeamDampCutoffHz":500,"wheelPeripheryReinfBeamPrecompression":0.98},

    //general tire values
    {"nodeWeight":0.11},
    {"nodeMaterial":"|NM_RUBBER"},
    {"triangleCollision":false},
    {"pressurePSI":"$tirepressure_F"},
    {"dragCoef":5},
    //groundmodel friction multipliers
    {"frictionCoef":1.0},
    {"slidingFrictionCoef":1.0},
    {"treadCoef":0.7},
    //advanced friction values
    {"noLoadCoef":1.28},
    {"loadSensitivitySlope":0.00019},
    {"fullLoadCoef":0.4},
    {"softnessCoef":0.7},
    //deform values
    {"wheelSideBeamDeform":11000,"wheelSideBeamStrength":15000},
    {"wheelTreadBeamDeform":10000,"wheelTreadBeamStrength":13000},
    {"wheelPeripheryBeamDeform":40000,"wheelPeripheryBeamStrength":40000},
],

Hubcaps:

"pressureWheels": [
    ["name","hubGroup","group","node1:","node2:","nodeS","nodeArm:","wheelDir"],
    //hubcap options
    {"enableHubcaps":true},
    {"hubcapSelfCollision":true},
    {"hubcapCollision":true},
    {"enableExtraHubcapBeams":true},
    {"hubcapOffset":-0.03},
    {"hubcapWidth":-0.025},
    {"hubcapRadius":0.11},
    {"hubcapBeamSpring":121000, "hubcapBeamDamp":4},
    {"hubcapBeamDeform":3500, "hubcapBeamStrength":15000},
    {"hubcapAttachBeamSpring":121000, "hubcapAttachBeamDamp":8},
    {"hubcapAttachBeamDeform":1200, "hubcapAttachBeamStrength":1800},
    {"hubcapSupportBeamDeform":2500, "hubcapSupportBeamStrength":5000},
    {"hubcapNodeWeight":0.06},
    {"hubcapCenterNodeWeight":0.06},
    {"hubcapNodeMaterial":"|NM_METAL"},
    {"hubcapFrictionCoef":0.7},
],

Brakes:

"pressureWheels": [
    ["name","hubGroup","group","node1:","node2:","nodeS","nodeArm:","wheelDir"],
    //brakes
    {"brakeTorque":"$=$brakestrength*1350"},
    {"brakeInputSplit":1},
    {"brakeSplitCoef":1},
    {"parkingTorque":0},
    {"brakeSpring":125},
    //brake thermals
    {"enableBrakeThermals":true},
    {"brakeDiameter":0.24},
    {"brakeMass":4.0},
    {"brakeType":"vented-disc"},
    {"rotorMaterial":"steel"},
    {"brakeVentingCoef":1.0},
    //brake sounds
    {"squealCoefNatural": 0.0,"squealCoefLowSpeed": 0.0}
],

Adding the wheels to the car (note that all of the previous values are reset at the end, to prevent interfering with other wheels of the vehicle):

"pressureWheels": [
    ["name","hubGroup","group","node1:","node2:","nodeS","nodeArm:","wheelDir"],
    //front wheels
    {"selfCollision":false},
    {"collision":true},

    {"hubcapBreakGroup":"hubcap_FR"},
    {"hubcapGroup":"hubcap_FR"},
    {"axleBeams":["axle_FR"]},

    ["FR", "wheel_FR", "tire_FR", "fw1rr", "fw1r", 9999, "fh6r", 1, {"torqueCoupling:":"fh1r","torqueArm:":"fh2r","torqueArm2:":"fh3r","steerAxisUp:":"fh2r","steerAxisDown:":"fh1r"}],

    {"hubcapBreakGroup":"hubcap_FL"},
    {"hubcapGroup":"hubcap_FL"},
    {"axleBeams":["axle_FL"]},

    ["FL", "wheel_FL", "tire_FL", "fw1ll", "fw1l", 9999, "fh6l", -1, {"torqueCoupling:":"fh1l","torqueArm:":"fh2l","torqueArm2:":"fh3l","steerAxisUp:":"fh2l","steerAxisDown:":"fh1l"}],

    {"selfCollision":true},
    {"axleBeams":[]},{"disableMeshBreaking":false,"disableTriangleBreaking":false},
    {"hubcapBreakGroup":""},
    {"hubcapGroup":""},
    {"enableHubcaps":false},
    {"enableTireLbeams":false},
    {"enableTireSideReinfBeams":false},
    {"enableTireReinfBeams":false},
    {"enableTreadReinfBeams":false},
    {"enableTirePeripheryReinfBeams":false},
    {"loadSensitivitySlope":""},
    {"noLoadCoef":""},
    {"fullLoadCoef":""},
    {"frictionCoef":""},
    {"slidingFrictionCoef":""},
    {"softnessCoef":0.5},
    {"treadCoef":1.0},
    //cancel out brake properties
    {"brakeTorque":0},
    {"parkingTorque":0},
    {"enableBrakeThermals":false},
    {"brakeDiameter":false},
    {"brakeMass":false},
    {"brakeType":false},
    {"rotorMaterial":false},
    {"brakeVentingCoef":false},
],
Last modified: July 10, 2024

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.