Documentation / Node reference / geo nodes

geo/SDFTPMS

Fills space with a lattice of triply periodic minimal surfaces, the gyroid and its relatives.

Sdf Primitives

Creates a lattice as SDF geometry: a saddle-shaped surface that repeats along all three axes and splits space into two channels woven through each other. Pick the surface with `type`. The gyroid is the usual choice; Schwarz P has round openings on the cube faces, Schwarz D (diamond) is the stiffest of the three classics, and Neovius, Lidinoid, Split P and Fischer-Koch S are the denser, more intricate ones.

The `form` decides what is solid. SHEET makes a wall of `thickness` along the surface and leaves both channels open, which is what a heat exchanger or a light infill wants. SOLID fills one channel and leaves the other empty, and `level` moves its skin out (positive, a fatter solid) or in (negative, a thinner one).

`cell` is the size of one repeat along each axis, so different values per axis stretch the cells. The lattice is centred on the origin; move it with geo/Transform.

**`thickness` and `level` are real distances.** The raw formulas make walls that vary up to six times in thickness across a cell. This node measures them along the surface instead, so the walls come out as thick as you ask. A thin wall (a twentieth of a cell) is within 2 percent on the gyroid, both Schwarz surfaces and Neovius, and within 6 percent on the others. Thicker walls come out a little thin: at a tenth of a cell, 3 to 6 percent for the gyroid and both Schwarz surfaces, more for the denser ones, whose channels start to close. The field stays safe to march however thick the wall, so nothing is missed in the preview.

The lattice is infinite, so boundsSize and boundsCenter declare where it is displayed. To fill a part, intersect it with the part in a geo/SDFBoolean; to make a shell with a lattice inside, union that with a geo/SDFOnion of the part.

Parameters

Name Type What it does
type UInt8 GYROID · SCHWARZ_P · SCHWARZ_D · NEOVIUS · LIDINOID · SPLIT_P · FISCHER_KOCH_S Which surface the lattice is made of.
form UInt8 SHEET · SOLID SHEET makes a wall along the surface with both channels open. SOLID fills one channel and leaves the other empty.
cell Vector3 Size of one repeat of the lattice along each axis.
thickness Float Thickness of the wall, as a distance. Used by the SHEET form.
level Float How far the skin of the SOLID form is moved out from the surface, as a distance. Positive makes the solid fatter, negative thinner. Past about a tenth of a cell either way, the Lidinoid, Neovius and Split P channels start to pinch shut.
boundsSize Vector3 Size of the displayed region (the lattice itself is infinite).
boundsCenter Vector3 Center of the displayed region. Moving it slides the window over the lattice, it does not move the lattice.

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.