Skip to main content

Geometry FX nodes

Press Shift+A, or release a dragged wire on empty canvas, to open the node search ("Search nodes…").

In the tables, drag scale N describes drag sensitivity, not a maximum: a 200-pixel drag moves the value across the span from the minimum to N; keep dragging, or double-click and type, to reach the full registered numeric range. A dash in the bounds column means no scalar range is listed; it does not promise that every input type accepts unrestricted values.

Real-world Scale (present on all geometry nodes) is a three-state integer: −1 keeps the behaviour of materials saved before this control was added (default); 0 and 1 switch to the newer coordinate scaling. The exact effect of 0 versus 1 is runtime-unverified.


Fuzz​

Adds procedural microfibre sheen or strand-based fuzz on the surface. Wire the Base Shader input to the output of your surface BSDF; wire the Shader output directly to Material Output > Surface — no Mix Shader is needed. Mode selects sheen (shading-only) or full strand geometry. In sheen mode only Amount, Color, Roughness, Noise Amount and Noise Size (mm) apply. In strands mode, Amount, Noise Amount and Noise Size (mm) are not used; the strand rows (Length (mm) through Seed, Segments, Shape, Tip Ratio, Root Radius (mm), Colour Variation, Wetness, Wind, Sway (Hz), Wind Angle) apply, together with Color and Roughness. If Base Shader is empty, a default Principled BSDF is used. In strands mode, all inputs except Base Shader and Normal must be typed values; wiring a node into them makes the material fail to compile. Hide source object acts as a switch at or above 0.5 and has an effect only in strands mode.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
Base ShaderShader———
AmountFloat0.50 to 1—
ColorColour1, 1, 1——
RoughnessFloat0.50 to 1—
Noise AmountFloat0.250 to 1—
Noise Size (mm)Float20 to 1000000 (drag scale: 10)—
SegmentsInteger32 to 12—
ShapeChoicethick—thick, ribbon
Tip RatioFloat0.20 to 1—
Root Radius (mm)Float0.010 to 1000000 (drag scale: 0.1)—
Colour VariationFloat00 to 1—
WetnessFloat00 to 1—
WindFloat00 to 1—
Sway (Hz)Float0.80 to 1000000 (drag scale: 3)—
Wind AngleFloat0-180 to 180—
NormalVector0, 0, 0——
ModeChoicesheen—sheen, strands
Length (mm)Float1.50 to 1000000 (drag scale: 10)—
DensityFloat0.50 to 1000000 (drag scale: 1)—
ClumpFloat0.30 to 1—
NoiseFloat0.30 to 1—
SeedInteger00 to 1000000 (drag scale: 100)—
Hide source objectFloat00 to 1—
Effect ScaleFloat10.000001 to 1000000 (drag scale: 4)—
Real-world ScaleInteger-1-1 to 1—

Outputs

SocketType
ShaderShader

Flakes​

Adds reflective flake particles (metallic flake, snow, glitter) to the surface. Wire Base Shader to your surface BSDF and Shader directly to Material Output > Surface. Size Variation, Color B, Hue Jitter, Shape, Tilt, Animate and the animation rows (Source through Anim Count) have an effect only when Mode is geometry. In geometry mode, all settings except Base Shader and Normal must be typed values; wiring a node into them makes the material fail to compile. If Base Shader is empty, a default Principled BSDF is used. Hide source object acts as a switch at or above 0.5 and has an effect only in geometry mode.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
Base ShaderShader———
Size (mm)Float0.20 to 1000000 (drag scale: 2)—
DensityFloat0.50 to 1000000 (drag scale: 1)—
Depth (mm)Float0.020 to 1000000 (drag scale: 0.2)—
ColorColour0.9, 0.9, 0.9——
RoughnessFloat0.150 to 1—
SeedInteger00 to 1000000 (drag scale: 100)—
Size VariationFloat0.30 to 1—
Color BColour0.7, 0.7, 0.9——
Hue JitterFloat0.10 to 1—
ShapeChoicedisc—disc, square, hexagon, shard, crystal
TiltFloat0.30 to 1—
AnimateBooleanOff——
SourceChoicevolume—surface, volume, base
Speed (mm/s)Float100 to 1000000 (drag scale: 200)—
DirectionChoicedown—up, down, along_surface, custom
Direction XFloat0-1 to 1—
Direction YFloat0-1 to 1—
Direction ZFloat1-1 to 1—
SpreadFloat0.20 to 1—
GravityFloat0.10 to 1—
DragFloat0.80 to 1—
Lifetime (s)Float40.1 to 600 (drag scale: 30)—
Spawn Rate (/s)Float500 to 1000000 (drag scale: 500)—
RandomFloat0.50 to 1—
TurbulenceFloat0.60 to 1—
Turbulence Size (mm)Float200 to 1000000 (drag scale: 100)—
Turbulence SpeedFloat0.50 to 1000000 (drag scale: 10)—
SpinFloat10 to 1000000 (drag scale: 10)—
Size Over LifeChoiceconstant—constant, grow, shrink
Anim CountInteger20000 to 20000 (drag scale: 5000)—
NormalVector0, 0, 0——
ModeChoiceshading—shading, geometry
Hide source objectFloat00 to 1—
Effect ScaleFloat10.000001 to 1000000 (drag scale: 4)—
Real-world ScaleInteger-1-1 to 1—

