Bounded beams are beams that can change stiffness and damping based on extension and velocity. They are primarily used for dampers and suspension limiters, as they allow for multistage dampers and bump stops.
The use of bounded beams should be limited as their advanced properties come with a performance penalty. For a lot of applications you can use precompressed support beams instead.
You can use multiple bounded beams between the same pair of nodes to simulate different suspension components. Unlike with normal beams, the console will not report an error then.
Bound properties
The bounding effect changes from the standard stiffness and damping to a second set of stiffness and damping when the beam is expanded/compressed beyond a certain amount. This effect is commonly used to simulate bump stops and limit straps on suspension, and can be used to limit the movement range of some objects.
The properties change progressively from the initial beam properties to the bound properties when reaching the limits. The lenght of this transition is changed with the “boundZone” parameter.
Advanced damping properties
Damping can be divided in bound and rebound, along with slow and fast. If you are using a separate rebound damping value, the regular damping value applies only when the beam gets compressed, with the rebound damping being used when the beam expands. This is often used either to fine tune weight transfer behavior, as well as bump absorption vs how fast the suspension settles back.
Fast damping is also separated into bound and rebound, and represents the damping value used when the beam expands/contracts above a certain rate defined by the velocity split setting. On road cars and track cars, this value is often lower than the slow damping to allow for the suspension to be effectively softer when it comes to hard hits like curbs and potholes, while still allowing for weight transfer control with the slow damping. On off-road cars, the fast bump damping will often be much closer to the slow damping in order to help absorb larger impacts without bottoming out.
You can also often see on vanilla cars the use of damping beams on the steering and other suspension parts, in order to avoid oscillations, especially in loss of grip situations (wheels spin and locked wheels). These beams are set-up with 0 or very little slow damping, with fast damping to help keep oscillations in check.
The resulting forces will always keep going up as the speed increases, however the resulting damping force curves will change if the values are progressive (in red), or digressive (in blue)
Required arguments
See the beams page .
Optional arguments
0.0 would mean that the limit properties begin to apply as soon as the beam expands.
0.5 would mean that the beam can expand to 150% of its spawned length before limit properties begin to apply.
1.0 would mean that the beam can expand to 200% of its spawned length before limit properties begin to apply.
Example usage:
{"beamLongBoundFunction":"=0.1*(1-$load/1000)","cargoGroup":"RoofbarTank1"},
0.0 would mean that the limit properties begin to apply as soon as the beam contracts.
0.5 would mean that the beam can contract to 50% of its spawned length limit properties begin to apply.
1.0 would mean that the beam can contract its entire length before limit properties begin to apply.
Example usage:
{"beamShortBoundFunction":"=0.3*(1-$load/1000)","cargoGroup":"RoofbarTank1"},
A value of 0.5 means the beam needs to expand by 0.5 meters before the limit properties apply.
Using this property will overwrite beamLongBound.
A value of 0.5 means the beam needs to contract by 0.5 meters before the limit properties apply.
Using this property will overwrite beamShortBound.
Example usage:
{"beamLimitSpringFunction":"=100*$load*($load/1000)+80000","cargoGroup":"RoofbarTank1"},
Example usage:
{"beamLimitDampFunction":"=0.3*$load*($load/1000)+100","cargoGroup":"RoofbarTank1"},
Bounded beams also support the same optional arguments as standard beams .
Simple Examples
Set of simple car dampers.
//front dampers
{"beamPrecompression":1.0, "beamType":"|BOUNDED", "beamLongBound":1.0 "beamShortBound":1.0},
{"beamDeform":12000,"beamStrength":140000},
{"beamLimitSpring":0,"beamLimitDamp":0},
{"beamSpring":0,"beamDamp":850},
["fh1r","fs1r", {"beamDampRebound":1700,"dampCutoffHz":500}],
["fh1l","fs1l", {"beamDampRebound":1700,"dampCutoffHz":500}],
Steering damper beams, used to keep steering oscillations in check.
//steering damper
{"beamPrecompression":1.0, "beamType":"|BOUNDED", "beamLongBound":1.0, "beamShortBound":1.0},
{"beamSpring":0,"beamDeform":15120,"beamStrength":37800},
{"beamLimitSpring":0,"beamLimitDamp":0},
{"beamDamp":100},
["fh3r","fx1r", {"beamDampVelocitySplit":0.1,"beamDampFast":1000,"dampCutoffHz":1000}],
["fh3l","fx1l", {"beamDampVelocitySplit":0.1,"beamDampFast":1000,"dampCutoffHz":1000}],
["fh5r","fx2r", {"beamDampVelocitySplit":0.1,"beamDampFast":1000,"dampCutoffHz":1000}],
["fh5l","fx2l", {"beamDampVelocitySplit":0.1,"beamDampFast":1000,"dampCutoffHz":1000}],
{"beamPrecompression":1.0, "beamType":"|NORMAL", "beamLongBound":1, "beamShortBound":1},
Advanced Example
Set of rally dampers, with two pairs of beams for the dampers with different velocity splits, one for bump and one for rebound, along with a soft hydraulic bumpstop.
//dampers
{"beamPrecompression":1, "beamType":"|BOUNDED", "beamLongBound":1, "beamShortBound":1},
{"beamSpring":0,"beamDamp":3700},
{"beamLimitSpring":0,"beamLimitDamp":0},
//bump
["fh1r","fs1r", {"name":"shock_FR", "beamDampRebound":0,"beamDampVelocitySplit":0.35,"beamDampFast":2500,"beamDampReboundFast":0,"dampCutoffHz":500}],
["fh1l","fs1l", {"name":"shock_FL", "beamDampRebound":0,"beamDampVelocitySplit":0.35,"beamDampFast":2500,"beamDampReboundFast":0,"dampCutoffHz":500}],
//rebound
{"beamSpring":0,"beamDamp":0},
["fh1r","fs1r", {"beamDampRebound":6700,"beamDampVelocitySplit":0.25,"beamDampFast":0,"beamDampReboundFast":3400,"dampCutoffHz":500}],
["fh1l","fs1l", {"beamDampRebound":6700,"beamDampVelocitySplit":0.25,"beamDampFast":0,"beamDampReboundFast":3400,"dampCutoffHz":500}],
//hydraulic bump stop
{"beamSpring":0,"beamDamp":0},
{"beamLimitSpring":15000,"beamLimitDamp":15000},
["fh1r","fs1r", {"longBoundRange":2,"shortBoundRange":0.03,"boundZone":0.01,"beamLimitDampRebound":1000,"dampCutoffHz":250}],
["fh1l","fs1l", {"longBoundRange":2,"shortBoundRange":0.03,"boundZone":0.01,"beamLimitDampRebound":1000,"dampCutoffHz":250}],
{"beamPrecompression":1, "beamType":"|NORMAL", "beamLongBound":1.0, "beamShortBound":1.0},