Really great contribution, Stephen. Literally a drop-in replacement for bullet with enhancements and extras. I have been using this for just over a month myself. It’s exactly what the physics side needs.
Great work indeed
Really great contribution, Stephen. Literally a drop-in replacement for bullet with enhancements and extras. I have been using this for just over a month myself. It’s exactly what the physics side needs.
Great work indeed
A physics joint connects one physics object to another (or to a fixed point in space), constraining how it can move.
For instance, a door might swing on its hinges. In a physics simulation, the hinges would be represented by a joint with a single degree of freedom (DOF): rotation around the axis of the hinges.
Or the door might slide along a track. In that case, the track would be represented by a joint that’s free only to translate along the axis of the track.
Or you might have a robot arm mounted on a ball-and-socket: it can freely turn and twist to any imaginable orientation, but can’t leave its socket. (This requires 3 degrees of freedom.)
A 6-DOF joint is a very flexible joint with 3 rotation DOFs and 3 translation DOFs. It can rotate or slide on any axis. This makes it useful for simulating other kinds of joints.
In addition to locking DOFs, Bullet’s 6-DOF joints also implement limits, springs, motors, and servos for each DOF:
oh ok, so its like All-in-one that can be “adjusted” to what is needed.
it was odd for me since 3-DOF as 3 degrees was certain for me, now i understand 6 mean is 3 rotations and 3 translations. I will need to learn how this all joint types work anyway.
IDK why, Somehow it reminds me robot arena game, where was multiple motor joint types.
Right.
Erwin Coumans (who manages the Bullet Project) seems to be involved with robotics, so it’s not surprising the terminology is similar.
I’ve released v1.3 of Minie. There are still 2 builds:
Highlights:
Box2dShape
and Convex2dShape
DropTest
demo, both for the static platform and the falling bodiesVehicleWheel
PhysicsVehicle
/VehicleControl
are off the groundPlaneCollisionShape
I’ve released version 1.4.0 of Minie. As usual, there are 2 versions: 1.4.0for32 (for JME 3.2.4-stable) and 1.4.0for33 (for JME 3.3.0-beta1).
Note that Minie’s Maven groupId has changed from “jme3utilities” to “com.github.stephengold”. This change was necessary in order for Minie to be included in JCenter; your build scripts no longer need to reference my personal Maven repositories.
Other highlights:
CompoundCollisionShape
and Convex2dShape
CompoundCollisionShape
DropTest
demo has been massively enhanced with many cool shapesBehind the scenes, automated tests were added to Libbulletjme (the native-library project that Minie depends on). A spin-off of this effort is that Libbulletjme can now be used to provide physics simulation and V-HACD to Java applications that don’t use JMonkeyEngine.
Don’t ask me why anyone would want to use physics for anything other than JMonkeyEngine games! But there it is …
Am I correct in saying that minie can now be used as a drop-in replacement for native bullet - with the benefit of it using a more up-to-date bullet build and additional functionality?
I wouldn’t say that. There are still incompatibilities between Minie and jme3-bullet:
(1) Minie doesn’t support any Android or ARM platforms.
(2) Minie’s character control has a different name.
(3) Minie lacks KinematicRagdollControl
.
(4) There are other incompatibilities in seldom-used areas (such as PhysicsSpace.addAll()
and debug visualization) where I believe jme3-bullet was poorly designed.
I regard jme3-bullet and jme3-jbullet as legacy code. People shouldn’t use them without a good reason. But then, I’m a guy who still uses Java 1.8 and Windows 7, so who am I to judge?
By the way, do you have any suggestions on how to accelerate adoption of Minie?
It would be a great idea to write a blog entry about it - which would be picked up b google and therefore any physics + jmonkeyengine search would yield the blog page. It would also be included in the front-page since it will be the latest blog entry.
Details are here.
Or if you prefer just write a markdown based post and I can do the rest.
Wrote a post in the style of a press release and committed it to the repo, but I don’t see it yet, even after pressing Ctrl-F5. How often is the website updated?
You have to build the html and push it to the github pages repo. Details are in the readme here.
The blog post announcing Minie v1.4 is now live:
jMonkeyEngine | Minie Physics Library Version 1.4 Released!
nice, this is first post there (except Jayfella one).
I thought there will be more posts, but if there is problem people write it, then i think @jayfella should put something automatic there too, like Monthly topics or something.
Exciting developments in Minieville this month:
CharacterControl
class and additional PhysicsSpace
constructors (for compatibility with jme3-bullet)CollisionSpace
, ConvexShape
, MultiBody
, MultiBodySpace
New6Dof
joints in ragdollsExpect a new release in early March…
Version 1.5 of Minie has been released. As usual, there are 2 versions: 1.5.0for32 (for JME 3.2.4-stable) and 1.5.0for33 (for JME 3.3.0-beta1).
The new release improves compatibility with jme3-bullet
by adding:
CharacterControl
class (not 100% compatible, but suitable for most purposes)PhysicsSpace
constructorsIt also introduces some important new capabilities:
New6Dof
joints in a DynamicAnimControl
CollisionSpace
)It also fixes several known bugs in version 1.4.0:
NullPointerException
in the DacWizard
applicationDebugShapeFactory.getDebugMesh()
have incorrect boundsMultibodies are a feature of Bullet that isn’t accessible via jme3-bullet
. A multibody represents a hierarchy of rigid colliders connected by joints, similar to a DynamicAnimControl
. For an example of their use, see TestMultibody.java. Hoping that multibodies might provide more efficient simulation of ragdolls, I added support to Minie, but as of this release, the feature is EXPERIMENTAL.
Linux-on-ARM support was also planned for this release. However, there were a couple hitches:
nice work!
You have added many new joint types/etc/fixed a lot issues and soon i will upgade and rebuild character again, so i got a questions:
idea: make character receive point physics force when hit, not breaking played 3.3 animation.
(character get shot in some part, and it have some recoil in this place while 3.3 animation is still playing (blending))
for example when someone get shoot in shoulder, he have visual effect of it.(torso go back and rotate)
for a leg same, but i also planned for a moment make ragdoll.
how solve idea:
when character shoot in for example left shoulder, create physics based pose(calculated in 1 frame)(idk if do via IK or just ragdoll based) and blend it with current 3.3 animation (so blend would give effect like character took physics force into left shoulder).
how solve idea 2:
just make partial ragdoll of bones near hitplace for 1 second, then blend again to animation. (and just switch DAC between kinematic/ragdoll for a moment)
Could you please suggest me best solution you would see here? Maybe there is some simple solution i dont know about, so i would prefer know it before start doing it.
when i will success with doing what i plan, will show video result later.
also i wrote PM to you, but i removed it, so dont even look.
I had one issue before. Seems like Minie for 3.3 package require(in deps) JME-core beta1, is this possible make one that require 3.3 (no subversion) ? so i could use alpha5?
it was crazy for me, because im my deps i use alpha5, so when added Minie for 3.3, it changed jme-core package to beta1 for me.(Shape keys issue => will be fixed in beta2 and dont exist in alpha5)
You can exclude the jme3-core module from coming with Minie in Gradle:
compile ("com.github.stephengold:Minie:$minieVersion") {
exclude group: 'org.jmonkeyengine', module: 'jme3-core'
}