Minie v7 physics library

Season’s greetings!

A new version of the Minie physics library was released today.

There are some API changes, but they’re all in fairly obscure places. I doubt they’ll impact any applications.

Version 7.0.0 solves a slew of troublesome bugs, mostly related to cloning and (JME) serialization. See the release log for details.

The new version also provides some additional double-precision accessors for collision objects. These might prove useful if you’re simulating physics in a large world—one larger than, say, 20,000 physics-space units in diameter. To make effective use of these accessors, you’d need a version of Minie with double-precision native libraries, such as:

    implementation 'com.github.stephengold:Minie:7.0.0+dp'
15 Likes

May I ask what is the API state of mesh destruction for physical objects?

That API is unchanged since Minie v6.1.0: you can split most collision shapes using planes. End of line.

The next step for mesh destruction is to implement it for JME meshes—probably as part of the Heart library.

2 Likes

The latest version is now 7.0.1

Edit: now 7.0.2

3 Likes

The latest release is now 7.1.0

v7.1.0 adds a new option to generate cylinder collision shapes in DynamicAnimControl.

Also, DacWizard has a new button to display joint angles in radians.

9 Likes

There’s now a 7.2.0 release of Minie, which fixes a few bugs and adds 2 methods for testing and debugging. It’s been a busy month …

The key motivation for v7.2.0 was native-code bugs involving global weak references that could never be deleted. The bugs were discovered on Android JVMs, which reportedly track GWRs in a table limited to 51,200 entries. During tests, the table filled up in about 10 minutes! Special thanks to @tharg2 for reporting the issue and providing the stack trace that pointed me to the root cause.

The new release includes many technical changes “under the hood”. I hope they won’t cause any new issues. For instance, the Windows natives were built using Visual Studio 2022 instead of VS 2019.

The added methods are intended to help debug issues around multi-threaded native libraries and/or BulletAppState.ThreadingType.PARALLEL. Parallel-threaded physics is tricky to get right, and going forward I hope to add runtime checks for threading issues.

(No new progress toward Voronoi fracture, by the way.)

Expect another Minie release once JMonkeyEngine 3.6.0-stable becomes available.

10 Likes