Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

33 posts in this topic

BulletSOP 2.0 - Introduction: https://vimeo.com/67030933

BulletSOP is implementation of Bullet library (bulletphysics.org) inside SideFx Houdini (sidefx.com). It's a plugin for creating incredibly large rigid body simulations on average PC.
At this moment it's single-thread application (we're waiting for official release of Bullet Library 3.0 with GPU support) but speed is very impressive already. As well as memory footprint. The plugin is free! So you can create truly stunning massive simulations.
It has 6 extraordinary nodes which are very powerful and universal. All data which these nodes generate can be modified with standard Houdini nodes.
This tool is compiled for Houdini production builds. It includes many example scenes (beginner -> professional) which are probably the best learning resources. Free video tutorials are coming soon!
Create freely, simulate quickly and enjoy fully!

Main features:
- Bullet RBD Solver
- Support for multiple Broadphases, Constraints Solvers
- Loading data from previous frame
- Geometry decomposition (Tetrahedra, Voxels)
- Static/Animation body
- Convex Hull
- Compound Hull
- Deform static Hull
- Primitive Hulls
- Constraints (auto-generating, spring, 6DoF)
- Collisions Groups
- Object Forces
- Point Radius Forces
- Delete Duplicity data
- Instancing
- Includes many example scenes for studying
- Support for Windows(64bit) and Linux(64bit)

Links:
LinkedIn group: http://www.linkedin....Houdini-4796605
BulletSOP 2.0 beta Sneak Peek: https://vimeo.com/57193837
More author videos: https://vimeo.com/user3251535

Best wishes,
Milan Suk


EDIT: I see that interest in this version is great, so I want to add that you need Houdini 12.5.376 build! With older or later versions I can't guarantee functionality!
EDIT2: The latest BulletSOP 2.0.8 - http://forums.odforce.net/index.php?/topic/17769-bulletsop-208/

BulletSOP_2_0_7.tar.gz

BulletSOP_2_0_7.zip

Edited by MilanSuk
1 person likes this

Share this post


Link to post
Share on other sites

Thanks for great plugin.

i looked through examples and have one question - is it possible to get something like glue in default bullet?

cause in example with constraints it looks a bit bouncy (box with colored constraints). tweaked a bit but couldn't get rigid behavior.

Share this post


Link to post
Share on other sites

Awesome stuff!

Small request: Can you maybe keep the Houdini daily/prod build number in the zip/tar file name? IE something like this:

BulletSOP_2_0_7.12_5_376.tar.gz

Share this post


Link to post
Share on other sites

I´m just starting to play with it, but so far it is amazing, and even more so to have free access to it...only in Houdini you get this kind of free toys.

Thanks Milan, that was really generous on your side.

Edited by Netvudu

Share this post


Link to post
Share on other sites

Thank you to everyone!

i looked through examples and have one question - is it possible to get something like glue in default bullet?

cause in example with constraints it looks a bit bouncy (box with colored constraints). tweaked a bit but couldn't get rigid behavior.

Default Bullet Glue is probably based on Compound. Basically you parent few object to one and than base on collision point(s) It breaks. This is faster and more stable, but you need some really clever algorithm, which computes which object(s) need to be break. I made this with BulletSOP 1.0, but It's very completed! Differently with constraints you don't care and It will break on right places!

For greater stability you can increase damping and iteration on solvers and change friction and restitution on objects. But Bullet is game solver so you can expect the best stability.

Small request: Can you maybe keep the Houdini daily/prod build number in the zip/tar file name? IE something like this:

BulletSOP_2_0_7.12_5_376.tar.gz

no problem :)

Edited by MilanSuk

Share this post


Link to post
Share on other sites

Thank you to everyone!

Default Bullet Glue is probably based on Compound. Basically you parent few object to one and than base on collision point(s) It breaks. This is faster and more stable, but you need some really clever algorithm, which computes which object(s) need to be break. I made this with BulletSOP 1.0, but It's very completed! Differently with constraints you don't care and It will break on right places!

For greater stability you can increase damping and iteration on solvers and change friction and restitution on objects. But Bullet is game solver so you can expect the best stability.

Thanks.

But maybe it's possible to parent objects under one ancillary object to get one transform AND use constraints (tetra-mesh - something like gluenetwork) internally. Not to calculate new transform per parented object but only to calculate impacts/forces. As i understand constraints are implemented already and can calculate when to break. So you have your compound behaving like one object and bunch of constraints (not visible to user). And as soon as all constraints is broken for particular object you know that it's time to unparent it. This way you don't need to implement your own algorithm for impact propagation.

