Announcing modern Bullet physics for Java

For many years Java game developers who wanted to use the Bullet 3-D physics engine were limited to JBullet, which (as far as I can tell) hasn’t been updated since Bullet 2.72 (2008). There was also the jme3-bullet library, which accessed official (C++) Bullet libraries via the Java Native Interface, but it was tightly coupled to JMonkeyEngine, making it inconvenient for all other uses.

But now you have a better option!

Since 2018, I’ve been developing Minie, a fork of the jme3-bullet library. I brought it up-to-date with the official Bullet sources, fixed countless bugs, added support for newer features such as soft bodies, and ported it to various platforms. One offshoot of this effort was a library named Libbulletjme, a subset of Minie which (despite the name) wasn’t coupled to any game engine. Although Libbulletjme was 100% open-source, I created it for testing purposes—I didn’t plan on anyone but me ever using it. To my surprise, I found considerable interest in a modern Bullet-based physics engine that could be used in ordinary Java applications.

Over the past couple months, a collaborator and I created a website with tutorials and demos for Libbulletjme. Both the library and the website are ready for general use. If you want to use physics in a Java game, I encourage you to look at Libbulletjme.

I am open to constructive feedback and will attempt to answer all questions pertaining to Libbulletjme.