Fracture addon for 2.5

UPDATE:
-big thanks to those who made tweaks to the script to make it a standard addon in the ui
-fixed some issues with api updates
-projectile works now, sequential shard releasing not yet(it’s still not possible to copy or add logic bricks through api)
-changed Fracture object with group operator - now you select one object from the group and the object to be fractured, then run the operator
-biggest news: added ‘Add voronoi group’ operator, it adds a set of voronoi tiles around selected object.
there’s now also a fracture with voronoi operator, but it almost always fails because of bad booleans. :(, dunno if there’s something wrong with the meshes or something. So sofar the voronoi tiles are useless, but they look pretty good , maybe somebody can use them for crystal modelling :slight_smile:
--------------------------------------------------------------------------------------------------------------------
Hello,
I re-implemented some of the features of the fracture script from 2.49.
It now creates 5 operators, which are all you need to set up a simulaion of something exploding. There are no menu entries, so use spacebar search!
It’s a beta, don’t blame me for bugs or overrequest please :slight_smile:

http://plant.ffa.vutbr.cz/~novak/dwnflz/crackme/fracture.zip

Short tutorial:
1.Download and install extension. go to preferences->addons>install, find the .zip file(do not unpack it yourself, installer does). Then enable the Fracture extension.
2. create a manifold mesh(cube), space-search fracture object operator, run it.
3. Tweak the operator properties in the last operator area. then check execute. The operator tweaking isn’t possible since that point. If you set up a lot of shards, you’ll have to wait.
4. select all the shards you want to take part in explosion. Then search and run the Setup shards operator.
5. run these 2 operators: Add rigidbody recorder, Add bomb.
6. you can place the bomb whereever you want, and tweak it’s properties in the logic window. prop names should be self explanatory.
7. Select the shards.
8. Run the game engine.
9. After leaving engine, your animation should be baked.

Notes:
there is allready game engine recording feature in 2.5, so theoretically this could be redone to not use the recorder, but now you have to use it because it also freezes objects in the beginning. I also consider the possibility to re-bake just the selected shards much better than baking all rigidbodies in the scene…
No projectile or ‘active shard’ feature from 2.49, not possible with 2.5 now.
Also no 2d version(no acces to images from rna yet :frowning: ), no voronoi yet e.t.c. I have now very few time for this, so anybody wanting to play with the code is welcome. It’s very simple, just few lines of code!

AWESOME!!! Really nice Addon!!! It’s very easy to use and work VERY WELL!!! I tried your older fracture scrypts for 2.49, pildanovak. They were awesome in 2.49. But in this new addon system for 2.5 is thousands times more easy and friendly ui!!! Are you planning to put all features from your older scypts?
Thank you very much!!!

would like to use this but difficult to understand

would you be able to make a short video less then 5 minutes to show all these steps in 2.5

would be a lot easier to undersand the sequences of events here

Thanks & happy 2.5

Hi again!
This sounds really promising, alltough I’m having problems installing it. Blender doesn’t seem to find the .zip file? And when I manually tried to install it, it won’t show up when i press spacebar and start searching for fracture. I’m looking forward playing with this and also to help you out in any way I can, since this feature is something I really need.

Thank you pildanovak!

I’m having the same problem too: blender doesn’t see the .zip file.

My blender also wont detect the zip.

I figured it out. Just write manually the path to the zip file and press install.

Great! I thought I tried that, but suddenly it worked like a charm!
Awesome script pildanovak!

I have some ideas/proposals that I’m going to share later on!

And once again, thank you!

For some reason i cant move the bomb after the simulation is baked and even if i move the keyframes to move it the shards dont register it.

Hi again!

Here comes some of my ideas and proposals:
http://www.pasteall.org/pic/show.php?id=1835

I know it’s not perfect in any way, far from, but please tell me what you think!
My main thought was the features and the mockup is just a test to see how they could fit and where.

Thanks!

@peddie, wouldnt you put cutter/material/physics in the same group ? dividing them this way looks kinda messy.

havent been able to test this yet, but it sunds good so far.
plida, you plan to develop this further but without using booleans or will you continue on this road?

Would be great if you 2 could work together on this :slight_smile:

Hello, thanks for first replies.
Answers to questions:

Regarding blender not seeing the .zip. - you have to turn of filtering in blender file window, it’s the funnel icon in header. This should be fixed, since I guess addons will be often .zip. But otherwise, the new install system for addons works great :wink:

Regarding UI in operators - blenders ability to still edit actually only 1 object is kind of not nice. But it’s true, e.g. bomb properties could be rather in physics panels. Similar could possibly be done for groups of objects.
The script allready HAS function to assign a material to the new surface, but it isn’t enabled because you can’t browse object Id’s in operator properties(yet?)

I’m not planning to recode all features from the 2.49 script, e.g. the generative approach to crack generation will probably be gone, it was too slow and really sluggish. On the other side, I’d love to recode the image-based breaking and possibly voronoi structure. Image based not possible yet, no access to images and I don’t make hacks with using external libraries(or I do? :)).

