Project overview

Minie is a physics library for JMonkeyEngine that takes physics-based games to the next level.

Use it to:

  • add solidity to walls, characters, projectiles, landscapes, and vehicles,

  • detect collisions between complex shapes,

  • perform contact, ray, and sweep tests,

  • simulate characters and buildings collapsing in real time, and

  • simulate cloth, rope, and deformable volumes, including their interactions with rigid bodies and each other.

Forked from the jme3-bullet library, Minie adds many useful features while preserving most of the jme3-bullet API. Most JMonkeyEngine physics examples can use Minie without modification, and Minie adds its own demos and tutorials to help you get started.

All software in the Minie project is free and open-source, including the library itself, the demo, tutorial, and utility apps, and the software used to build, test, and run them.

The underlying simulation software comes from Bullet, a mature real-time physics simulator. But although Bullet is written in C++, you won’t need any knowledge of C++ to use Minie.

Caveats

Minie’s focus is on simulating classical mechanics in just enough detail to add verisimilitude to 3-D games. It’s not intended for 2-D platformers, nor for scientific research. For 2-D physics, consider using dyn4j instead.

Starting with version 1.6, Minie no longer supports version 3.2.x JMonkeyEngine libraries. Starting with version 4.1.1, Minie no longer supports version 3.3.x JMonkeyEngine libraries. In order to use the latest Minie release, you’ll need version 3.4.x JMonkeyEngine libraries, preferably v3.4.0-stable. (You can still use the JME 3.2 SDK, however.)

Like JMonkeyEngine, Minie and its documentation assume a certain level of proficiency with the Java programming language. This project isn’t aimed at non-programmers, nor developers without prior Java experience. Similarly, some familiarity with 3-D graphics and vector math is assumed.

While an understanding of classical mechanics is assumed, many of its technical terms are linked (at first use) to the relevant article in the English Wikipedia.

Minie’s BSD-style license disclaims liability for defects. Please don’t use this software in safety-critical applications.

Getting help

For self-help, make use of the tutorials, the javadoc, and the source code.

The JMonkeyEngine Forum/Hub is a good place to ask technical questions. The most relevant categories are:

For issues that are best handled privately, contact me by e-mail. My personal e-mail address appears often in the source code.

The name

The Minie project is named after Claude-√Čtienne Mini√©, who in 1846 developed an improved bullet for rifles. It’s a play on words, not intended to denigrate the man, nor glorify him.

The preferred English pronunciation is roughly "min-YAY", but "MIN-ee" is also acceptable.

Next steps

If you’re curious how Minie works, proceed to the Implementation page.

To gain hands-on experience, proceed to the first tutorial page.