Demolition 2.5 Official Announcement

Release Edit


Mini video tutorial:

Mini tutorial

  1. Create Soft Body object.
  2. Separate all faces from each other.
    Therefor you can use the old trick, in Edit Mode: extrude “Individual Faces”, invert selection, delete.
  3. Set a Breaking Limit in the Soft Body Edges panel above 0.
    That’s it.

How it works

The system basically detects what vertices are overlapping and internally adds stress sensitive constraints to keep them together.

Original Post

Hi community,

people have been bugging me ever since the first Blender 2.5 alpha appeared to port the Demolition Script to the new API. Some even offered funding for that, so I thought why not make it my second community driven project.

I want to take the opportunity to recode it from scratch in C. I’m currently evaluating different ways of implementation to find a nice and minimally invasive solution, which hopefully not only improves the flexibily for artists but makes it more easy to use. It will probably not be as sophisticated as DMM, but it will be free and our own. After all we still don’t have anything comparable in Blender.

For those who have never heard of the Demolition Script, I want to explain in short what it does. It’s a system that performs tearing, fracturing, shattering and breaking like effects on meshes, based on the occurrence of stresses within the structure during a physics simulation like the softbody system.

Even though I’m going to try to release something to play with as early as possible, this project in general will be a long term project. I can remember I sat half a year at the basics of Demolition 1, although I partially reinvented the wheel by making my own softbody system for it.

Demo Videos:

Blender Demolition - First Prototype - Tearing Only (Demo 1)
Blender Demolition - Steel Structures And More (Demo 2)
Blender Demolition - Case Study: World Trade Center (Demo 3)
Blender Demolition - Random Test Scenes (Demo 4)
Blender Demolition - Stress Visualization (Demo 5)
New: Blender Demolition - Proxy Mesh Utilization (Demo 6)
Game engine: Real-time Shattering Demolition physics

Old Demolition Script videos:

My own demos put together in a showreel:

Interesting user made demos I have found:

I plan to work out a roadmap shortly, depending on the way of implementation I’m going to choose and the funding available. You can help to speed up development by making a donation. All money will only be used for R&D of this project, BTW. Thank you.

hi kai,
I really look forward to this.
I hope you succeed in your venture.
As there is no plugin api atm, I wonder if you would not be better to do it in py.
I would hope you have pre-approval for this, l would hate to see this in the patch wastebin. :wink:
But then, I miss your cool builds anyway. :wink:
All the best.

Thank you. :slight_smile:

I’d be surprised if the BF now gives away guarantees for adoption into trunk. You can never be sure, so I’m trying to keep it a clean implementation and thus possible for adoption, but I don’t want to make it a show-stopper argument for me.

I chose C for speed reasons, it’s just the way to go for physics simulations. Especially if we want to do more serious effects in the future than only crashing cubes into each other.

Maybe you could get it working on the GSOC bullet project.

Not too sure what the status of it is though…

would that be only Win or also OS X / Linux ?

I always found that demo script amazing and I can see a straight C port for speed
reasons being very beneficial.

Hi Kai, great you are doing this.
As you maybe know, I developed the much simpler fracture addon, which performed some scripted boolean operations to do rigidbody fracturing. I thought maybe a better solution would be to make the code part of the bullet library - It has allready a lot of algorithms which you would probably need(including softbody), and since Erwin Coumans(author of bullet) communicated with me he would like to have such system in the library, the chance for inclusion of it is higher. The plugging into blender would maybe be then possibly done with the new bullet simulations implemented during GSOC. Huge advantages of this solution would be that it would be future proof, would work nicely with other bullet features and also the license of bullet, which enables it to work in commercial applications. Maybe by going this way, you could also get substantial funding from other sources - movie and game studios.

I’ll donate if it’s bullet driven.

Good luck!

just did a quick search just to make certain that bullet allready supports mesh tearing(and thus changing topology) during softbody simulation:

Great Kai!
At the end of the month im with 20€ Bucks!

Kai, what is DMM?

What a great news, I was waiting for something like that since I saw your script for 2.49, would be awesome to have it for 2.5.

can’t wait!!



That’s very cool!

To what extend are the fracture- and the demolition-scripts similiar? At least from the demo videos the results look very different (like soft-body tearing vs. destroying buildings).

i’m waiting for a fracture plugin for Blender 2.5 or Bullet. like Pildanovak made.
Implementing it in Bullet would be even cooler.

Of course, everywhere where Blender works.

I like the idea of inclusion in Bullet too and I think if Bullet’s softbody system isn’t very much different to Blender’s softbody system, then it shouldn’t be hard to make the switch to Bullet later on.

I’m currently focussing on Blender’s softbodies, because it’s more flexible to work with for artists. This back and forth with the game engine and Blender to create some simple physics effects feels very cumbersome to me. So I think Bullet is something for later but indeed it’s something I’d like to have as well.

I have heard this too, but not in Blender yet, for what I can see.

Digital Molecular Matter, or DMM, is a high-end and proprietary physics engine from Pixelux. It made some noise in the 3d world and has been licensed exclusively to LucasArts a few years ago.

You are right, there are different algorithms necessary to deal with both kinds of destruction. Tearing effects are not too complex and faster to calculate, that’s why most of the videos show only those. When it comes to the destruction of Buildings and solid structures, there is lots of debris to calculate and that’s a pretty tough task, especially for a Python script.

I’ll start with the tearing algorithm as a prototype and then I will continue to address the really cool stuff. You can expect some nice demos in the future.

Kai, I’m not sure if you are aware of the branch which was done during the GSOC of 2010, where aligorth(joshua leung) worked on integrating bullet as part of the 2.5 animation system, so not only the engine. I guess the integration of this branch was mentioned recently. It’s a bit pity that blender softbody and other simulations don’t harness the possibility of all-in-one interaction of bullet, where bullet enables rigidbodies, softbodies or even fluid particles - sph, to work together. However, I can imagine that if you indeed implement the tearing for blender softbodies, it could be possible to transfer the results to bullet.

If this is implemented in Bullet, the mesh demolition feature will be available for use in the BGE as well.

We’d then not only have it available for rendered stills and animations (when the Bullet GSoC branch is merged into trunk), but BGE users will also be able to use it for highly destructable environments in games as well, meaning everyone who uses Blender will be able to use it.

A direct use of the game engine for calculations would be great because I admit that to set up things
then let the game engine calculate it to then bake the IPOs is pretty uhm not intuitive.

Good luck with this project since this can be another seller for Blender compared to the animation
and effect system which already is more then just basic.

Can you easily contrain your sims in game world? As an animator I really like fine control of many small aspects of an animation/sim run. I really havent bothered with the record game to ipo/f-curve for such a long time because it is soooo non-intuitive.