Outputs

SocketType
ShaderShader

Water Droplets​

Places animated or static water droplets on the surface. Wire Base Shader to your surface BSDF and Shader directly to Material Output > Surface. Animate and the animation rows (Source through Anim Count, Motion through Sweep, Loop (s), Coating Mask, Mask Coverage, Mask Size (mm) and Bake to (s)) have an effect only when Mode is geometry. Fog, Contact Angle, the Micro rows and the Level rows also work in shading mode; Pre-roll (s) also offsets the Micro beads. In geometry mode, all settings except Base Shader, Normal and Fog must be typed values; wiring a node into them makes the material fail to compile. In either mode, the Micro and Level rows must also be typed values. Wet Mask is the droplet coverage (0–1); the node uses it through Wetting to make the base glossier where wet. Contact Angle: 0 uses Height to determine bead shape; any value above 0 sets the bead shape directly and Height is ignored. Motion selects free-flight or surface-runoff physics. If Base Shader is empty, a default Principled BSDF is used. Hide source object acts as a switch at or above 0.5 and has an effect only in geometry mode.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
Base ShaderShader———
Size (mm)Float20 to 1000000 (drag scale: 20)—
DensityFloat0.40 to 1000000 (drag scale: 1)—
HeightFloat0.60 to 1—
IORFloat1.331 to 3 (drag scale: 2)—
SeedInteger00 to 1000000 (drag scale: 100)—
StreaksBooleanOff——
Streak Length (mm)Float80 to 1000000 (drag scale: 50)—
Streak StrengthFloat0.50 to 1—
WettingFloat10 to 1—
AnimateBooleanOff——
SourceChoicesurface—surface, volume, base, cells
Speed (mm/s)Float50 to 1000000 (drag scale: 200)—
DirectionChoicealong_surface—up, down, along_surface, custom
Direction XFloat0-1 to 1—
Direction YFloat0-1 to 1—
Direction ZFloat1-1 to 1—
SpreadFloat0.20 to 1—
GravityFloat0.50 to 1—
DragFloat0.10 to 1—
Lifetime (s)Float40.1 to 600 (drag scale: 30)—
Spawn Rate (/s)Float500 to 1000000 (drag scale: 500)—
RandomFloat0.50 to 1—
TurbulenceFloat00 to 1—
Turbulence Size (mm)Float200 to 1000000 (drag scale: 100)—
Turbulence SpeedFloat0.50 to 1000000 (drag scale: 10)—
SpinFloat00 to 1000000 (drag scale: 10)—
Size Over LifeChoiceconstant—constant, grow, shrink
Anim CountInteger6000 to 20000 (drag scale: 5000)—
MotionChoicerunoff—free, runoff
FrictionFloat0.50 to 1—
Texture (mm)Float50 to 1000000 (drag scale: 20)—
ReleaseFloat10 to 1000000 (drag scale: 10)—
MeanderFloat0.40 to 1—
MergeBooleanOn——
SatellitesFloat0.50 to 1—
Sat. Spacing (mm)Float60 to 1000000 (drag scale: 30)—
TrailsFloat0.60 to 1—
Trail Fade (s)Float40 to 1000000 (drag scale: 20)—
Trail PointsInteger642 to 256 (drag scale: 128)—
Trail clearingBooleanOn——
Return time (s)Float200 to 3600 (drag scale: 60)—
Clear widthFloat10 to 100 (drag scale: 3)—
Merge Time (s)Float0.30 to 2 (drag scale: 1)—
ElongationFloat0.60 to 1—
Satellite SizeFloat0.30.05 to 0.6—
Size RandomFloat0.50 to 1—
Speed RandomFloat0.50 to 1—
Trail FollowFloat0.70 to 1—
GrowthFloat0.30 to 1—
Film LossFloat0.40 to 1—
NucleateBooleanOff——
SweepBooleanOn——
FogFloat00 to 1—
Loop (s)Float00 to 600 (drag scale: 120)—
Pre-roll (s)Float00 to 120 (drag scale: 30)—
Contact AngleFloat00 to 170 (drag scale: 150)—
Coating MaskFloat00 to 1—
Mask CoverageFloat0.50 to 1—
Mask Size (mm)Float100 to 1000000 (drag scale: 100)—
Bake to (s)Float00 to 120 (drag scale: 30)—
MicroBooleanOff——
Micro Size (mm)Float0.350 to 1000000 (drag scale: 1)—
Micro DensityFloat0.80 to 1—
Micro GrowthFloat0.50 to 1000000 (drag scale: 2)—
Stagger (s)Float200 to 1000000 (drag scale: 60)—
Hand-offFloat21 to 6 (drag scale: 4)—
LevelBooleanOff——
Level FractionFloat0.80 to 1—
Lower LevelFloat00 to 1—
Level Band (mm)Float50 to 1000000 (drag scale: 30)—
Level SideChoicebelow—below, above
NormalVector0, 0, 0——
ModeChoiceshading—shading, geometry
Hide source objectFloat00 to 1—
Effect ScaleFloat10.000001 to 1000000 (drag scale: 4)—
Real-world ScaleInteger-1-1 to 1—

