AO Studio Tools

ZenGrove

Built to move. Down to the last leaf.

Overview

Built to move. Down to the last leaf.

The RC.4 reference: 51 nodes, 892 settings and short WebM demos. Explore GameDynamics, joint previews, skeletal export and per-leaf random vertex colors. Requires AO.Hub 1.6.6 or later.

View product and license details →

Asset Array

Distributes captured meshes, generated leaves or nested assemblies into reusable asset arrangements. Build radial flowers, rows, grids, spirals, helices, phyllotaxis patterns or repeated elements along curves, with independent source choice and seeded transforms.

Reference: ZenGrove 1.0.0-rc.4 · 22 October 2026 · 60 settings. Requires AO.Hub 1.6.6 or later.

Connect into this node

Assets (multiple connections) · Curves

Continue from this node

Assets

Start with a visible result

Connect Asset Generator or Asset Collection to Assets, then connect Asset Array.assets to Output.assets. Build Preview to see a radial arrangement. Use Direct Assets = All Variants on Output to compare variants with spacing.

Seven layouts

Radial repeats Count elements per ring. Linear offers fixed distance, fitted length and source-bounds spacing. Grid uses X/Y/Z counts. Spiral and Helix share radius and height controls: equal radii make a cylindrical helix, while Height = 0 makes a planar spiral. Phyllotaxis creates a golden-angle disk. Curve needs a Curve Input connection and places Count elements per curve by sampled arc length; closed curves do not duplicate their endpoint.

Choose sources, then place them

Connect one or more asset collections. Their connection order and internal order define the one-based source numbers. Weighted Random needs at least one positive source weight. A source can itself be an entire array or assembly; selecting it keeps all its members together.

Local transforms

Source Pivot and Normalize Size prepare each source, followed by Source Offset, element scale and XYZ rotation, layout orientation, layout position and Assembly Pivot. For generated leaves the length axis is +X, width is +Z and normal is +Y. Source Forward X and Source Up Y match that convention.

Repeatable variation

Array Seed is independent of the tree seed. Increasing Variant Count preserves earlier variants. Changing Count redistributes the layout while retaining random values for existing stable slots. Random position, rotation, scale and source selection do not consume each other’s random stream.

Reusable assemblies or separate elements

Assembly produces one asset per variant; Elements exposes individual placements for selection downstream. Collections remain pools of choices rather than an instruction to emit every variant. Use Asset Assemble to combine several input collections deliberately.

Nested limits and output

Arrays are limited to 100,000 placements and 100,000 expanded terminal parts across their variants. Output and Game Output apply a separate Asset Part Limit including downstream copies. Instance Assets controls final instancing; static mesh output bakes the result and game atlases process the terminal source assets.

Watch the Asset Array settings tour

Current Maya controls, including conditional settings. Each view stays on screen for one second (three views take three seconds); pause or choose a group to inspect it.

The video loads when you play it. Readable still views and explanations follow below.

Setup

Asset Array node with its setup settings in ZenGrove
ZenGrove settings excerpt · Setup · Open image for full size
Asset Name

Names the generated collection and its numbered asset variants. Use a clear name such as Petal Ring or Fern Layer to recognize the result downstream.

Default: Array

Distribution (1)

Asset Array node with its distribution (1) settings in ZenGrove
ZenGrove settings excerpt · Distribution (1) · Open image for full size
Distribution

Chooses Radial rings, a Linear row, a three-dimensional Grid, a Spiral or Helix, a Phyllotaxis disk, or even spacing along captured Curves. Each mode reveals its own placement controls.

Options: Radial · Linear · Grid · Spiral · Helix · Phyllotaxis · Curve

Default: Radial

Count

Number of placements in one distribution. Radial uses this count per ring; Curve uses it per connected curve. Grid uses Count X, Y and Z instead. Zero produces no placements.

Available when Distribution is Radial or Linear or Spiral or Helix or Phyllotaxis or Curve.

Default: 12

Array Axis

Chooses the axis of a linear row or the axis around which radial, spiral and phyllotaxis layouts turn. It also provides the orientation up direction for Grid and Curve; it does not rotate a grid or the captured curve coordinates.

