Bullet physics implementation and other stuff

   298919   385   4
User Avatar
Member
255 posts
Joined: Aug. 2009
Offline
niko3d
Hi cybermax
Ok, wasnt sure on the status of things. Its abit weird we did try the 581 version with houdini 11.0.581 but we had the same problem of the single point floating down. When it was compiled the problem occurred again. Has anyone else had this problem and solved it?
Cheers
Nick
ok, but If you have point which falling down, it works, you need use “bullet_transform” node for copy translation and rotation back on object.
https://vimeo.com/user3251535 [vimeo.com]
https://twitter.com/milansuk [twitter.com]
https://github.com/milansuk [github.com]
User Avatar
Member
22 posts
Joined: Nov. 2010
Offline
cybermax
If you use decompositon from bullet example files, be carefull. Its APPROXIMATE Convex Decomposition, so finall body(object) can be compress(deform) and If you have two or more pieces which are close, solver explode this objects. I am preparing new sop node for decomp, but I use my algorithm(I used this alg. some time, but in last few days, I worked on it, and its better), which create convex bodies, which is not deform!
your algorithm? Cool, is it a top secret? or maybe………
User Avatar
Member
255 posts
Joined: Aug. 2009
Offline
oh_qxs
your algorithm? Cool, is it a top secret? or maybe………
I dont know :?
When I started with writing code, I thought that Its gone be simple and fast, but at this moment C++ file has more than 700rows and Its 95% done. Only two features missing.

I implement Convex decomposition only for one reason and It because concave body from Gimpact dont have full support for bullet solver. For eg. Wrong information about colliding object(it dont return object id, but triangle number on concave body). Other thing is that my GPU fluids support collisions only with convex body.
https://vimeo.com/user3251535 [vimeo.com]
https://twitter.com/milansuk [twitter.com]
https://github.com/milansuk [github.com]
User Avatar
Member
89 posts
Joined: July 2006
Offline
Hi Cybermax,

Adding the bullet_transform node at the bottom shows the objects, but it looks like everything is affected by gravity only, no collisions or anything in your demo scene.

Any clues?

Cheers,

Wiek

cybermax
niko3d
Hi cybermax
Ok, wasnt sure on the status of things. Its abit weird we did try the 581 version with houdini 11.0.581 but we had the same problem of the single point floating down. When it was compiled the problem occurred again. Has anyone else had this problem and solved it?
Cheers
Nick
ok, but If you have point which falling down, it works, you need use “bullet_transform” node for copy translation and rotation back on object.
User Avatar
Member
21 posts
Joined: April 2006
Offline
cybermax
Autofreeze: Yes, bullet include this function, I can implement.

Hi cybermax,

Great job on this by the way. I was wondering if anything came of this? I am getting quite a bit of jitter from resting objects (I am trying to sim many thousand coins). Perhaps there is a workaround in the meantime? I was thinking of just excluding certain objects from updating within the sim, but was unsure how to do this? Would I use ‘update objects’ somehow? I feel that it may need to be done using geo being written/read from disk. Unfortunately, we are not able to use the Digital Asset as it causes our Houdini session to become non-commercial. Any thoughts?

Thanks in advance
User Avatar
Member
255 posts
Joined: Aug. 2009
Offline
goshone
Hi cybermax,
Great job on this by the way. I was wondering if anything came of this? I am getting quite a bit of jitter from resting objects (I am trying to sim many thousand coins). Perhaps there is a workaround in the meantime? I was thinking of just excluding certain objects from updating within the sim, but was unsure how to do this? Would I use ‘update objects’ somehow? I feel that it may need to be done using geo being written/read from disk. Unfortunately, we are not able to use the Digital Asset as it causes our Houdini session to become non-commercial. Any thoughts?
Thanks in advance
ok, my last release is very, very old, so I dont exactly remember which system I created. But I think that with this old plugin you can not solve this.