Outputs

SocketType
ShaderShader
Wet MaskFloat

Bubbles​

Places animated or static bubbles on or inside the surface (beer foam, champagne, bath). Wire Base Shader to your surface BSDF and Shader directly to Material Output > Surface. Animate, Source and the other animation controls have an effect only when Mode is geometry. In geometry mode, all settings except Base Shader and Normal must be typed values; wiring a node into them makes the material fail to compile. Foam adds a layer of foam bubbles above the bubble field (Foam Placement: horizontal or surface); it has an effect only when Mode is geometry. If Base Shader is empty, a default Principled BSDF is used. Hide source object acts as a switch at or above 0.5 and has an effect only in geometry mode. With Source sites, bubbles rise in streams from nucleation points on the part; Sites through Pop set those streams. Depth (mm) applies only in geometry mode.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
Base ShaderShader———
Size (mm)Float10 to 1000000 (drag scale: 20)—
DensityFloat0.30 to 1000000 (drag scale: 1)—
Body IORFloat1.51 to 3 (drag scale: 2)—
SeedInteger00 to 1000000 (drag scale: 100)—
AnimateBooleanOff——
SourceChoicevolume—surface, volume, base, sites
Speed (mm/s)Float200 to 1000000 (drag scale: 200)—
DirectionChoiceup—up, down, along_surface, custom
Direction XFloat0-1 to 1—
Direction YFloat0-1 to 1—
Direction ZFloat1-1 to 1—
SpreadFloat0.20 to 1—
GravityFloat00 to 1—
DragFloat0.10 to 1—
Lifetime (s)Float40.1 to 600 (drag scale: 30)—
Spawn Rate (/s)Float500 to 1000000 (drag scale: 500)—
RandomFloat0.50 to 1—
TurbulenceFloat0.20 to 1—
Turbulence Size (mm)Float200 to 1000000 (drag scale: 100)—
Turbulence SpeedFloat0.50 to 1000000 (drag scale: 10)—
SpinFloat00 to 1000000 (drag scale: 10)—
Size Over LifeChoicegrow—constant, grow, shrink
Anim CountInteger15000 to 20000 (drag scale: 5000)—
SitesInteger401 to 5000 (drag scale: 200)—
Site Rate (/s)Float40 to 1000000 (drag scale: 20)—
Rate RandomFloat0.50 to 1—
Hold (s)Float10 to 1000000 (drag scale: 5)—
Hold RandomFloat0.50 to 1—
WobbleFloat0.30 to 1—
GrowFloat0.30 to 1000000 (drag scale: 5)—
PopBooleanOn——
FoamBooleanOff——
Foam Depth (mm)Float150 to 1000000 (drag scale: 40)—
Foam PlacementChoicehorizontal—horizontal, surface
Foam LevelFloat10 to 1—
Foam Offset (mm)Float0-1000000 to 1000000 (drag scale: 40)—
Foam Slope LimitFloat450 to 90—
Foam Size (mm)Float0.60 to 1000000 (drag scale: 3)—
Foam Size RandomFloat0.50 to 1—
Foam CountInteger40000 to 100000 (drag scale: 20000)—
Foam Pop (s)Float60 to 1000000 (drag scale: 30)—
Foam DrainFloat0.050 to 1—
NormalVector0, 0, 0——
ModeChoiceshading—shading, geometry
Depth (mm)Float50 to 1000000 (drag scale: 20)—
Hide source objectFloat00 to 1—
Effect ScaleFloat10.000001 to 1000000 (drag scale: 4)—
Real-world ScaleInteger-1-1 to 1—