Options: X · Y · Z

Default: Y

Radius

Sets the first ring or spiral radius. In Phyllotaxis it controls the outer disk size, with placements spreading outward from the center.

Available when Distribution is Radial or Spiral or Helix or Phyllotaxis.

Default: 1

Start Angle

Rotates the starting position of Radial, Spiral, Helix or Phyllotaxis placement around Array Axis, in degrees.

Available when Distribution is Radial or Spiral or Helix or Phyllotaxis.

Default: 0

Angle Range

Angular span of each radial ring. A full 360-degree ring avoids a duplicate endpoint. Smaller spans include both ends; a negative angle reverses the direction and its tangent orientation.

Available when Distribution is Radial.

Default: 360

Rings

Number of radial rings. Each ring contains Count placements, so increasing both multiplies the total number of elements.

Available when Distribution is Radial.

Default: 1

Distribution (2)

Asset Array node with its distribution (2) settings in ZenGrove
ZenGrove settings excerpt · Distribution (2) · Open image for full size
Radius per Ring

Radius added for each successive radial ring. Positive values expand outward; negative values shrink inward, but no ring may end with a negative radius.

Available when Distribution is Radial.

Default: 0.25

Height per Ring

Distance added along Array Axis for each successive radial ring. Use it to stack layers or combine it with radius changes for a stepped cone.

Available when Distribution is Radial.

Default: 0

Angle per Ring

Additional angle in degrees for each successive radial ring. Offset neighboring layers to stagger petals or leaves.

Available when Distribution is Radial.

Default: 15

Input

Asset Array node with its input settings in ZenGrove
ZenGrove settings excerpt · Input · Open image for full size
Source Selection

Fixed repeats one source; Cycle visits all sources in order; Weighted Random respects source weights; Sequence repeats your source-number list. Sources follow connection order, then order within each collection.

Options: Fixed · Cycle · Weighted Random · Sequence

Default: Cycle

Placement (1)

Asset Array node with its placement (1) settings in ZenGrove
ZenGrove settings excerpt · Placement (1) · Open image for full size
Source Pivot

Authored uses the captured rotate pivot; Origin uses the source-local origin; Center uses the bounds center; Base uses the center of the minimum-Y bound. The original scene translation is not used as an array offset.

Options: Authored · Origin · Center · Base

Default: Authored

Normalize Size

Zero preserves source dimensions. A positive value fits the longest source bounding-box side to that length, before applying the collection asset Scale and the array transforms.

Default: 0

Source Offset X

Offsets the prepared source along local X, after source pivot and size normalization and before per-element transforms and layout orientation.

Default: 0

Source Offset Y

Offsets the prepared source along local Y, after source pivot and size normalization and before per-element transforms and layout orientation.

Default: 0

Source Offset Z

Offsets the prepared source along local Z, after source pivot and size normalization and before per-element transforms and layout orientation.

Default: 0

Assembly Pivot X

Places the finished assembly origin at this X coordinate. Moving the pivot shifts all parts by the opposite amount while preserving their relative arrangement.

Default: 0

Assembly Pivot Y

Places the finished assembly origin at this Y coordinate. Moving the pivot shifts all parts by the opposite amount while preserving their relative arrangement.

Default: 0

Placement (2)

Asset Array node with its placement (2) settings in ZenGrove
ZenGrove settings excerpt · Placement (2) · Open image for full size
Assembly Pivot Z

Places the finished assembly origin at this Z coordinate. Moving the pivot shifts all parts by the opposite amount while preserving their relative arrangement.

Default: 0

Orientation (1)

Asset Array node with its orientation (1) settings in ZenGrove
ZenGrove settings excerpt · Orientation (1) · Open image for full size
Orientation

Source preserves the source orientation. Outward points away from the radial center; Inward reverses it; Tangent follows the layout direction. For Linear and Curve, outward follows their travel direction. Grid uses positive X for outward and tangent.

Options: Source · Outward · Inward · Tangent

Default: Outward

Source Forward

