JBeam is the proprietary text-based data format used by BeamNG.drive to define its famous real-time, soft-body crash physics. Unlike traditional racing games that treat cars as rigid “boxes” (RigidBody simulation), BeamNG uses JBeam to simulate a network of interconnected components that can bend, tear, compress, and shatter upon impact. 🧱 The 3 Pillars of JBeam Structure
A vehicle’s JBeam file functions like a physical skeleton. It uses three core structural elements to calculate how an object behaves and deforms:
Nodes: Invisible point masses placed in 3D space. They dictate the vehicle’s weight and act as the core contact points for all crash collisions.
Beams: Invisible springs that connect the nodes together. Beams do not have mass, but they enforce the distance between nodes. They allow a structure to deform under stress or snap when hitting an object.
Triangles: Flat 2D surfaces stretched between three nodes. They do not add structure, but they are vital for vehicle-to-vehicle collision detection and aerodynamic wind calculations. ⚙️ How Custom Crash Physics are Fine-Tuned
Modders write and modify JBeam files (which use a variation of the standard JSON format) to tell the engine exactly how strong or weak a car part is. This is achieved by tuning specific physics properties: JBeam Property What it Controls in a Crash nodeWeight
The mass of a node. Heavier nodes carry more momentum and hit harder. beamSpring
The stiffness of the beam. High values simulate rigid metal steel; low values simulate flexible rubber. beamDamp
Shock absorption. It stops the structure from continuously vibrating or bouncing like jelly after an impact. beamDeform
The elastic limit. This dictates how much force a beam can take before it permanently bends and deforms. beamStrength
The breaking point. Once forces exceed this number, the beam snaps completely, letting bumpers fly off or wheels tear away. 🛠️ The Workflow: Creating Custom JBeam Physics
Building custom physics from scratch is incredibly difficult. Experienced modders usually follow a specific pipeline: Jbeam Tips and Tricks – BeamNG Documentation
Leave a Reply