Fracture Voronoi
This script breaks any mesh while preserving its volume.
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.
Materials:
- 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.
Hierarchy:
- 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 :)
Attachment | Size |
---|---|
FractureVoronoi_v1.1.ms | 10.85 KB |
FractureVoronoi_v1.0.ms | 4.67 KB |
Comments
works in 2020
Fouinard's suggested fix to the script still works if your timeline is over 100.
Breaks in 2019
I was looking forward to use this script but sadly it gets sluggy, and nothing happens. It creates 10 objects, a plane and that's it. You have to kill the script for Max to go back to normal speed :(
By default pcloud particles
By default pcloud particles have a life of 100 frames, if your timeline is beyond that, the particles are deleted and the script can't get their position, you need to put your timeline between 0 & 100f or modify the script on line :
pSys = pcloud emitter:obj formation:3 total_number:nbParts quantityMethod:1 viewPercent:100 seed:(random 0 100) Display_Until:5000f life:5000f
now particles can be used until frame 5000...
Thanks for this script,
Thanks for this script, version 1.1 did not work for me but version 1.0 works perfectly. I will let you know if I can get the other one to work, I have to check a few settings.
Thanks

Thanks for this super
Thanks for this super script:)
The picture you posted is
The picture you (x_OL) posted is irrelevant. I don't understand why you posted it.
John Martini
Digital Artist
http://www.JokerMartini.com (new site)
error
**update**
so I restarted max and then it works fine... odd
**update**
Hi I used this(v1.1) on one project and it worked perfect...
Now on another project when I try to use it to break apart a sphere Max throws an error
---------------------------
MAXScript Rollout Handler Exception
---------------------------
-- No ""+"" function for undefined
on line 149(thePlane.pos = (aCoords[i] + aCoords[j]) / 2)
I don't know what is wrong
Awesome!
Very good function! Sanks!
This function can replace the Fracture function from reactor in older versions of Max.
But Autodesk inventing new useless features at this time! :)
https://www.linkedin.com/in/oleggee
https://sketchfab.com/oleggee
https://www.deviantart.com/z-gen/gallery/
help please, help
extra cool and useful script but, unfortunatly only 1.0 version work for me,
have an error message after applying the 1.1 version.
on the file attachements there is a screen shot of that message.
any body can help, please.
kind regards.
Works Great
Nice script, I just wish Autodesk can integrate something like this into 3ds Max, maybe inside the MassFX tools.