Local source axis to align with the chosen layout direction. For automatic orientation it must differ from Source Up. Source orientation ignores both alignment axes.

Options: X · Y · Z

Default: X

Source Up

Local source axis used to keep automatic orientation upright relative to the layout. Choose a different axis from Source Forward; when directions become parallel, a stable alternate up direction is used.

Options: X · Y · Z

Default: Y

Rotation X

Base rotation of every source around local X, in degrees. Rotation per Element and random rotation add to this value before layout orientation.

Default: 0

Rotation Y

Base rotation of every source around local Y, in degrees. Rotation per Element and random rotation add to this value before layout orientation.

Default: 0

Rotation Z

Base rotation of every source around local Z, in degrees. Rotation per Element and random rotation add to this value before layout orientation.

Default: 0

Rotation per Element X

Adds this many degrees around local X for each consecutive element: the first adds zero, the next adds one step, then two steps, and so on.

Default: 0

Orientation (2)

Asset Array node with its orientation (2) settings in ZenGrove
ZenGrove settings excerpt · Orientation (2) · Open image for full size
Rotation per Element Y

Adds this many degrees around local Y for each consecutive element: the first adds zero, the next adds one step, then two steps, and so on.

Default: 0

Rotation per Element Z

Adds this many degrees around local Z for each consecutive element: the first adds zero, the next adds one step, then two steps, and so on.

Default: 0

Scale (1)

Asset Array node with its scale (1) settings in ZenGrove
ZenGrove settings excerpt · Scale (1) · Open image for full size
Scale X

Positive source scale multiplier along local X. End Scale Multiplier, Scale Profile and uniform randomness multiply this value.

Default: 1

Scale Y

Positive source scale multiplier along local Y. End Scale Multiplier, Scale Profile and uniform randomness multiply this value.

Default: 1

Scale Z

Positive source scale multiplier along local Z. End Scale Multiplier, Scale Profile and uniform randomness multiply this value.

Default: 1

End Scale Multiplier

Multiplier reached at the end of the distribution, interpolated from 1 at its start. It multiplies Scale, Scale Profile and random scale. With several radial rings, progression runs from first to last ring.

Default: 1

Scale (2)

Asset Array node with its scale (2) settings in ZenGrove
ZenGrove settings excerpt · Scale (2) · Open image for full size
Scale Profile

Edits a size multiplier over distribution progress, from start on the left to end on the right. Multiple radial rings use ring progression. A zero profile value skips that placement.

Default: Flat profile at 1

Generation (1)

Asset Array node with its generation (1) settings in ZenGrove
ZenGrove settings excerpt · Generation (1) · Open image for full size
Variant Count

Number of reusable array variants, from 1 to 128. Array Seed produces stable variation for each variant; increasing the count preserves earlier variants. With no random settings, variants can have identical shapes.

Default: 1

Array Seed

Controls array source selection and transform randomness independently of the tree seed. Position, rotation, scale and source selection use separate random channels.

Default: 1

Position Randomness X

Maximum seeded plus/minus positional offset along distribution-space X, in scene units. Zero keeps the exact layout positions on this axis.

Default: 0

Position Randomness Y

Maximum seeded plus/minus positional offset along distribution-space Y, in scene units. Zero keeps the exact layout positions on this axis.

Default: 0

Position Randomness Z

Maximum seeded plus/minus positional offset along distribution-space Z, in scene units. Zero keeps the exact layout positions on this axis.

Default: 0

Rotation Randomness X

Maximum seeded plus/minus local rotation around X, in degrees, added before the source is oriented to the distribution.

Default: 0

Rotation Randomness Y

Maximum seeded plus/minus local rotation around Y, in degrees, added before the source is oriented to the distribution.

Default: 0

Generation (2)

Asset Array node with its generation (2) settings in ZenGrove
ZenGrove settings excerpt · Generation (2) · Open image for full size
Rotation Randomness Z

Maximum seeded plus/minus local rotation around Z, in degrees, added before the source is oriented to the distribution.

Default: 0

Uniform Scale Randomness

Seeded uniform scale variation as a plus/minus fraction: 0.25 gives multipliers from 0.75 to 1.25. The same multiplier affects all three axes; zero disables this variation.