Outputs

SocketType
ShaderShader

Foam​

Generates a procedural foam layer for liquid surfaces (soap, beer head, ocean surf). Unlike other geometry nodes, the first input is named Base (not Base Shader); wire your surface BSDF into Base. Wire Shader directly to Material Output > Surface. If Base is empty, a default Principled BSDF is used. Animate enables time-evolving foam dynamics. Coverage: 0 = Drink head (foam on a horizontal surface), 1 = Object surface. Displacement chooses which surfaces the foam deforms: 0 = top only, 1 = all sides, 2 = none; a drink head (Coverage 0) supports 0 or 2. Bubble detail: 0 = Classic, 1 = Cellular (Full), 2 = Cellular (Fast); Cellular modes need a closed mesh. Level, Height (mm), Cling, Previous level, Film (mm), Patch (mm), Fade (s) and Hide source have an effect only with Coverage 0; with Coverage 1 the source object is hidden automatically. All settings except Base must be typed values; wiring a node into them makes the material fail to compile.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
BaseShader———
LevelFloat10 to 1—
Height (mm)Float150 to 1000000 (drag scale: 40)—
Offset (mm)Float0-1000000 to 1000000 (drag scale: 10)—
DensityFloat10 to 100 (drag scale: 4)—
Cell (mm)Float0.60 to 1000000 (drag scale: 5)—
Size variationFloat0.50 to 1—
DimplesFloat0.50 to 1—
Dimple (mm)Float20 to 1000000 (drag scale: 10)—
Depth (mm)Float0.80 to 1000000 (drag scale: 5)—
Dimple rimFloat0.150 to 1—
Uneven (mm)Float1.50 to 1000000 (drag scale: 10)—
Wave (mm)Float120 to 1000000 (drag scale: 40)—
WetnessFloat0.350 to 1—
CreaminessFloat0.650 to 1—
RoughnessFloat0.30 to 1—
VolumeBooleanOff——
Scatter (mm)Float10 to 1000000 (drag scale: 10)—
AnisotropyFloat0.15-0.99 to 0.99—
SeedInteger70 to 1000000 (drag scale: 100)—
ResolutionInteger12816 to 512 (drag scale: 256)—
AnimateBooleanOff——
Pop (/s)Float0.20 to 100 (drag scale: 2)—
Recover (s)Float20.01 to 1000000 (drag scale: 10)—
Drain (/s)Float0.0050 to 100 (drag scale: 0.1)—
Drift (mm/s)Float0.10 to 1000000 (drag scale: 5)—
Pre-roll (s)Float00 to 600 (drag scale: 60)—
ClingFloat00 to 1—
Previous levelFloat10 to 1—
Film (mm)Float0.150 to 1000000 (drag scale: 1)—
Patch (mm)Float40 to 1000000 (drag scale: 20)—
Fade (s)Float600 to 1000000 (drag scale: 120)—
Hide sourceBooleanOff——
CoverageInteger00 to 1—
DisplacementInteger00 to 2—
StrengthFloat10 to 10 (drag scale: 2)—
Depth variationFloat00 to 1—
Variation (mm)Float80 to 1000000 (drag scale: 30)—
Detail (mm)Float00 to 1000000 (drag scale: 2)—
Detail size (mm)Float10 to 1000000 (drag scale: 5)—
Top angleFloat600 to 90—
Top blendFloat0.20.001 to 1—
Bubble detailInteger00 to 2—
Bubble wallsFloat0.060.01 to 0.3 (drag scale: 0.15)—
Medium bubblesFloat0.350 to 1—
Large bubblesFloat0.150 to 1—
Wet highlightsFloat0.20 to 1—
Film roughnessFloat0.080.001 to 1 (drag scale: 0.3)—
ColourColour0.97, 0.95, 0.9——
Effect ScaleFloat10.000001 to 1000000 (drag scale: 4)—
Real-world ScaleInteger-1-1 to 1—