I am preparing completely new software for simulation, includes rbd(gpu in future), sbd(gpu), fluid(gpu) and I have plan for Gas(gpu). First beta comes in 1month(aprox.). At this moment I dont want to release more information, just be sure, that I still work on physics algorithm and all of you will be able to try this new software. Its NOT inhouse!
https://vimeo.com/user3251535 [vimeo.com]
https://twitter.com/milansuk [twitter.com]
https://github.com/milansuk [github.com]
User Avatar
Member
21 posts
Joined: April 2006
Offline
I am preparing completely new software for simulation, includes rbd(gpu in future), sbd(gpu), fluid(gpu) and I have plan for Gas(gpu). First beta comes in 1month(aprox.).

wicked :twisted:
well, that is good news indeed for the community, but bad news for me personally re: my current project. Oh well, i guess back to standard RBDs in the meantime. If there is anyone that has a better solution to thousands/millions of coins piling up, stacking on top of each other, please share.

thanx
User Avatar
Member
279 posts
Joined:
Offline
maybe tif u have access to realflow?it has a pretty good stack solver…
User Avatar
Member
21 posts
Joined: April 2006
Offline
Am trying the realflow (real-slow) RBD path now. But in the meantime, I have a rough working version of autofreeze that I added to your otl. However, I am having a bit of trouble with one thing. I am able to interrupt the passing of params like bullet_transform and bullet_v and writing instead my own data ( like velocity of 0, 0, 0 or a static transformation, even setting mass to 0), but things are still receiving transform data from the bullet_solver node. I have tried to do this interrupt before the solver, as well as after the solve (but before the bullet_transform), but neither seems to remove the jitter completely. Cybermax, perhaps you have some insight to accomplish this? Is there some way to remove an object from the simulation (or temporarily make it static), then possibly add it back in to the sim based on some threshold?

thanks

EDIT:
After looking at the ‘kinematic_or_dynamic_body’ in the sample scene, I see that you are doing some interesting things outside of the otl, by piping things back in from OUT_properties, and updating the objects. I am not sure exactly what is going on there, but will try to achieve what I want thru that mechanism.
User Avatar
Member
255 posts
Joined: Aug. 2009
Offline
goshone:
you can turn on “update objects” option, then you can put file node after solver node a save data, and on next frame you can read file node from previous frame and round low velocity to zero, and connect this to solver node.

BUT,

because you have great interest about this plugin, at the beginning of September, I release beta version of my software for testers, so I can send you one copy too. New RBD includes btCylinderShape, so you dont need to use convex body for coins and btCylinderShape will be more stable, plus you can rounding low velocity too and more…., but you need to wait, at this moment I dont have functional-version for you


PS: real-slow … funny
https://vimeo.com/user3251535 [vimeo.com]
https://twitter.com/milansuk [twitter.com]
https://github.com/milansuk [github.com]
User Avatar
Member
21 posts
Joined: April 2006
Offline
because you have great interest about this plugin, at the beginning of September, I release beta version of my software for testers, so I can send you one copy too.

Cybermax,

That would be much appreciated. Please keep us posted. In the meantime, I will try your ‘update objects’ solution.

Thanks

EDIT: was gonna suggest a feature if you don't mind (don't mean to be a pest :twisted: ). I would like to be able to extract a single point per object with transforms from the sim. I am currently trying to use the properties data, but there are some inconsistencies (mainly once the geo starts to rotate) with the transformations between these points (with similar geo copied to them) and the output from bullet solver. Perhaps this is unnecessary, but would be nice to swap geo later on after the sim. I could provide example and more if needed.
User Avatar
Member
1769 posts
Joined: Dec. 2006
Offline
hi!
Any news/advancement regarding the new implementation?
daniel bukovec | senior fx td | weta digital
qLib -- http://qlab.github.io/qLib/ [qlab.github.io]
User Avatar
Member
255 posts
Joined: Aug. 2009
Offline
Ok, its a long time.

I want to write and explain only one thing, because I am still getting a lot of emails on the topic - When will be next update of SOP bullet?