Default: 0

Export

Asset Array node with its export settings in ZenGrove
ZenGrove settings excerpt · Export · Open image for full size
Output

Assembly returns one reusable asset per variant, containing all placements. Elements returns each transformed placement as a separate selectable asset. A nested assembly still stays together as one selection unit.

Options: Assembly · Elements

Default: Assembly

Distribution

Shown example: Distribution = Linear.

Asset Array node with its distribution settings in ZenGrove
ZenGrove settings excerpt · Distribution · Open image for full size
Distribution

Chooses Radial rings, a Linear row, a three-dimensional Grid, a Spiral or Helix, a Phyllotaxis disk, or even spacing along captured Curves. Each mode reveals its own placement controls.

Options: Radial · Linear · Grid · Spiral · Helix · Phyllotaxis · Curve

Default: Radial

Count

Number of placements in one distribution. Radial uses this count per ring; Curve uses it per connected curve. Grid uses Count X, Y and Z instead. Zero produces no placements.

Available when Distribution is Radial or Linear or Spiral or Helix or Phyllotaxis or Curve.

Default: 12

Array Axis

Chooses the axis of a linear row or the axis around which radial, spiral and phyllotaxis layouts turn. It also provides the orientation up direction for Grid and Curve; it does not rotate a grid or the captured curve coordinates.

Options: X · Y · Z

Default: Y

Centered

Centers a Linear row or Grid around the origin. Turn it off to start the row or grid at the origin and extend in the spacing direction.

Available when Distribution is Linear or Grid.

Default: On

Spacing Mode

Distance uses a fixed step. Fit Length divides Total Length across the row. Source Bounds adds a conservative transformed source size to Distance / Gap; it can leave extra space around irregular sources.

Available when Distribution is Linear.

Options: Distance · Fit Length · Source Bounds

Default: Distance

Distance / Gap

Step between Linear placements in Distance mode. In Source Bounds mode this is an extra gap added to the largest conservative source extent. Fit Length ignores this field.

Available when Distribution is Linear.

Default: 1

Distribution (1)

Shown example: Distribution = Spiral.

Asset Array node with its distribution (1) settings in ZenGrove
ZenGrove settings excerpt · Distribution (1) · Open image for full size
Distribution

Chooses Radial rings, a Linear row, a three-dimensional Grid, a Spiral or Helix, a Phyllotaxis disk, or even spacing along captured Curves. Each mode reveals its own placement controls.

Options: Radial · Linear · Grid · Spiral · Helix · Phyllotaxis · Curve

Default: Radial

Count

Number of placements in one distribution. Radial uses this count per ring; Curve uses it per connected curve. Grid uses Count X, Y and Z instead. Zero produces no placements.

Available when Distribution is Radial or Linear or Spiral or Helix or Phyllotaxis or Curve.

Default: 12

Array Axis

Chooses the axis of a linear row or the axis around which radial, spiral and phyllotaxis layouts turn. It also provides the orientation up direction for Grid and Curve; it does not rotate a grid or the captured curve coordinates.

Options: X · Y · Z

Default: Y

Radius

Sets the first ring or spiral radius. In Phyllotaxis it controls the outer disk size, with placements spreading outward from the center.

Available when Distribution is Radial or Spiral or Helix or Phyllotaxis.

Default: 1

Start Angle

Rotates the starting position of Radial, Spiral, Helix or Phyllotaxis placement around Array Axis, in degrees.

Available when Distribution is Radial or Spiral or Helix or Phyllotaxis.

Default: 0

Turns

Number of revolutions from the start to the end of a Spiral or Helix. Negative values reverse the winding direction.

Available when Distribution is Spiral or Helix.

Default: 2

End Radius

Radius at the last Spiral or Helix placement. The radius changes evenly from Radius to End Radius. Equal radii with nonzero Height produce a cylindrical helix.

Available when Distribution is Spiral or Helix.

Default: 2

Distribution (2)

Shown example: Distribution = Spiral.

Asset Array node with its distribution (2) settings in ZenGrove
ZenGrove settings excerpt · Distribution (2) · Open image for full size
Height