Outputs

SocketType
ShaderShader

Displace​

Applies procedural displacement to the surface. Wire the Displacement output directly to Material Output > Displacement — this output is a Vector, not a Shader. Method selects bump (normal-only) or true mesh displacement; Mesh Scale sets how finely the mesh is diced when Method is true (range 0.25–64; smaller values dice finer). Method and Mesh Scale must be typed values; wiring them makes the material fail to compile. Height works only when wired: a connected texture replaces the built-in Pattern; its typed value is not used.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
HeightFloat00 to 1—
PatternChoicenoise—noise, voronoi
Size (mm)Float100 to 1000000 (drag scale: 100)—
Amount (mm)Float1-1000000 to 1000000 (drag scale: 5)—
MidlevelFloat0.50 to 1—
MethodChoicebump—bump, true
Mesh ScaleFloat80.25 to 64 (drag scale: 16)—
Effect ScaleFloat10.000001 to 1000000 (drag scale: 4)—
Real-world ScaleInteger-1-1 to 1—

Outputs

SocketType
DisplacementVector

Fur​

Adds procedural fur or animal hair to the surface. Wire Base Shader to your surface BSDF and Shader directly to Material Output > Surface. Gravity, Wind and Sway control strand physics; Colour Variation and Tip Color control strand appearance. If Base Shader is empty, a default Principled BSDF is used. All inputs except Base Shader and Normal must be typed values; wiring a node into them makes the material fail to compile. Hide source object acts as a switch at or above 0.5.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
Base ShaderShader———
Length (mm)Float100 to 1000000 (drag scale: 50)—
Length VariationFloat0.30 to 1—
DensityFloat0.50 to 1000000 (drag scale: 1)—
ClumpFloat0.50 to 1—
NoiseFloat0.30 to 1—
GravityFloat0.30 to 1—
Thickness (mm)Float0.050 to 1000000 (drag scale: 0.5)—
ColorColour0.35, 0.22, 0.12——
Tip ColorColour0.6, 0.45, 0.3——
RoughnessFloat0.30 to 1—
Colour VariationFloat00 to 1—
WetnessFloat00 to 1—
WindFloat00 to 1—
Sway (Hz)Float0.80 to 1000000 (drag scale: 3)—
Wind AngleFloat0-180 to 180—
SeedInteger00 to 1000000 (drag scale: 100)—
SegmentsInteger62 to 16—
ShapeChoicethick—thick, ribbon
Tip RatioFloat0.20 to 1—
NormalVector0, 0, 0——
Hide source objectFloat00 to 1—
Effect ScaleFloat10.000001 to 1000000 (drag scale: 4)—
Real-world ScaleInteger-1-1 to 1—

Outputs

SocketType
ShaderShader

Hair​

Adds procedural hair (scalp hair, beard) to the surface. Wire Base Shader to your surface BSDF and Shader directly to Material Output > Surface. Clump groups strands together; Gravity and Wind control drape and sway dynamics. If Base Shader is empty, a default Principled BSDF is used. All inputs except Base Shader and Normal must be typed values; wiring a node into them makes the material fail to compile. Hide source object acts as a switch at or above 0.5.

Inputs

SocketTypeDefaultRegistered numeric boundsChoices
Base ShaderShader———
Length (mm)Float600 to 1000000 (drag scale: 300)—
Length VariationFloat0.20 to 1—
DensityFloat0.70 to 1000000 (drag scale: 1)—
ClumpFloat0.70 to 1—
NoiseFloat0.20 to 1—
GravityFloat0.60 to 1—
Thickness (mm)Float0.060 to 1000000 (drag scale: 0.5)—
ColorColour0.1, 0.06, 0.03——
Tip ColorColour0.2, 0.12, 0.06——
RoughnessFloat0.250 to 1—
Colour VariationFloat00 to 1—
WetnessFloat00 to 1—
WindFloat00 to 1—
Sway (Hz)Float0.80 to 1000000 (drag scale: 3)—
Wind AngleFloat0-180 to 180—
SeedInteger00 to 1000000 (drag scale: 100)—
SegmentsInteger102 to 24—
ShapeChoicethick—thick, ribbon
Tip RatioFloat0.20 to 1—
NormalVector0, 0, 0——
Hide source objectFloat00 to 1—
Effect ScaleFloat10.000001 to 1000000 (drag scale: 4)—
Real-world ScaleInteger-1-1 to 1—

Outputs

SocketType
ShaderShader