Java port of Bullet

naz027
Posts: 4
Joined: Thu Nov 13, 2008 9:59 pm

Re: Java port of Bullet

Post by naz027 »

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.
jfelrod1960
Posts: 6
Joined: Mon Aug 28, 2006 2:35 am
Contact:

Re: Java port of Bullet

Post by jfelrod1960 »

Could you give a roadmap of the upcoming changes to JBullet?
Thanks! :)
jezek2
Posts: 40
Joined: Fri Jan 11, 2008 8:33 am

Re: Java port of Bullet

Post by jezek2 »

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.
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).
jfelrod1960 wrote:Could you give a roadmap of the upcoming changes to JBullet?
Thanks! :)
No dates are set. The development is "need" driven, if you need something ported or fixed just tell me, or contribute the code :) In 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 :)
jfelrod1960
Posts: 6
Joined: Mon Aug 28, 2006 2:35 am
Contact:

Re: Java port of Bullet

Post by jfelrod1960 »

jezek2 wrote:No dates are set. The development is "need" driven, if you need something ported or fixed just tell me, or contribute the code :) In 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 :)
I'm interested in Collada Physics support in jBullet. Is it part of your plans to continue with jBullet 2.70?
jezek2
Posts: 40
Joined: Fri Jan 11, 2008 8:33 am

Re: Java port of Bullet

Post by jezek2 »

jfelrod1960 wrote: I'm interested in Collada Physics support in jBullet. Is it part of your plans to continue with jBullet 2.70?
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 though :)

About the question, can you explain a bit more what are you asking about?
jfelrod1960
Posts: 6
Joined: Mon Aug 28, 2006 2:35 am
Contact:

Re: Java port of Bullet

Post by jfelrod1960 »

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!
.jayderyu
Posts: 19
Joined: Sat Jan 17, 2009 10:51 am

Re: Java port of Bullet

Post by .jayderyu »

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.

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 
.jayderyu
Posts: 19
Joined: Sat Jan 17, 2009 10:51 am

Re: Java port of Bullet

Post by .jayderyu »

ok, found part of my problem. I'm using a quaternion with my rotation from physics not euler.
jezek2
Posts: 40
Joined: Fri Jan 11, 2008 8:33 am

Re: Java port of Bullet

Post by jezek2 »

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.
jezek2
Posts: 40
Joined: Fri Jan 11, 2008 8:33 am

Re: Java port of Bullet

Post by jezek2 »

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.
Guam
Posts: 1
Joined: Fri Apr 24, 2009 1:40 am

Re: Java port of Bullet

Post by Guam »

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. :D
pasha786
Posts: 2
Joined: Sat May 30, 2009 9:03 pm

Re: Java port of Bullet

Post by pasha786 »

jezek2 wrote:
jfelrod1960 wrote:I'm having trouble running the jBullet demos. I know it is something I'm doing wrong.

Code: 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)
Would appreciate any help
Jeff
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).
I have exactly the same problem in building JBullet on eclipse.
can you explain how i build it by provided ANT script
jezek2
Posts: 40
Joined: Fri Jan 11, 2008 8:33 am

Re: Java port of Bullet

Post by jezek2 »

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.

Code: Select all

dynamicsWorld.getDispatchInfo().allowedCcdPenetration = 0f;
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.
BegemoT
Posts: 1
Joined: Mon Jul 13, 2009 11:08 am

Re: Java port of Bullet

Post by BegemoT »

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?
vinpowful
Posts: 1
Joined: Fri Oct 16, 2009 9:20 am

Re: Java port of Bullet

Post by vinpowful »

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 :)
Post Reply