Python developers have PyBullet, which is official and up-to-date, but for many years *Java* developers who wanted to use Bullet were limited to JBullet, which (as far as I can tell) hasn't been updated since Bullet 2.72 (2008). JBullet was difficult to maintain---in part because it relied on instrumentation of the class files. There was also a jme3-bullet library, which accessed official (C++) Bullet via the Java Native Interface, but it was tightly coupled to the JMonkey game engine, making it inconvenient for all other uses.
But now there's a better option!
Since 2018, I've been developing Minie, a fork of the jme3-bullet library. I brought it up-to-date with Bullet 2.89, fixed countless bugs, added support for btMultiSphereShape, btGeneric6DofSpring2Constraint, soft bodies, multibodies, and multithreading, 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 encountered 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 there are any Java/JVM developers reading this, I encourage you to look at Libbulletjme.
https://stephengold.github.io/Libbullet ... rview.html
I am open to feedback and will attempt to answer all questions pertaining to Libbulletjme.