Total rise along Array Axis from first to last placement in Spiral, Helix or Phyllotaxis. Zero keeps the distribution flat; negative values extend in the opposite direction.

Available when Distribution is Spiral or Helix or Phyllotaxis.

Default: 0

Distribution

Shown example: Distribution = Phyllotaxis.

Asset Array node with its distribution settings in ZenGrove
ZenGrove settings excerpt · Distribution · Open image for full size
Distribution

Chooses Radial rings, a Linear row, a three-dimensional Grid, a Spiral or Helix, a Phyllotaxis disk, or even spacing along captured Curves. Each mode reveals its own placement controls.

Options: Radial · Linear · Grid · Spiral · Helix · Phyllotaxis · Curve

Default: Radial

Count

Number of placements in one distribution. Radial uses this count per ring; Curve uses it per connected curve. Grid uses Count X, Y and Z instead. Zero produces no placements.

Available when Distribution is Radial or Linear or Spiral or Helix or Phyllotaxis or Curve.

Default: 12

Array Axis

Chooses the axis of a linear row or the axis around which radial, spiral and phyllotaxis layouts turn. It also provides the orientation up direction for Grid and Curve; it does not rotate a grid or the captured curve coordinates.

Options: X · Y · Z

Default: Y

Radius

Sets the first ring or spiral radius. In Phyllotaxis it controls the outer disk size, with placements spreading outward from the center.

Available when Distribution is Radial or Spiral or Helix or Phyllotaxis.

Default: 1

Start Angle

Rotates the starting position of Radial, Spiral, Helix or Phyllotaxis placement around Array Axis, in degrees.

Available when Distribution is Radial or Spiral or Helix or Phyllotaxis.

Default: 0

Height

Total rise along Array Axis from first to last placement in Spiral, Helix or Phyllotaxis. Zero keeps the distribution flat; negative values extend in the opposite direction.

Available when Distribution is Spiral or Helix or Phyllotaxis.

Default: 0

Divergence Angle

Angle in degrees between consecutive Phyllotaxis placements. The default golden angle spreads elements into a sunflower-like pattern while the radius grows with the square root of the placement fraction.

Available when Distribution is Phyllotaxis.

Default: 137.507764

Distribution (1)

Shown example: Distribution = Grid.

Asset Array node with its distribution (1) settings in ZenGrove
ZenGrove settings excerpt · Distribution (1) · Open image for full size
Distribution

Chooses Radial rings, a Linear row, a three-dimensional Grid, a Spiral or Helix, a Phyllotaxis disk, or even spacing along captured Curves. Each mode reveals its own placement controls.

Options: Radial · Linear · Grid · Spiral · Helix · Phyllotaxis · Curve

Default: Radial

Array Axis

Chooses the axis of a linear row or the axis around which radial, spiral and phyllotaxis layouts turn. It also provides the orientation up direction for Grid and Curve; it does not rotate a grid or the captured curve coordinates.

Options: X · Y · Z

Default: Y

Centered

Centers a Linear row or Grid around the origin. Turn it off to start the row or grid at the origin and extend in the spacing direction.

Available when Distribution is Linear or Grid.

Default: On

Count X

Number of Grid placements along X. The total is Count X × Count Y × Count Z, with a maximum of 100,000 placements before variants and nested parts are considered.

Available when Distribution is Grid.

Default: 3

Count Y

Number of Grid placements along Y. The total is Count X × Count Y × Count Z, with a maximum of 100,000 placements before variants and nested parts are considered.

Available when Distribution is Grid.

Default: 3

Count Z

Number of Grid placements along Z. The total is Count X × Count Y × Count Z, with a maximum of 100,000 placements before variants and nested parts are considered.

Available when Distribution is Grid.

Default: 3

Spacing X

Distance between adjacent Grid positions along X. Zero overlaps that grid dimension; a negative value reverses its direction.

Available when Distribution is Grid.

Default: 1

Distribution (2)

Shown example: Distribution = Grid.

Asset Array node with its distribution (2) settings in ZenGrove
ZenGrove settings excerpt · Distribution (2) · Open image for full size
Spacing Y

