# Trying to create an airbag version of Pressure Ball

**URL:** <https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449>\
**Category:** Vehicle Modelling\
**Tags:** mods\
**Created:** [25 February 2026 08:13 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449 "2026-02-25T08:13:45Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [25 February 2026 08:13 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/1 "2026-02-25T08:13:45Z")

</div>

Hi,

I am trying to create an inflated airbag. For initial setup, I am using an airbag model and created the JBeam, I have followed how pressure ball (JBeam file) is created, copied the parameters and their values. But when I am have imported it as a mod, the airbag is breaking. I can not figure out what can be the issue. I have attached a screenshot of the pressure ball

 ![image](https://forum.beamng.tech/uploads/default/original/1X/0038174256eb44095ea5b2c6a7ea2db2465013fd.jpeg)

and a link to the screen record of the airbag here. Any kind of help is appreciated.

[Here](https://drive.google.com/file/d/1LmEb1D-Yj8zeV-edWCs9yqbBmcsYvmDW/view?usp=sharing) is the link to the video. Thanks.

---

<div class="post-metadata">

**Author:** ![FloF](https://forum.beamng.tech/user_avatar/forum.beamng.tech/flof/32/21_2.png) [@FloF](https://forum.beamng.tech/u/FloF)\
**Post date:** [2 March 2026 20:33 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/2 "2026-03-02T20:33:49Z")

</div>

Hi **[SuvrangshuBarua](https://forum.beamng.tech/u/suvrangshubarua),**  
simulating an airbag is not trivial. One thing you need to take care is that the outer hull of your shape is not folding, otherwise the forces due to the pressure can go inward and your bag is collapsing and causes a instability.  
To debug your structure.

- set physics to slow motion (Alt + Arrow left)
- reload your jbeam (Alt + R)
- toggle through debug views (Ctrl + B; Ctrl + M)
- visualize the origin of your instabilities

Generally critical is balancing the mass and the stiffness. For debug reasons you might want to significantly increase your node masses and then you can stepwise reduce the weight and see the influence on stability.  
For a really lightweight structure you might need to increase the physics frequency, which is possible in .tech.

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [10 March 2026 16:44 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/3 "2026-03-10T16:44:53Z")

</div>

Hi again,

Thanks for your valuable advice. I have created another simplified model of the airbag, as the previous one had overlapping mesh. I followed the same procedure, but the flexbody is not showing at all. I can’t figure out what the issue is. I have attached the mod as a zipped file. Thanks. The drive [Link](https://drive.google.com/drive/folders/1Y_2NKOAvJWv4HRv9IxpD1V893sxoF5b0?usp=sharing).

---

<div class="post-metadata">

**Author:** ![FloF](https://forum.beamng.tech/user_avatar/forum.beamng.tech/flof/32/21_2.png) [@FloF](https://forum.beamng.tech/u/FloF)\
**Post date:** [12 March 2026 11:01 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/4 "2026-03-12T11:01:36Z")

</div>

I can see your mesh in BeamNG. It is huge and floats in the air. At the start the camera position is inside the structure and therefore not visible. But If you move with the camera to the outside, it is visible.

 ![image](https://forum.beamng.tech/uploads/default/original/1X/135fa24991383b63a79f981bf837d6c677104ec7.jpeg)

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [18 March 2026 07:41 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/5 "2026-03-18T07:41:08Z")

</div>

Hi,  
Thank you for your reply. I tried to zoom out but I can’t see the mesh unfortunately. I can only see the beams on the floor (in debug view) but in your screenshot, I can see the floating flexbody has beams which was not my case. Is there anything I am doing wrong?

---

<div class="post-metadata">

**Author:** ![FloF](https://forum.beamng.tech/user_avatar/forum.beamng.tech/flof/32/21_2.png) [@FloF](https://forum.beamng.tech/u/FloF)\
**Post date:** [18 March 2026 18:41 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/6 "2026-03-18T18:41:06Z")

</div>

I did not do any modifications on your pressure ball.  
Is your mod located in the user folder. Do you have a second (older) version of this mod which might shadow some files?

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [18 March 2026 21:48 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/7 "2026-03-18T21:48:05Z")

</div>

Hi, the mods are located in my user folder like this: C:\Users\username\AppData\Local\BeamNG\BeamNG.tech\current\mods\unpacked  
Also I have another older version of BeamNG.tech (0.37.60) but no older version of the same mod.

To troubleshoot, I also removed all other mods from the mods/unpacked folder. Still, I am getting the same result.

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [25 March 2026 08:24 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/8 "2026-03-25T08:24:23Z")

</div>

I don’t know if I am calculating it wrong but while calculating node weights for the pressure ball, the ideal gas law equation uses the total number of nodes as 643 while if it should be 642.  
{“nodeWeight”:“$= 2.0 \* $scalenodeWeight + ((($pressure \* 6894.75729) / (($components.specGasConstant ~= nil and $components.specGasConstant or 287.05) \* 288.15)) \* 492.8 \* $scale^3) / 643”},

---

<div class="post-metadata">

**Author:** ![asaeed](https://forum.beamng.tech/user_avatar/forum.beamng.tech/asaeed/32/21_2.png) [@asaeed](https://forum.beamng.tech/u/asaeed)\
**Post date:** [31 March 2026 03:05 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/9 "2026-03-31T03:05:15Z")

</div>

Hello @SuvrangshuBarua  
You’re reading it correctly: the surface nodes on the stock Pressure Ball are 0 … 641, which is 642 nodes (641 − 0 + 1).

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [31 March 2026 12:09 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/10 "2026-03-31T12:09:19Z")

</div>

Thank you for confirmation.  
I have another question regarding the measurement of the surface area of triangles. I am using the equation  
Area=0.5×∣(v2−v1)×(v3−v1)  
to compute the area of each triangle, and then summing the areas of all triangles in a loop to obtain the total surface area.

My concern is the following: if a flexbody is not simulated correctly, meaning it is broken or has collapsed onto the ground, will the computed surface area still be accurate? (Technically it should be as the nodes are positioned presenting it’s original form, not simulated form) This is extremely important for my work, as I am trying to approximate volume of the airbag as closely as possible to measure weights later.

Thank you in advance.

---

<div class="post-metadata">

**Author:** ![asaeed](https://forum.beamng.tech/user_avatar/forum.beamng.tech/asaeed/32/21_2.png) [@asaeed](https://forum.beamng.tech/u/asaeed)\
**Post date:** [7 April 2026 20:45 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/11 "2026-04-07T20:45:52Z")

</div>

Hello @SuvrangshuBarua,

For any triangle defined by three JBeam nodes, the usual approach is to read **current world positions** for those nodes (for example via BeamNGpy `Vehicle.get_node_info`) and apply the standard 3D formula for triangle area. Summing over triangles gives total surface area for the connectivity you use.

**1. Geometry: triangle area (essential math)**

```python
def triangle_area_m2(
    p1: tuple[float, float, float],
    p2: tuple[float, float, float],
    p3: tuple[float, float, float],
) -> float:
    """Area = 0.5 * |(p2 - p1) x (p3 - p1)| (m^2)."""
    a = np.asarray(p2, dtype=float) - np.asarray(p1, dtype=float)
    b = np.asarray(p3, dtype=float) - np.asarray(p1, dtype=float)
    return 0.5 * float(np.linalg.norm(np.cross(a, b)))

```

`p1`, `p2`, `p3` must be **live** positions from the simulation if you want the deformed state; static coordinates from the JBeam file alone describe the authored rest pose.

**2. Bridge to the simulation: from BeamNGpy `get_node_info` API**

```python
def measure_triangle_area(vehicle: Vehicle, node_names: tuple[str, str, str]) -> float:
    infos = vehicle.get_node_info(list(node_names))
    if len(infos) != 3:
        raise RuntimeError(f"Expected 3 nodes, got {len(infos)}")
    positions = [tuple(n["pos"]) for n in infos]
    return triangle_area_m2(positions[0], positions[1], positions[2])

```

`get_node_info` returns **current** `pos` in **world space (metres)** for each requested node name. That is what ties the geometry above to whatever the physics has produced at that moment (intact part vs buckled/collapsed, etc.).

**Important:** those positions reflect the **simulation state at the time of sampling**. If the part is undamaged, the computed area matches that pose. If the structure has buckled or collapsed, the same three nodes with updated positions describe the **deformed** surface, not the original rest geometry.

BeamNG does **not** expose triangle surface area as a single built-in “readout” in the Tech/Lua layer; you typically combine **triangle connectivity** (e.g. from your JBeam that return index triplets) with **live node positions** , then compute area as above.

Kind regards,

**Abdulrahman Saeed**  
Research Software Engineer  
BeamNG.tech Support Team

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [10 April 2026 09:43 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/12 "2026-04-10T09:43:10Z")

</div>

Hi,

Thank you for your assistance. I did the calculation with respect to JBeam and it seems that I got the correct surface area. This step was essential, as the final goal is to calculate the node weight for the airbag.

After calculating the node weight on paper and assigning the value in JBeam, the airbag appears to buckle, likely because the nodes are too light. When I tested with a significantly higher value (e.g., 2 kg per node), the airbag formed correctly.

Is there any way to use the original node weight I calculated without causing the airbag to collapse?

Thanks.

- Suvrangshu

---

<div class="post-metadata">

**Author:** ![asaeed](https://forum.beamng.tech/user_avatar/forum.beamng.tech/asaeed/32/21_2.png) [@asaeed](https://forum.beamng.tech/u/asaeed)\
**Post date:** [12 April 2026 18:16 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/13 "2026-04-12T18:16:39Z")

</div>

Hi @SuvrangshuBarua

Nice work validating surface area from the JBeam — that’s a solid basis for your mass model.

What you describe is common in BeamNG’s **mass–spring** behavior: **node mass and beam stiffness need to sit in a workable range.** If nodes are **too light** compared to the **beam springs, limit springs, and pressure** you’re using, the part can **buckle or collapse** in the sim, even when your **overall** gas mass on paper looks correct. The solver reacts to **each node’s** inertia relative to **local** springs and damping — not only to the total mass.

**Using your original calculated weights without collapse**  
Usually you **can’t** drop them in **unchanged** without also tuning **something else**. Practical paths:

- **Keep lower masses** but **soften** the structure: lower **`beamSpring`** / **`beamLimitSpring`** , or raise **`beamDamp`** / **`beamLimitDamp`** , so the same light nodes aren’t driven unstable. Same principle as balancing **mass vs stiffness** (slow motion, see where it shakes, then adjust mass _or_ springs).

- **Mesh-specific tuning** : the Pressure Ball `nodeWeight` formula is tied to **that** sphere and node count. Your airbag has **different** topology and beams, so **per-node** weights must still be consistent with **your** springs and pressure — a correct global area doesn’t automatically fix that.

- **Reality check** : **pressure groups** are **harder to tune** on non-spherical shapes; a mix of **slightly higher mass** and/or **softer limits** is often needed rather than one “perfect” number from theory alone.

**Bottom line:** raise mass **or** soften springs / add damping until it’s stable, and **record which** you changed. Paper-only weights often need **one** of those levers for a stable BeamNG setup.

**Workflow (iterate safely)**  
After each **small** JBeam change (`nodeWeight`, beams, pressure, etc.):

1. Save the `.jbeam` in your mod folder.
2. In BeamNG, **reload the vehicle** so the new JBeam is applied — e.g. **Vehicle Configurator → Reload vehicle** , or **Ctrl + R** if that’s what your build uses for reload/respawn (check keybindings).
3. **Observe** (beam stress, deformation, slow motion if needed).
4. **Repeat** one change at a time so you know what helped or hurt.

If edits don’t show up, check the mod is in the **active** path and that no **other mod** is overriding the same files.

Best of luck with the thesis.

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [19 April 2026 10:14 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/14 "2026-04-19T10:14:25Z")

</div>

hi @asaeed and @FloF ,  
I want the simulated airbag to have a total weight of less than 50 g, based on my data. In that case, I distributed the mass equally across the nodes. However, BeamNG fails to run the simulation because the airbag has 250 nodes, and when the total mass (\<50 g) is equally distributed, the node mass becomes approximately 0.0002 kg, which seems too small for BeamNG to handle stably.

Is there any workaround that would allow me to keep the node mass at the value I calculated while still maintaining airbag stability?

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [22 April 2026 10:51 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/15 "2026-04-22T10:51:58Z")

</div>

Hi again, I have also provided the mod here →

> **[Airbag – Google Drive](https://drive.google.com/drive/folders/1Y_2NKOAvJWv4HRv9IxpD1V893sxoF5b0?usp=sharing)**

Additionally, can it be solved with changing the physics steps? I have tried to adjust but can not find the right number. I will appreciate your help here.

---

<div class="post-metadata">

**Author:** ![asaeed](https://forum.beamng.tech/user_avatar/forum.beamng.tech/asaeed/32/21_2.png) [@asaeed](https://forum.beamng.tech/u/asaeed)\
**Post date:** [22 April 2026 13:49 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/16 "2026-04-22T13:49:02Z")

</div>

Hi @SuvrangshuBarua

Thank you for the update and for sharing your results.

We have reviewed your case internally. A few points may help you move forward.

**1. Very light per-node mass**  
Spreading **under ~50 g** total across **~250** nodes gives on the order of **0.0002 kg** per node. In our experience, **per-node** masses that small are **very hard** to run stably when the part is also loaded by **pressure** and **impact-level** forces. As a rough rule of thumb, **below ~0.1 kg per node** is already **aggressive** for many vehicle setups. So instability with your “paper” masses is **expected** , not necessarily a mistake in your arithmetic.

**2. Practical levers**  
The usual trade-offs are:

- **Increase** `nodeWeight` (or apply a **uniform scale factor** / minimum per node) until the part behaves, **or**
- **Soften** the structure: lower `beamSpring` / `beamLimitSpring`, and/or raise `beamDamp` / `beamLimitDamp`, **or**
- **Raise** the physics update rate (up to 4000hz) at the cost of **CPU**.

Those options often **conflict** with keeping a **literal 50 g** total unchanged; it is reasonable in a thesis to separate **physical target mass** from a **stability-adjusted** mass or tuning used only in the simulation.

**3. Node density vs. size**  
We also tested your mod geometry and it looks **over-resolved** for a **pillow-sized** volume: **many nodes** in a **small** space makes **short beams** , tight triangles, and high local stiffness, which **worsens** both **stability** and **performance**. We recommend **coarsening** the mesh (fewer nodes, longer typical beam lengths, spacing on the order of **centimetres** rather than dense sub-cm packing), then **re-tuning** beams and pressure. Fewer nodes also **raises** mass per node for the same total mass, which helps the solver.

Kind regards,

**Abdulrahman Saeed**  
Research Software Engineer  
BeamNG.tech Support Team

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [5 May 2026 17:53 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/17 "2026-05-05T17:53:48Z")

</div>

Hi again,  
Thank you for the detailed response. I have a question regarding gravity. I am trying to create a controlled collision scenario where one box impacts another at a fixed translation speed. The moving object should behave kinematically and not be affected by gravity. How can gravity be disabled for individual objects in BeamNG?

---

<div class="post-metadata">

**Author:** ![asaeed](https://forum.beamng.tech/user_avatar/forum.beamng.tech/asaeed/32/21_2.png) [@asaeed](https://forum.beamng.tech/u/asaeed)\
**Post date:** [5 May 2026 19:05 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/18 "2026-05-05T19:05:44Z")

</div>

Hello @SuvrangshuBarua,  
you may fine it in Environment settings

 ![image](https://forum.beamng.tech/uploads/default/original/1X/040442f8a2b54e109305ffbee4d46bd43a306529.jpeg)

Kind regards,

**Abdulrahman Saeed**  
Research Software Engineer  
BeamNG.tech Support Team

---

<div class="post-metadata">

**Author:** ![SuvrangshuBarua](https://forum.beamng.tech/user_avatar/forum.beamng.tech/suvrangshubarua/32/140_2.png) [@SuvrangshuBarua](https://forum.beamng.tech/u/SuvrangshuBarua)\
**Post date:** [6 May 2026 09:20 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/19 "2026-05-06T09:20:34Z")

</div>

Hi,

Thank you for your help. I need another help, how do I move or launch an object? Is there any clear documentation or process. Such as launching cannon ball from cannon. Thank you.

---

<div class="post-metadata">

**Author:** ![asaeed](https://forum.beamng.tech/user_avatar/forum.beamng.tech/asaeed/32/21_2.png) [@asaeed](https://forum.beamng.tech/u/asaeed)\
**Post date:** [7 May 2026 19:50 UTC](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449/20 "2026-05-07T19:50:57Z")

</div>

Hello,  
you may use [set\_velocity](https://github.com/BeamNG/BeamNGpy/blob/master/src/beamngpy/vehicle/vehicle.py#L366) API

Kind regards,

**Abdulrahman Saeed**  
Research Software Engineer  
BeamNG.tech Support Team

[Next page](https://forum.beamng.tech/t/trying-to-create-an-airbag-version-of-pressure-ball/449.md?page=2)
