Fracture Voronoi

290 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

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?

aphexx's picture

hi thanks for your script.

hi thanks for your script. i'm using max 9 and get a "--No ""+""function for undefined" error. in this line:

thePlane.pos = (aCoords[i] + aCoords[j]) / 2

i gt it, when pressing "break in xx" button. the objects duplicates then a couple of times. but the script crashes then. 

do i have to install some supporting scripts? or is it simply not functioning under max 9?
thanx anyway!


zjlong's picture

Thanks for sharing! It is a

Thanks for sharing! It is a very useful tool for our modeling work.

Garp's picture

thanks for trying it :)

thanks for trying it :)

zwick's picture

nice plugin. it creates

nice plugin. it creates pretty clean geo, and it free.
thanks, Garp

Comment viewing options

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