Java port of Bullet
-
- Posts: 4
- Joined: Thu Nov 13, 2008 9:59 pm
Re: Java port of Bullet
Thank you for your reply but I'm afraid I'm still unable to compile the demos. I'm working in Netbeans using Mac OS X 10.4 . I've created a new project using the source code from the demos package and adding jbullet_all.jar to the libraries. Now when I try to compile I get errors concernng org.lwjgl.*. I've tried adding the lwjgl library to my project but that doesn't seem to help.
Thanks so much for your help.
Thanks so much for your help.
-
- Posts: 6
- Joined: Mon Aug 28, 2006 2:35 am
Re: Java port of Bullet
Could you give a roadmap of the upcoming changes to JBullet?
Thanks!![Smile :)](./images/smilies/icon_smile.gif)
Thanks!
![Smile :)](./images/smilies/icon_smile.gif)
-
- Posts: 40
- Joined: Fri Jan 11, 2008 8:33 am
Re: Java port of Bullet
Since you're using NetBeans, you can open JBullet directly as project, just remove the offending @Overrides the compiler is complaing about (will be fixed in next release). Maybe you would also need to disable "Compile on save" feature in project settings. Everything should work then, also remember to use latest NetBeans version (currently 6.5).naz027 wrote:Thank you for your reply but I'm afraid I'm still unable to compile the demos. I'm working in Netbeans using Mac OS X 10.4 . I've created a new project using the source code from the demos package and adding jbullet_all.jar to the libraries. Now when I try to compile I get errors concernng org.lwjgl.*. I've tried adding the lwjgl library to my project but that doesn't seem to help.
Thanks so much for your help.
No dates are set. The development is "need" driven, if you need something ported or fixed just tell me, or contribute the codejfelrod1960 wrote:Could you give a roadmap of the upcoming changes to JBullet?
Thanks!
![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
-
- Posts: 6
- Joined: Mon Aug 28, 2006 2:35 am
Re: Java port of Bullet
I'm interested in Collada Physics support in jBullet. Is it part of your plans to continue with jBullet 2.70?jezek2 wrote:No dates are set. The development is "need" driven, if you need something ported or fixed just tell me, or contribute the codeIn long-term, I plan to finish porting to 2.70 including DbvtBroadphase and some other code which is yet on 2.66 version. After that there will be jump to 2.73/2.74 depending in which timeframe I'll be working on it. I think that one more release this year is possible though I don't promise anything
-
- Posts: 40
- Joined: Fri Jan 11, 2008 8:33 am
Re: Java port of Bullet
Collada support is not simple task and personally I don't need it, so porting of this part is very unlikely from me. I welcome and will support any contribution in this area thoughjfelrod1960 wrote: I'm interested in Collada Physics support in jBullet. Is it part of your plans to continue with jBullet 2.70?
![Smile :)](./images/smilies/icon_smile.gif)
About the question, can you explain a bit more what are you asking about?
-
- Posts: 6
- Joined: Mon Aug 28, 2006 2:35 am
Re: Java port of Bullet
You've answered it for me. If you are interested in me contributing to this effort (Collada) I will look into it. I really would like to see it be a part of jBullet. Thanks!
-
- Posts: 19
- Joined: Sat Jan 17, 2009 10:51 am
Re: Java port of Bullet
I'm curious about the MotionState transform for setTranform().
The wiki mentions that bullet interpolation and passes the information you need to update the graphics. Well I found that MotionState doesn't have interpolation data. So I might have misinterpreted that.
If I use the values straight then the rotation of the graphical object is constant. It also looks like the radian of the rotation. If I use the difference then the graphics don't sync. I wouldn't think of it as much of a problem, but I've used JBox2d and Phys2d which also use radian value and have had little difficulty.
I have also used RigidBody.getCenterOfMassTransform() in an update part of the loop which produces the same results.
The wiki mentions that bullet interpolation and passes the information you need to update the graphics. Well I found that MotionState doesn't have interpolation data. So I might have misinterpreted that.
If I use the values straight then the rotation of the graphical object is constant. It also looks like the radian of the rotation. If I use the difference then the graphics don't sync. I wouldn't think of it as much of a problem, but I've used JBox2d and Phys2d which also use radian value and have had little difficulty.
I have also used RigidBody.getCenterOfMassTransform() in an update part of the loop which produces the same results.
Code: Select all
public void setWorldTransform(Transform worldTrans){
graphicsWorldTrans.set(worldTrans);
graphicsWorldTrans.mul(centerOfMassOffset);
SimpleVector pos = o3d.getTransformedCenter(); // jpct Object3D
// this works :)
tran_x = graphicsWorldTrans.origin.x - pos.x;
tran_y = graphicsWorldTrans.origin.y - pos.y;
tran_z = graphicsWorldTrans.origin.z - pos.z;
o3d.translate(tran_x, tran_y, tran_z);
// this doesn't work
Quat4f rotate = worldTrans.getRotation();
rotate.set(shiftX(rotate.x), shiftY(rotate.y),shiftZ(rotate.z), rotate.w);
graphicsWorldTrans.setRotation(rotate);
}
public float shiftX(float value){
float shift = 0;
if(value != last_x){
shift = last_x - value;
o3d.rotateX(shift);
}
last_x = value;
return shift;
}
... shiftY and shiftZ
-
- Posts: 19
- Joined: Sat Jan 17, 2009 10:51 am
Re: Java port of Bullet
ok, found part of my problem. I'm using a quaternion with my rotation from physics not euler.
-
- Posts: 40
- Joined: Fri Jan 11, 2008 8:33 am
Re: Java port of Bullet
Hi all,
to improve JBullet development I've decided to raise funds using donations (using PayPal). This way I'll be able to work on JBullet more and catch-up with latest versions provided there will be enough money raised. For more information visit JBullet's homepage here.
Current plan is to port changes from current 2.70-beta1 to 2.70 final (this includes some classes still on 2.66). The next step will be porting changes from 2.70 to 2.74. This will very likely also include porting of soft bodies feature.
to improve JBullet development I've decided to raise funds using donations (using PayPal). This way I'll be able to work on JBullet more and catch-up with latest versions provided there will be enough money raised. For more information visit JBullet's homepage here.
Current plan is to port changes from current 2.70-beta1 to 2.70 final (this includes some classes still on 2.66). The next step will be porting changes from 2.70 to 2.74. This will very likely also include porting of soft bodies feature.
-
- Posts: 40
- Joined: Fri Jan 11, 2008 8:33 am
Re: Java port of Bullet
New version available on JBullet homepage.
Changes in release 20090404:
- Added ConeShape
- Fixed thread safety issues when running distinct simulations in different threads simultaneously
- Changed back to building of just one library JAR
- Added run configuration for each demo in NetBeans project
- Fixed compilation with JDK 1.5
- Added fix for collision detection bug from Bullet 2.70
- Generalized mesh access interface
- Added ScaledBvhTriangleMeshShape
- Added calculatePrincipalAxisTransform method in CompoundShape
As of current plans, I'm occupied with main projects more than before and I think that there won't be any significant development in half a year (at minimum). If you need some functionality implemented earlier, consider donating, ordering porting service or contributing code.
Changes in release 20090404:
- Added ConeShape
- Fixed thread safety issues when running distinct simulations in different threads simultaneously
- Changed back to building of just one library JAR
- Added run configuration for each demo in NetBeans project
- Fixed compilation with JDK 1.5
- Added fix for collision detection bug from Bullet 2.70
- Generalized mesh access interface
- Added ScaledBvhTriangleMeshShape
- Added calculatePrincipalAxisTransform method in CompoundShape
As of current plans, I'm occupied with main projects more than before and I think that there won't be any significant development in half a year (at minimum). If you need some functionality implemented earlier, consider donating, ordering porting service or contributing code.
-
- Posts: 1
- Joined: Fri Apr 24, 2009 1:40 am
Re: Java port of Bullet
Has anyone here tried interfacing jBullet with the Shout3D java class library? I think these could be used quite impressively in concert to build some physics filled plugin-less online 3D games. ![Very Happy :D](./images/smilies/icon_biggrin.gif)
![Very Happy :D](./images/smilies/icon_biggrin.gif)
-
- Posts: 2
- Joined: Sat May 30, 2009 9:03 pm
Re: Java port of Bullet
I have exactly the same problem in building JBullet on eclipse.jezek2 wrote:It seems you've compiled whole JBullet yourself without using provided ANT script (build.xml). For full build you need to instrument classes by JStackAlloc (bundled with JBullet sources), which is automatically handled by provided ANT script. I've removed dependency on JStackAlloc in demos (all code in com.bulletphysics.demos packages) in latest development version. I've also backported the change to latest release, grab it here and replace the files with it. After that you should be able to compile demos without problem, just copy only code from com.bulletphysics.demos packages and use pre-compiled "jbullet.jar" (or build it properly by provided ANT script).jfelrod1960 wrote:I'm having trouble running the jBullet demos. I know it is something I'm doing wrong.
Would appreciate any helpCode: Select all
Exception in thread "main" java.lang.Error: not instrumented at cz.advel.stack.Stack.alloc(Stack.java:110) at com.bulletphysics.collision.broadphase.AxisSweep3Internal.<init>(AxisSweep3Internal.java:90) at com.bulletphysics.collision.broadphase.AxisSweep3.<init>(AxisSweep3.java:49) at com.bulletphysics.collision.broadphase.AxisSweep3.<init>(AxisSweep3.java:41) at com.bulletphysics.demos.dynamiccontrol.DynamicControlDemo.initPhysics(DynamicControlDemo.java:81) at com.bulletphysics.demos.dynamiccontrol.DynamicControlDemo.main(DynamicControlDemo.java:244)
Jeff
can you explain how i build it by provided ANT script
-
- Posts: 40
- Joined: Fri Jan 11, 2008 8:33 am
Re: Java port of Bullet
New version available on JBullet homepage.
Changes in release 20090628:
- Added conversion methods between Transform and Matrix4f
- Fixed bug in ShapeHull
- Added CollisionWorld.updateSingleAabb method from Bullet 2.74
- Added CollisionWorld.convexSweepTest
- Added ConcaveConvexcastDemo
Please add following code into initialization part of your application if you want to use convexSweepTest otherwise not all collisions are detected. This will be unnecessary when JBullet get ported to Bullet 2.73.
Thank you for donations, I will be able to start working soon on initial porting of changes from newer versions, most notably to port to final 2.70 release (some bits are still on 2.66 and rest on 2.70-beta1) which will fix issue with tearing of joints.
Changes in release 20090628:
- Added conversion methods between Transform and Matrix4f
- Fixed bug in ShapeHull
- Added CollisionWorld.updateSingleAabb method from Bullet 2.74
- Added CollisionWorld.convexSweepTest
- Added ConcaveConvexcastDemo
Please add following code into initialization part of your application if you want to use convexSweepTest otherwise not all collisions are detected. This will be unnecessary when JBullet get ported to Bullet 2.73.
Code: Select all
dynamicsWorld.getDispatchInfo().allowedCcdPenetration = 0f;
-
- Posts: 1
- Joined: Mon Jul 13, 2009 11:08 am
Re: Java port of Bullet
I crosspost from http://www.javagaming.org/index.php/top ... #msg169416, hoping may be here Bullet community can help me.
I make small demo, with box, bordered by 4 static planes, and several (7-10 is enough) bolls moving in it (billiard, you know). No friction, no gravity, DiscreteDynamicWorld, AxisSweep3 broadphase, SequentialImpulseConstraintSolver, and so on -- mostly copied from your demos. And it shows quite strange behavior.
1. Energy ( =sum(m*v^2/2) ) does not conserve. Even not close to it. Every collision change total energy of system. For my expirements it's constantly increase, so, after 5000 iterations or above energy increases about 30 times! Even if I decrease simulation step to 0.0001 and use rather small initial velocities (about 5-7m/s). I've noticed, what 1 ball, even with step 0.01 is rather stable in it, so errors seems to rooted in sphere-sphere collisions.
2. Although sphere-sphere and sphere-plane collisions are perfectly symmetric (forces are applied to mass center), and they was not given initial rotation (angular velocity), after collisions angular velocity tends to grow up. It means, angular momentum is also not conserve. I do not know, may be it's known limitation of used algorithms, but it also may indicate some errors in it. Again, 1 ball is rather stable in it, so it seems to be a feature of sphere-sphere collisions.
My general question is -- does original Bullet engine tryes to keep energy/momentum and the like invariants? If generally not, what efforts may be done with current (j)bullet to get results closest physically correct one -- I mean, which solver/collision detector/etc to use, which params to tune (may be paying by perfomance) ?
To be clear -- I search engine for realtime physical models (educational area) in java. I was sure I need to develop it by myself, but meeting with jbullet I've decided to try and use it instead. My be I was completly wrong?
I make small demo, with box, bordered by 4 static planes, and several (7-10 is enough) bolls moving in it (billiard, you know). No friction, no gravity, DiscreteDynamicWorld, AxisSweep3 broadphase, SequentialImpulseConstraintSolver, and so on -- mostly copied from your demos. And it shows quite strange behavior.
1. Energy ( =sum(m*v^2/2) ) does not conserve. Even not close to it. Every collision change total energy of system. For my expirements it's constantly increase, so, after 5000 iterations or above energy increases about 30 times! Even if I decrease simulation step to 0.0001 and use rather small initial velocities (about 5-7m/s). I've noticed, what 1 ball, even with step 0.01 is rather stable in it, so errors seems to rooted in sphere-sphere collisions.
2. Although sphere-sphere and sphere-plane collisions are perfectly symmetric (forces are applied to mass center), and they was not given initial rotation (angular velocity), after collisions angular velocity tends to grow up. It means, angular momentum is also not conserve. I do not know, may be it's known limitation of used algorithms, but it also may indicate some errors in it. Again, 1 ball is rather stable in it, so it seems to be a feature of sphere-sphere collisions.
My general question is -- does original Bullet engine tryes to keep energy/momentum and the like invariants? If generally not, what efforts may be done with current (j)bullet to get results closest physically correct one -- I mean, which solver/collision detector/etc to use, which params to tune (may be paying by perfomance) ?
To be clear -- I search engine for realtime physical models (educational area) in java. I was sure I need to develop it by myself, but meeting with jbullet I've decided to try and use it instead. My be I was completly wrong?
-
- Posts: 1
- Joined: Fri Oct 16, 2009 9:20 am
Re: Java port of Bullet
Hi, jezek2 !
Since few days, i'm unable to go on the website http://jbullet.advel.cz/ , I get an 403 error
I'm a student and i'll surely use JBullet for a big project, is there another place to get the last version and find Javadoc / API reference ?
thank you and keep up the great work![Smile :)](./images/smilies/icon_smile.gif)
Since few days, i'm unable to go on the website http://jbullet.advel.cz/ , I get an 403 error
![Confused :?](./images/smilies/icon_confused.gif)
I'm a student and i'll surely use JBullet for a big project, is there another place to get the last version and find Javadoc / API reference ?
thank you and keep up the great work
![Smile :)](./images/smilies/icon_smile.gif)