and yes, another question, what software do people use to record tutorials on windows? I really got bad results from those I tried, and blender cancels it’s own recording relatively often.

http://camstudio.org/
Open source and great,
thanks for your work.

Hi again pildanovak!
All sounds good, I think that when Bullet becomes realtime (outside of game engine) we don’t need “Bomb” anymore since physics will interact with standard force fields like wind, turbulence.Vortex etc. Regarding my idea that particles could control wheter a shard is an “actor” or not (Like the smoke simulation does) would be sweet since you could take advantage of alot of things like emit on collisson, multiple fractions, and more. Also it would be easier to controll where the physics is going to happen. What do you think?

It would be awesome if we could figure out a userfriendly UI with all the settings in one place.

peddie,
The idea with forcefields sounds logical to me, but I don’t expect this bullet in standard blender soon.
but other things you mention, like emiting particles on collision, I have thought about allready and think they are doable, also this multiple fracture you mention, which is what I called hierarchical splitting in 2.49 and got it working, but without recording yet. This could be actually first thing to do now, also with recording visibility of objects, so you have just 1 object before explosion.

Btw, you CAN use rna functions in the game engine :wink: which is quite awesome And I hope that it’s at least for now the way to do things you mentioned.

Pildonobak,
I think you misunderstood me abit:
The bullet in standard has come along way(correct me if I’m wrong) there is a build on Graphicall with this enabled wich worked kind of well right now even.

I will try to explain what I meant with the particles:
Like smoke uses newborn particles for where to start emitting smoke, I’d like the shards to be “Actors” based on closest newborn particles. This way you do most of the settings with the particle system instead of the script itself.

If lets say I want to explode a certain part of a pillar, I first fractures it and all the shards is placed in a group(original object remains outside of group).
I then add a particle system to the original object (the untouch pillar) and paint particles (or add a vertex group) where I want the physics to happen. I tell the script wich particle system to use, and then where particles are born the closest shards from the group gets physics and fall down. This also lets us use the reactor particles (coming back soon) to activate physics for shards on collision. Hope I made myself a little bit clearer.

Here is a example workflow based on the a particle Idea and using the new Bullet outside of gameengine:

  1. Select Object to fracture.
  2. Add a particle system to the object
  3. Hit Fracture in the awesome “Fracture-UI” :slight_smile:
  4. Activate “Physics” and Acitvate “Activate by particles” (tell it to use the newly created particle system) in the “Fracture-UI”
  5. Press Alt-A and see the shards falling down whereever a particle is born.

Almost the same workflow as when using the smoke simulator.

The physic property could be an option in the fracture UI. e.g. start rigid body just on other object collision…
If you have a scene with 500 frames and you need to break the object at frame 300 with an other object smashing it… with the current game engine dependency is hard to get this, you need to bake the sim and move all the keyframes from each shard to frame 300…

Here is my new proposal:

http://www.pasteall.org/pic/show.php?id=1881

Explanation:
*Number of shards = Number of shards :).
*Shard Group = Group wich shards is going to be placed.
*Crack type = Defines how to make the cuts(Texture,voronai,spherical,spherical rough,plane,plane rough).
*Roughness = Defines how rough the cut is going to get.
*Inner-shard material = the material that the inside faces of shards get.
*Fracture = Cleans defined group, then makes the cuts and puts all the shards in the defined group (original object remains and is selected afterwards).
*Physics = if active the group becomes a “Physics Group” (From the build where Bullet can be run realtime outside of game engine).
*Start/End = Here you can define wich frame the shards is going to get physics and when to have it removed. When changed Remove all “Actor” ipos from shards, then loop thru Shards and add a “Actor ON” ipo on start and “Actor OFF” on end frame.
*Particles = Here you can define wich particle system(from the original object) is going to be used to activate physics for shards.
*Radius = Defines the radius for each particle. If a shard is in the radius of a particle when its born it gets “Actor” turned on and a Ipo placed.
*Recalculate = First removes all “Actor” ipos for shards, then loops thru the particle system and add “Actor ON” ipos to the Shards in radius of a newborn particle.

Hope this makes sense!

Thanks.