Documentation / Node reference / geo nodes

geo/VoronoiCells

Breaks the mesh on input 0 into Voronoi cells around the points of input 1: as pieces, as the walls between them, or as a lattice of struts.

Topology

Each point gets the part of the mesh that is closer to it than to any other point: its cell. The walls between cells are flat and sit halfway between neighbouring points.

Input 0 must be a closed mesh: the cells are cut out of its volume. Input 1 is the points, for example from geo/Scatter in a volume. Evenly spaced points give cells of similar size: set geo/Scatter's distribution to POISSON_DISK, or relax the points with geo/PointRelax.

With many points, put geo/VoronoiNeighbours between the points and input 1: each cell then knows its neighbours and is built much faster. The result is the same. Segments on input 1 are always read as those neighbours, so plug geo/VoronoiNeighbours straight in, and bring the points of a line in as points (geo/Line's `as points`).

PIECES breaks the mesh into one object per cell, the classic shattered look. Each piece carries a cellId attribute, the index of its point, and its cut faces are in the group 'cut', which is how an inside material is assigned to them. A point whose cell misses the mesh gives no piece.

WALLS keeps the walls between the cells instead, as one object: a honeycomb, or a foam with roundingRadius. STRUTS keeps a tube along every edge of the cells, as one object: a lattice.

The pieces share their points between faces, so the normals are smoothed across the sharp edges. Add a geo/Facet after this node for flat walls that shade flat.

Parameters

Name Type What it does
mode UInt8 PIECES · WALLS · STRUTS PIECES: one object per cell. WALLS: the walls between the cells, as one object. STRUTS: a tube along every edge of the cells, as one object.
gap Float PIECES only: space between neighbouring pieces, in world units. 0 leaves them touching. Each wall moves back by half the gap, so small pieces can shrink away entirely when the gap is large.
wallThickness Float WALLS only: how thick the walls between the cells are, in world units. Each cell is shrunk by half of it before it is carved out of the mesh.
roundingRadius Float Rounds the edges and corners of every cell, as if rolled with a ball of this radius, in world units. 0 keeps the cells sharp. The flat walls stay where they are and the outside of the mesh is not rounded. In WALLS mode it rounds the holes, which gives a foam.
roundingSegments UInt32 How smooth the rounded edges are. More segments give rounder edges and more triangles, and take longer.
strutRadius Float STRUTS only: the radius of the tube along each cell edge, in world units. Where tubes meet, their round ends make a round joint.
strutSegments UInt32 STRUTS only: how round the tubes are. More segments give rounder tubes and more triangles, and take longer.

Examples

Scenes you can open in the editor that teach this node.

See also

This page is generated from the engine, so it describes the release you can download. The same text is in the editor's Help panel next to the node itself.