p.s. i'm noob in this topic so it might be completely stupid=)

Share this post


Link to post
Share on other sites

The new version is performing really well! But sometimes it does not stop cooking. The scene is not frozen, but when I hit the play button it steps only one frame forward and then it stops again. The only solution is to restart houdini, then it works again. Would be nice if you could take a look at it :)

For our new project we have to use many constraints and while we have been testing (speed is really awesome btw) we thought it would be cool if you could say I want constraints based on the distance like its already implemented but only between the objects of two groups (e.g. group A and B ) but not inbetween the objects inside one group. So all objects of group A with the objects in the specified distance to group B, but not piece 1 to piece 2 if they are both in group A. I hope my explanation is understandable.

Thanks for your help and cheers

Edited by OrangeSed

Share this post


Link to post
Share on other sites

Thanks.

But maybe it's possible to parent objects under one ancillary object to get one transform AND use constraints (tetra-mesh - something like gluenetwork) internally. Not to calculate new transform per parented object but only to calculate impacts/forces. As i understand constraints are implemented already and can calculate when to break. So you have your compound behaving like one object and bunch of constraints (not visible to user). And as soon as all constraints is broken for particular object you know that it's time to unparent it. This way you don't need to implement your own algorithm for impact propagation.

p.s. i'm noob in this topic so it might be completely stupid=)

This can works, but beauty of this tool is that everything is transparent. That's the reason, why I add padding parameter to bt_prepare node. In older betas I apply padding internally in bt_solver node and If something happened user didn't have clue why is not working :( But I will look on this constraint - unstability!

The new version is performing really well! But sometimes it does not stop cooking. The scene is not frozen, but when I hit the play button it steps only one frame forward and then it stops again. The only solution is to restart houdini, then it works again. Would be nice if you could take a look at it :)

For our new project we have to use many constraints and while we have been testing (speed is really awesome btw) we thought it would be cool if you could say I want constraints based on the distance like its already implemented but only between the objects of two groups (e.g. group A and B ) but not inbetween the objects inside one group. So all objects of group A with the objects in the specified distance to group B, but not piece 1 to piece 2 if they are both in group A. I hope my explanation is understandable.

Thanks for your help and cheers

Thank you,

I can add new parameter "copy point attributes" to constraint generating tab. So you will be able to set to every point some number(group_id), then you generate constraints and then you can use delete node with some expression(If two objects have same group_id, ...) and remove some constraints. This will be more general solution!!!

Share this post


Link to post
Share on other sites

Really thank you Milan Suk!!

and very glad you share the source file,

it's very helpful!!

thx a lot !!!

Share this post


Link to post
Share on other sites

Really thank you Milan Suk!!

and very glad you share the source file,

it's very helpful!!

thx a lot !!!

thx,

Source file is just example, for users whose want to buy source code :)

So you can see structure and comments, nothing special.

OrangeSed:

I will not implement new "copy point attributes" parameter, because It can be solved with standard nodes. I added new scene to example file.

If you need it right know, send me email and I will send it to you, otherwise It will be released with next BulletSOP version.

Edited by MilanSuk

Share this post


Link to post
Share on other sites

Love this tool Milan!

Think you could post that example file?

Would love to see how that constraint network is setup.

Share this post


Link to post
Share on other sites

Love this tool Milan!

Think you could post that example file?

Would love to see how that constraint network is setup.

Thank you!

Send me email and I'm gonna send to you scene :)

Share this post


Link to post
Share on other sites

Is it possible to change the compound index during a sim? Changing the cindex within a compound object causes a crash for me every time.

And, again, thanks for this awesome plugin!

Share this post


Link to post
Share on other sites

Is it possible to change the compound index during a sim? Changing the cindex within a compound object causes a crash for me every time.

And, again, thanks for this awesome plugin!

Thank you,

Yes, It's supported. I just fixed few problems(with animating bt_cindex attribute) and can you send me some simple example where It crashed?

Or I can send you the latest version(at this moment only Win64)

Share this post


Link to post
Share on other sites

Turns out that changing bt_cindex was not causing the crash. It was from removing a property associated with a compound object and not forcing it to update before solving. A btModify SOP with "update" set to 1 fixes this.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now