Bullet: Sessions


Ive decided to start a thread on this because the help docs for Bullet seem to be a little thin and it would be good to have a place to go to find help and experience from FX experts.

Just a couple of things stand out so far, on the bright side its super fast which is probably old news anyhow to anyone who has had a play with dynamica.
But one thing that seems to contradict the help docs has to do with freezing transforms.

" An active rigid body does not simulate if its original mesh has had Freeze Transformations performed on it."

Perhaps it means if you try to freeze transforms when the object is not at world zero it doesnt work. Point being I have an old script called rockGen that creates a bunch of rocks but the script does all sorts to the transforms to give random size and position and does an extrude as well. Eventually I had to write some extra code in there so that I centered the control point and froze transforms meanwhile making sure the object was at world zero. If I didnt put the added code in the solve went crazy. So ignore bullets advice on this, just dont freeze transforms when the object is else where apart from world 0,0,0 - kinda makes sense really.

One other thing and this is the biggest problem with Bullet so far that I have encountered…

“The Never Sleeps attribute for rigid bodies does not work properly.” Or do this mean it doesnt work at all?

The is very unfortunately and pretty much makes Bullet useless. Reason being is that you can never quite stop your rigids from jittering when they should really be still after the sim. Sure you can play with linear or angular damp but too much of those and everything seems like you are solving in treacle. Really in the end you need ‘Never Sleep’ to work so that they will sleep, this is off by default which means they should sleep. There are some hidden threshold values that determine when your rigid goes to sleep but for some reason are not available for the user to adjust, why? Maybe because ‘Never Sleeps’ is broken anyway? How hard is it for the solver to ignore objects that fall under the linear/angular threshold? It seems odd to me that the devs didnt get this one to work I hope AD gets this sorted in Maya 2014 otherwise whats the point of Bullet?

Per object expressions. I want some procedural control here! We all live in the 21st century dont we? Or at least bounding object to control things like mass, dampening, sleep etc. For example if we had object falling into water we could add a dampening object or expression based on pos.y to make the object’s linear and angular rotation slower once it hit the body of water. Id actually like to see bullet lose its soft body stuff and focus primarily on rigid because we have nCloth for softbody which pretty much covers anything soft. Im assuming once bullet solve has been baked we can convert to nCloth passive so it will interact with nCloth.

Well there are some ideas for you to chew on, please have a go and share experiences. I think AD could do with some feedback on bullet.


IMO, between the dynamica integration and native, both suck in maya. Its just a straight barebones port with no effort to make a real workflow. For example, in lightwave you can have a single mesh with multiple shells, when you simulate that assembly, their bullet integration automatically adds glue constraints… its logical right? makes sense right? why didnt maya get some of this consideration? So they added bullet to maya, great. What about shattering? should we use the shatter script that comes with maya? or a python voronoi script? What about progressive shattering… seems like that shouldnt even be a question in 2012… it just seems a half ass integration by one programmer in his spare time that pretty much adds nothing new over the dynamica toolset. I guess you could say its typical AD, slap it in, call it a feature.

so now we have ncloth, maya standard rigid bodies and bullet all in the same package. all more or less suck for the job of simulating any kind of complex RBD. I mean you could do it if you were a masochist. Wouldnt it be awesome if we had just one good RBD tool instead of 3 mediocre ones??? I would think so.

anyway, after using bullet in houdini, I havent looked back. I dont see myself doing any rigid body work in maya for the forseeable future unless someone holds a gun to my head (and i stopped trying to get maya to play by my rules), I know this is a maya section and its probably not what you want to hear but in this case you gotta just bite the “bullet” and just save the time you would normally waste getting maya to do what you want and spend it on learning houdini. You will be better off in the long run. Alembic works fantastically to get stuff out of houdini and into maya and its not like you have to migrate your entire pipe into houdini, on a shot by shot basis its a no brainer at this point.

a great man once said: “Some motherfucker’s always trying to ice skate uphill”

yeah… dont be that guy.


You have away of putting things Stooch Ill give you that :wink: Definitely what you have to say is total valid, I guess the purpose of this thread is to draw attention to what we need for a rigid body solve inside Maya.

