Today I studied jolt-java. It’s a good start, but a long way from what I would like:
- There are no published releases.
- There have been no commits to the public repo since April 2023, while Jolt continues to evolve.
- According to the README file, single-body constraints, characters, vehicles, and ragdolls are all unfinished.
On the other hand, after sketching the skeletons of 4 Java classes (BulletAppState
, PhysicsSpace
, RigidBodyControl
, and BoxCollisionShape
) I was able to run the “fountain of boxes” test in JMonkeyEngine v3.6.1, and the performance seemed excellent. In fact, I can’t report the maximum number of boxes because I grew bored waiting for the FPS to fall below 30!
I’ve decided it’s worth spending some effort toward integrating Jolt Physics into JMonkeyEngine. I don’t think it will ever be a drop-in replacement for jme3-jbullet or Minie, but if the performance differential is big enough, many developers will make the switch.
I’ve forked jolt-java from GitHub - aecsocket/jolt-java: Java bindings for JoltPhysics and will continue working with it unless someone finds me a better JVM library for Jolt Physics.
There’s no need for you to build Minie from source. Pre-built JARs and other artifacts can be downloaded from GitHub and MavenCentral.
But if you insist, here is the build procedure for “8.1.0+mt” artifacts:
- Install a JDK, set “JAVA_HOME”, and clone the source code per the “standard build” instructions.
- Run the Gradle wrapper with the “-Pmt” option:
- using Bash or Fish or PowerShell or Zsh:
./gradlew build -Pmt
- using Windows Command Prompt:
.\gradlew build -Pmt