Fracture Voronoi

284 votes

This script breaks any mesh while preserving its volume.

Additional Info: 

v1.0: The object is broken in a number of chunks equal to 'Nb Parts' to the power of 'Iterations', using Voronoi cells. The final number appears on the 'Break' button.
The creation process is visible in the viewport.
For a similar result, it is faster to use several iterations with a small number of parts than creating all the parts in one iteration.
Note that the original object is just hidden, not deleted.

v1.1: In this version, the code has been improved and runs much faster. But there is no viewport feedback any more.
- the outer faces keep their original material IDs and the new faces are assigned a unique ID. The value that appears by default is the highest ID in use (by the original object) + 1.
- mapping coordinates (if any) are preserved and somehow 'projected' onto the new faces.
- an extra planar mapping is applied to all the pieces at once and set on its own channel, typically for use with 3D procedural maps, so the pattern flows continuously from piece to piece but sticks to them when they are moved apart.
- when using several iterations, it is possible to keep the intermediate generations of parts.
- when linked, each part is parented to the one it is derived from.
- generations are set on their own layers, which are hidden except for the last one.

Enjoy :)

FractureVoronoi_v1.1.ms10.85 KB
FractureVoronoi_v1.0.ms4.67 KB


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Garp's picture

Thanks for the kind words,

Thanks for the kind words, guys and girls. That's really nice!

@drummond: the cell centers are generated at random inside the object's volume and true voronoi cells are created from them. If there's more than 1 iteration, the process is repeated. So only parts derived from a same previous part (from the previous iteration) are correct voronoi cells in regard to each other.
If you need control over the cell centers, I have a previous script that accepts coordinates from a text file. Look for 'Voronoi Cells'. That script was experimental. So it's quite slow. But it gets the job done.

drummond's picture

Hi Garp, is this true

Hi Garp,

is this true Voronoi sub-div? How are the spatial centre points established from the users selected objects?

Nice script regardless

hawkarena's picture

Just pick click & break its

Just pick click & break its amazing, thank u very much.

Salve of Allah

Salve of Allah

capcaverna's picture

simply usefull, niceeeeeeeeee

simply usefull, niceeeeeeeeee

The life is Good

99019803's picture

GOOD,thanks very much

GOOD,thanks very much

kutsanan's picture

Thanks for

Thanks for it i ll add some images soon...

Michele71's picture

The weather in Rome is

The weather in Rome is beautiful (a bit less for the earthquake in Abruzzo). When you return to Rome let me know!


Garp's picture

Ciao Michele! How's the

Ciao Michele!
How's the weather in Roma? (I was there 2 weeks ago)

Michele71's picture

Truly a great and useful

Truly a great and useful script! thanks Garp!! :)

Grazie, grazie e ancora grazie!!!

Garp's picture

Thanks for the thanks,

Thanks for the thanks, people :)

aphexx, the script doesn't need any other file and it was written with max 9 (not 2009), so it's not a compatibility problem.
Did that happen once or every time you run it?
Also, does it happen as soon as you click on the Break button or does the progress bar move a little before it stops?

The script uses a PCloud particle system to gather coordinates within the object's volume. It looks like it didn't create the right amount of particles, so the array of coordinates gets some undefined values.
You're not having problems with particles, by any chance, like a missing dll?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.