nCloth rigids is not a bad solve its just really really slow and this is a big problem. Bullet on the other hand has the speed but totally lacks any production value for now but it would be nice if all our requests were actually implemented in the next build, would you take it more seriously then?

Ive used a version of bullet built inhouse that has all the stuff I suggested plus a version of polyshells as well. So obviously its all there in the API it just needs to be developed for Maya, thats if they take bullet seriously or maybe they could run nCloth through the GPU?

Anyways, I dont mind being the uphill iceskater, I just want to draw attention to the user experience, I know there are other tools out there that are production ready and I use them when I need to.


Totally agree. At the moment I try to use Dynamica for a personal project. I use it because it supports mesh collision what the builtin bullet implementation does not. I agree it’s okay for a personal small project, but it is useless for production because you cannot simply activate a rigid body, you have to key its mass. But then your initial spin/velocity is gone. And I have heavy jittering in my scene.

Some time ago I started to use the Fracture plugin from fracture-fx. It is almost exatcly what we need with all necessary features. You can define events and emit particles, refracture object on collision. In Houdini it is the same, great feature, it simply works. You fracture an object, simulate it, done.

Bullet in maya needs a huge amount of work to be reliable and useful for production.


well. to be honest there has been a push for maya to have better RBD solver for a decade now… if the best they can do is to just do a bare bones integration of the bullet solver, adding literally NOTHING in terms of maya specific integration, then its a good cue to move onto more specialized apps. Basically when autodesk decided to integrate the shareware DMM plugin as a “feature”. I turned my back on maya dynamics and havent looked back, I dont want a piece of shareware, i want an actual maya feature that is production ready and is supported and integrated by the dev team.

at this point, having a fast dynamics solver is a small piece of the puzzle. Managing the complexity of destruction and the complex interactions becomes even more important. Especially as the scale of the destruction goes up. IE if autodesk releases a killer shattering tool that still forces us to pre shatter things, they are going the wrong way.

I would say, research cuda accelerated progressive shattering on demand using intuitive workflow to define when and where shattering happens, simplify and streamline things like glue generation, custom crack patterns and customizeable pieces (not just a dumb voronoi pattern).

introduce some 3d textural workflows into the look of internal volumes. For example, I want to start off from a simple cube and then define layers of bricks, cement between bricks, drywall, tiles, studs, etc and all of this becomes active soft or rigid bodies that may get deformed and then shattered further into unique fragmentation patterns. ie bricks would bulge out as a wall assembly and at some critical point become a set of individual RBDs and produce a different character of debris than flexing and splintering wood. etc. But this doesnt mean that I want all my geometry to be composed of a dense tetrahedral structure like DMM. I want something that is more slanted towards the speed side rather than science. we shouldnt be setting up gigs of pre shattered material is the gist here. I want this stuff to happen at a specific time and place, keeping the weight of my scenes light and only simulate soft bodies when they need to be used. Ie the inital portion of destruction…

you know the usual rant that could take 3 pages. Ive done it so many times with futility that for me it seems like a better use of my time to just use houdini. because they got pretty much everything right. Especially once you get some production compounds going that you can just plug any geometry into.


I appreciate Stooch’s comments. I think he is right about having better physics system integration in Maya. The issue is not so much individual solvers or their effectiveness, it is a low-level framework that allows different solvers to interact and do what they are best at. This is something that some of the larger shops have, though not to the extent you would think.

I think simulation-driven animation is the future, and an interaction framework for it is something I would like to see created for all simulation media (water, destruction, particles, cloth, etc).

There are a lot of smart people working on this problem, so you will see some interesting results one of these days.



i have high hopes after hearing about XSI ice crew moving to maya.


I am guessing or say hoping " Bullet’s integration with DMM " !


I dont think Bullet needs DMM, its API seems pretty complete but then Im just a noob :slight_smile: I think Maya will still run with Bullet in the next release, hopefully with some decent improvements and usability. Id like to see DMM gone and more dev into Bullet - dynamic shattering and per object dynamics like collision events for example. After that per object presets to determine material type so concrete crumbles, wood splinters, glass smashes etc etc.


Bullet is able to do very efficient and good dynamics as you can see in Fracture or Houdini, so there is no need for DMM. Well it depends all on a very good integration.


This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.