So, I dont work on this plugin or some other plugins for Houdini anymore. I am still learning Houdini and looking forward to buying Escape licence and start using this great software for commercial projects, BUT for things around simulations I develop “my” software(It will be release), because Houdini has basicly bad structure(memory management), so I could not get required speed and memory for massive scenes.

Few notes:
- I dont thing so that SOP is good place for simulation - replacement “objects” with groups is not good for performace.

- developing plugins in 3-party software is very bad, because If I want to recompile plugin I need to close houdini, compile plug. and open Houdini again.

- Even In basic operation, like stamping can be houdini faster. For example attachment scene take in H11 around 52sec. My software dont have stamping but it have something like “for loop”, so creating scene is simple like in houdini(doesnt need any special plugins or something like that), BUT Its running 100x faster(single-thread, 200x multi-thread) and wants 9x less memory, which are numbers, I cannot ignore.


I do not want to throw dirt on Houdini, I just want to say reasons, why I dont work on these plugins. Still, compare with Autodesk products, Houdini is Holy Grail


PS: This is official Houdini forum, so please DONT write any questions about my new software!!!

Attachments:
just_copy_box_test.hipnc (91.1 KB)

https://vimeo.com/user3251535 [vimeo.com]
https://twitter.com/milansuk [twitter.com]
https://github.com/milansuk [github.com]
User Avatar
Member
7708 posts
Joined: July 2005
Offline
cybermax
because Houdini has basicly bad structure(memory management), so I could not get required speed and memory for massive scenes.

Please try out Houdini 12 when it comes out. There are some major memory layout changes for geometry.
User Avatar
Member
255 posts
Joined: Aug. 2009
Offline
edward
Please try out Houdini 12 when it comes out. There are some major memory layout changes for geometry.

yeaah, I saw Sneak peek, so I know about it and I can not wait to try H12!

I am preparing Programming diary #1 video, where I will talk about modern design of memory managing and multi-thread(multi-gpu), including friendly and fast user-side(scripting, accessing to scene structure, etc…). I dont talk about houdini, but I think, that my access is future, or I hope so :shock:
https://vimeo.com/user3251535 [vimeo.com]
https://twitter.com/milansuk [twitter.com]
https://github.com/milansuk [github.com]
User Avatar
Member
255 posts
Joined: Aug. 2009
Offline
I am BACK and There's a Storm Coming!
https://vimeo.com/user3251535 [vimeo.com]
https://twitter.com/milansuk [twitter.com]
https://github.com/milansuk [github.com]
User Avatar
Member
330 posts
Joined: July 2007
Offline
glad to read that !


except the things that cannot be seen , nothing is like it seems .
User Avatar
Member
1769 posts
Joined: Dec. 2006
Offline
Wow Man!

Let it come, we can take it!
daniel bukovec | senior fx td | weta digital
qLib -- http://qlab.github.io/qLib/ [qlab.github.io]
User Avatar
Member
255 posts
Joined: Aug. 2009
Offline
thx,

I need help. In Attachment You can find scene with RBD simulation(Bullet) inside DOP. My question is, why is not so much stable and If there is some way, how Can I speed up?

I just created grid, which I copied. Then I applied “RBD point object”, which copied box on my 3dgrid. Then I went inside DOP network and turn off “Use volume based collision detection” and set “Bullet data” to Box. And on DOP network node I turned off “Provide data hints”, which added some speed.

Attachments:
bulletDOPTest.hipnc (217.2 KB)

https://vimeo.com/user3251535 [vimeo.com]
https://twitter.com/milansuk [twitter.com]
https://github.com/milansuk [github.com]
User Avatar
Member
1769 posts
Joined: Dec. 2006
Offline
hi!

tried it, 5000 objects at 1.1 fps is slow?
Altough i used your plugins in sop, way back and it was much faster.
DOP has some overhad creating the dyn objects and building up some data structures, if i'm correct

Also you are displaying other networks when simulating, choose hide other objects it can speed up refresh, the dopimport in SOPs is a pretty slow guy.
daniel bukovec | senior fx td | weta digital
qLib -- http://qlab.github.io/qLib/ [qlab.github.io]
  • Quick Links