# voronoi3d Creats a 3D version of [Voronoi diagram](https://en.wikipedia.org/wiki/Voronoi_diagram). The initial space for each cell is calculated automatically from the given points by the following code: xs = [for(p = points) p[0]]; ys = [for(p = points) abs(p[1])]; zs = [for(p = points) abs(p[2])]; space_size = max([(max(xs) - min(xs) / 2), (max(ys) - min(ys)) / 2, (max(zs) - min(zs)) / 2]); // cube([space_size, space_size * 2, space_size * 2]); The preview or rendering of 3D Voronoi is slow. If you want to use this module, render and export the 3D Voronoi model first. Then, `import` the model to do what you want. **Since:** 1.3. ## Parameters - `points` : Points for each cell. - `spacing` : Distance between cells. Default to 1. ## Examples include ; r = 30; zas = rands(0, 359, 12); yas = rands(0, 179, 12); points = [ for(i = [0:len(zas) - 1]) [ r * cos(yas[i]) * cos(zas[i]), r * cos(yas[i]) * sin(zas[i]), r * sin(yas[i]) ] ]; #for(pt = points) { translate(pt) cube(1); } intersection() { sphere(r); voronoi3d(points); } ![voronoi3d](images/lib-voronoi3d-1.JPG) If you render, export and save the previous model as `voronoi3d.stl`, the following code will generate a Voronoi sphere. r = 30; thickness = 2; difference() { sphere(r); scale(1.01) import("voronoi3d.stl"); sphere(r - thickness); } ![voronoi3d](images/lib-voronoi3d-2.JPG)