Skip to content

stephengold/Libbulletjme

Repository files navigation

Libbulletjme Project logo

The Libbulletjme Project adds JNI "glue code" to portions of Bullet Physics and Khaled Mamou's V-HACD Library, enabling 3-D physics simulation from Java applications.

Complete source code (in C++ and Java) is provided under a mixed open-source license. Pre-built Maven artifacts are also provided.

The project supports the 3 major desktop operating systems on x86_64 architecture: Windows, Linux, and macOS. It also supports Linux on ARM (both armhf and aarch64) and macOS on ARM and 4 Android ABIs (armeabi-v7a, arm64-v8a, x86, and x86_64), making a total of 10 platforms.

For each desktop platform, 4 native libraries are provided:

  • a release build using single-precision arithmetic (the default library)
  • a release build using double-precision arithmetic
  • a debug build using single-precision arithmetic
  • a debug build using double-precision arithmetic

In addition, multithreaded native libraries are provided for 64-bit architectures running Windows or Linux.

Libbulletjme is used in the DynamX Physics Mod for Minecraft.

Libbulletjme's native libraries are used in Minie, which integrates Libbulletjme into the jMonkeyEngine game engine.

Contents of this document

How to add Libbulletjme to an existing project

How to add Libbulletjme to an existing project

Jump to the table of contents

Example applications

Jump to the table of contents

How to build Libbulletjme from source

How to build Libbulletjme from source

Jump to the table of contents

Lexicon of class/enum/struct names

Lexicon of class/enum/struct names

Jump to the table of contents

What's missing

What's missing

Jump to the table of contents

External links

Jump to the table of contents

History

The evolution of this project is chronicled in its release log.

The C++ glue code for Bullet was originally copied from jme3-bullet-native, a library of jMonkeyEngine. The soft-body portion was added in 2018, and is based on the work of Jules (aka "dokthar").

The Java code is based partly jMonkeyEngine, partly on Riccardo's V-hacd-java-bindings, and partly on Minie. Minie is, in turn, based on jme3-bullet, another jMonkeyEngine library.

Jump to the table of contents

Acknowledgments

The Libbulletjme Project is derived from open-source software:

This project also made use of the following software tools:

I am grateful to Riccardo Balbo (aka "riccardo") for bringing V-HACD to my attention.

I am grateful to "dustContributor" for optimizing the cleaner thread.

I am grateful to "elmfrain" for authoring the GearJoint class.

I am grateful to GitHub, Sonatype, AppVeyor, Travis, MacStadium, JFrog, and Imgur for providing free hosting for this project and many other open-source projects.

Powered By MacStadium logo

I am grateful to ndebruyn for helping me test the Android native libraries.

I am grateful to Pavly Gerges for helping me test the armhf native library.

I am grateful to Yanis Boudiaf and "qwq" for many helpful suggestions.

I'm also grateful to my dear Holly, for keeping me sane.

If I've misattributed anything or left anyone out, please let me know, so I can correct the situation: sgold@sonic.net

Jump to the table of contents