# Physics engines still under development

**URL:** <https://forum.babylonjs.com/t/physics-engines-still-under-development/26847>\
**Category:** Questions\
**Tags:** physics\
**Created:** [January 17, 2022, 3:18pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847 "2022-01-17T15:18:10Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![seba80](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/seba80/32/21297_2.png) [@seba80](https://forum.babylonjs.com/u/seba80)\
**Post date:** [January 17, 2022, 3:18pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847/1 "2022-01-17T15:18:10Z")

</div>

Hello there, after using BabylonJS for various purposes, I will like to try to make a simple 3d modeling web app, and I was wondering if the physics engines supported by BabylonJS are still under active development, because I see from their github repositories that the last commits are very old. Am I going in the right path or is it better to think about using a game engine that has better support for this kind of problems?

Thank you

Sebastiano

---

<div class="post-metadata">

**Author:** ![RaananW](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/raananw/32/28955_2.png) [@RaananW](https://forum.babylonjs.com/u/RaananW)\
**Post date:** [January 17, 2022, 3:34pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847/2 "2022-01-17T15:34:10Z")

</div>

Hi,

we support Oimo (not being actively developed), cannon (same) and ammo (which is a port of bullet, a wonderful c+±based physics engine, with the last version released in nov 2020).  
They are all stable. I would recommend Cannon and Ammo, because IMO they provide the best results and have the lest amount of glitches.

---

<div class="post-metadata">

**Author:** ![Panuchka](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/panuchka/32/12054_2.png) [@Panuchka](https://forum.babylonjs.com/u/Panuchka)\
**Post date:** [January 17, 2022, 5:00pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847/3 "2022-01-17T17:00:10Z")

</div>

There are also talks about integrating [Rapier](https://rapier.rs/) into Babylonjs but I think that doesn’t come around that soon 🙂

Best bet _for now_ would be _in my opinion_ to use Ammo.js, but it is a bit older version and has a few issues as well. If your project uses typescript and modern project setup in general (esm), use this package: [ammojs-typed - npm](https://www.npmjs.com/package/ammojs-typed)

---

<div class="post-metadata">

**Author:** ![roland](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/roland/32/38940_2.png) [@roland](https://forum.babylonjs.com/u/roland)\
**Post date:** [January 17, 2022, 8:33pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847/4 "2022-01-17T20:33:41Z")

</div>

Hey @seba80 welcome!  
You can still use any physics engine directly without utilizing BabylonJS"s physics impostors.

---

<div class="post-metadata">

**Author:** ![Mr\_SquarePeg](https://avatars.discourse-cdn.com/v4/letter/m/73ab20/32.png) [@Mr\_SquarePeg](https://forum.babylonjs.com/u/Mr_SquarePeg)\
**Post date:** [January 17, 2022, 11:13pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847/5 "2022-01-17T23:13:42Z")

</div>

Rapier from what I understand is pretty awesome. It has allot of the capabilities of PhysX 4.x and Is much lighter on the CPU.

---

<div class="post-metadata">

**Author:** ![seba80](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/seba80/32/21297_2.png) [@seba80](https://forum.babylonjs.com/u/seba80)\
**Post date:** [January 18, 2022, 3:24pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847/6 "2022-01-18T15:24:51Z")

</div>

But using a physics engine without the impostors of BabylonJS could be the right path? I mean, am I losing much of the capabilities of the BabylonJS apis or is something I could try to do?

Thank you again for your help

Sebastiano

---

<div class="post-metadata">

**Author:** ![carolhmj](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/carolhmj/32/25918_2.png) [@carolhmj](https://forum.babylonjs.com/u/carolhmj)\
**Post date:** [February 17, 2022, 12:46pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847/7 "2022-02-17T12:46:55Z")

</div>

> [@seba80](#):
>
> But using a physics engine without the impostors of BabylonJS could be the right path? I mean, am I losing much of the capabilities of the BabylonJS apis or is something I could try to do?

I think without the impostors you’ll have to update your objects’ positions and other parameters manually, but let’s just check with @RaananW

---

<div class="post-metadata">

**Author:** ![RaananW](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/raananw/32/28955_2.png) [@RaananW](https://forum.babylonjs.com/u/RaananW)\
**Post date:** [February 17, 2022, 12:56pm UTC](https://forum.babylonjs.com/t/physics-engines-still-under-development/26847/8 "2022-02-17T12:56:12Z")

</div>

You can, of course, integrate your own physics engine. You can use the before render observable of the scene to run the physics engine’s step, and then update the meshes manually. What you are losing is the automated physics engine integration. Apart from that everything related to rendering should work without a problem.
