Bullet physics

I’m trying to experiment with some ‘realistic’ effects with the Bullet Physics nodes.

Until now I am only getting unrealistic results (see the attached patch).

I was hoping to create a behaviour similar to a ping-pong ball, but sometimes (not always) it bumps back higher than where it came from, so it never stops bouncing…

Or if the box’s mass is quite low, it ‘sinks’ into the ground. I could imagine this being normal behaviour for a bullet, but first of all I would expect it to sink into the ground when it has a high velocity, and not when it has finished bouncing back up, and secondly, its velocity should decrease while passing through the other body.

Any help on getting the parameters right? I am trying to understand how the parameters influence the results, and first of all what values I need to get ‘earth-like’ physics.

Bullet test 02.v4p (29.8 kB)

hey! i tried the patch just for curiosity but i see nothing happening, just the xyz axis and grid :/

Ok on couple of points:

  • Keep the time step static for the softworld as a single value (normally 1/60). Physics engine do not like variables time steps.
  • Mass on your box has no impact, as it’s flagged as kinematic (so internally it will be changed back to 0).
  • To reduce bouncing, use the restitution pin in createrigidbody. Please note that on collision between body1 and body2, restitution will be max(rest-body1,rest-body2), so need to change in both bodies.
  • You use pretty small units, try to multiply the sizes by 10 (0.3 is a VERY small radius in a physics world).

Hope that helps.

@sapo: You did click the start-button, right? Otherwise, you can try to connect a ‘Fill’ node set to wireframe to the shader (when I copied a file somewhere else, the shader wouldn’t behave as expected, don’t know why)

@Vux

  • I put the time-step to a static value. I see that a higher value on the iterations pin speeds things up, but it doesn’t seem linear, so it’s still unclear to me what it does, and what the relation to the timestep is.
  • Mass on my box does have an impact, when it is set to a low value (toggle the ‘more weirdness’ button), the ball sinks into the box and disappears after it has done bouncing.
  • I would think that a restitution value of 1.0 on both objects, would make the ball bounce back as high as where it started (apart from minor calculation errors), but in the example, it keeps bouncing for a long time, because sometimes (but not always) it bounces up HIGHER than where it came from. If restitution decides how it bounces, it bounces back up either higher (values > 1) or lower, but not ‘sometimes higher and sometimes not’ (see attached patch).
  • If I make the objects bigger, I get what feels like a heavy 1m large ball that is nowhere near as nervous as a ping-pong ball would be. But I did make them bigger in the attached patch to see if that was the reason for these errors, but I still have the same problem as you will see.

Bullet test 03.v4p (35.4 kB)

@ft yea inded i did, for some reason i can’t get it to show the objects, even this version, if i connect a box(geometry) to the shaders i see the box generated and following the mouse somehow… i’m using the latest plugin with the latest 4v, no idea what could be wrong :|

@ft:

  • Iterations pin is different from time step. It is used for some specific calculations where you need sub steps (fast moving objects). So the more iterations the more realistic is you simulation in that cases, but it of course also affects performances.
  • For mass you right, seems i forgot to auto add 0 mass for kinematic. mass of 0 should be the ONLY value for it. Anything else can be unexpected results.
  • For restitution I think problem comes from that i’m using the soft bodies solver, which has (a lot) of parameters which are not exposed (air density is the only one for the moment), so have to check that with a pure rigid solver.