Distance between adjacent Grid positions along Y. Zero overlaps that grid dimension; a negative value reverses its direction.

Available when Distribution is Grid.

Default: 1

Spacing Z

Distance between adjacent Grid positions along Z. Zero overlaps that grid dimension; a negative value reverses its direction.

Available when Distribution is Grid.

Default: 1

Distribution

Shown example: Distribution = Linear · Spacing Mode = Fit Length.

Asset Array node with its distribution settings in ZenGrove
ZenGrove settings excerpt · Distribution · Open image for full size
Distribution

Chooses Radial rings, a Linear row, a three-dimensional Grid, a Spiral or Helix, a Phyllotaxis disk, or even spacing along captured Curves. Each mode reveals its own placement controls.

Options: Radial · Linear · Grid · Spiral · Helix · Phyllotaxis · Curve

Default: Radial

Count

Number of placements in one distribution. Radial uses this count per ring; Curve uses it per connected curve. Grid uses Count X, Y and Z instead. Zero produces no placements.

Available when Distribution is Radial or Linear or Spiral or Helix or Phyllotaxis or Curve.

Default: 12

Array Axis

Chooses the axis of a linear row or the axis around which radial, spiral and phyllotaxis layouts turn. It also provides the orientation up direction for Grid and Curve; it does not rotate a grid or the captured curve coordinates.

Options: X · Y · Z

Default: Y

Centered

Centers a Linear row or Grid around the origin. Turn it off to start the row or grid at the origin and extend in the spacing direction.

Available when Distribution is Linear or Grid.

Default: On

Spacing Mode

Distance uses a fixed step. Fit Length divides Total Length across the row. Source Bounds adds a conservative transformed source size to Distance / Gap; it can leave extra space around irregular sources.

Available when Distribution is Linear.

Options: Distance · Fit Length · Source Bounds

Default: Distance

Distance / Gap

Step between Linear placements in Distance mode. In Source Bounds mode this is an extra gap added to the largest conservative source extent. Fit Length ignores this field.

Available when Distribution is Linear.

Default: 1

Total Length

Distance from first to last Linear placement in Fit Length mode. The step is Total Length divided by Count minus one; one placement has no span.

Available when Distribution is Linear and Spacing Mode is Fit Length.

Default: 10

Input

Shown example: Source Selection = Fixed.

Asset Array node with its input settings in ZenGrove
ZenGrove settings excerpt · Input · Open image for full size
Source Selection

Fixed repeats one source; Cycle visits all sources in order; Weighted Random respects source weights; Sequence repeats your source-number list. Sources follow connection order, then order within each collection.

Options: Fixed · Cycle · Weighted Random · Sequence

Default: Cycle

Source Number

One-based number of the source repeated in Fixed mode. The number must exist in the combined pool of connected assets.

Available when Source Selection is Fixed.

Default: 1

Input

Shown example: Source Selection = Sequence.

Asset Array node with its input settings in ZenGrove
ZenGrove settings excerpt · Input · Open image for full size
Source Selection

Fixed repeats one source; Cycle visits all sources in order; Weighted Random respects source weights; Sequence repeats your source-number list. Sources follow connection order, then order within each collection.

Options: Fixed · Cycle · Weighted Random · Sequence

Default: Cycle

Source Sequence

Comma-separated, one-based source numbers repeated across placements, for example 1, 1, 2, 3. Every number must exist; repeated numbers deliberately repeat that source.

Available when Source Selection is Sequence.

Default: 1, 2, 3

Browse all ZenGrove nodes →
FAQ
What is ZenGrove used for?

The RC.4 reference: 51 nodes, 892 settings and short WebM demos. Explore GameDynamics, joint previews, skeletal export and per-leaf random vertex colors. Requires AO.Hub 1.6.6 or later.

Which host application does ZenGrove support?

ZenGrove is built for Autodesk Maya and is distributed through AO Studio Tools.

Where can I download ZenGrove?

Download the current AO Studio Tools package from https://aostudio.tools/getthetools.html and install it through AO.Hub.