Fracture Voronoi

292 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.
flathole's picture

works in 2020

Fouinard's suggested fix to the script still works if your timeline is over 100.

ALZHEM's picture

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 :(

Fouinard's picture

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...

Gregsanders's picture

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.


Nick Wollage's picture

Thanks for this super

Thanks for this super script:)

JokerMartini's picture

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 (new site)

projectdelta6's picture


so I restarted max and then it works fine... odd
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

capture.png 762.13 KB
x_OL's picture


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! :)

we_shit_on_our_users_autodesk.jpg 1.12 MB
couchise's picture

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.

capture.jpg 175.75 KB
DavidAnatolie's picture

Works Great

Nice script, I just wish Autodesk can integrate something like this into 3ds Max, maybe inside the MassFX tools.

Comment viewing options

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