Skip to main content

vJSONRepeatTransform

Repeats an array in a line, circle, spiral or grid, with transforms spread across the copies.

AdvancedMograph / JSONJSONArrayScriptVal
vJSONRepeatTransform node

vJSONRepeatTransform takes an array of XYZ points and outputs copies of it. Array Mode places the copies, and the Translate, Scale and Rotation controls change them from the first copy to the last. A second output holds the copy number of each point.

Parameters​

ParameterTypeDefaultDescription
Array ModeDropdownLinearLinear (default), Circular, Spiral, Grid 2D or Grid 3D.
Number of TimesInteger1Number of copies in Linear, Circular and Spiral modes. Slider 1 to 100, default 1.
RadiusFloat0.1Radius of the circle or spiral in XY. Slider 0 to 10, default 0.1. Shown for Circular and Spiral.
Spiral HeightFloat0.1Rise on Z over all copies. Slider 0 to 10, default 0.1. Shown for Spiral.
Grid Columns (X)Integer2Columns of the grid. Slider 1 to 20, default 2. Shown for the grid modes.
+39 more parameters
ParameterTypeDefaultDescription
Grid Rows (Y)Integer2Rows of the grid. Slider 1 to 20, default 2. Shown for the grid modes.
Grid Depth (Z)Integer3Layers of the grid. Slider 1 to 20, default 3. Shown for Grid 3D.
Grid Spacing XFloat0.1Spacing along X. Slider 0 to 5, default 0.1. Shown for the grid modes.
Grid Spacing YFloat0.1Spacing along Y. Slider 0 to 5, default 0.1. Shown for the grid modes.
Grid Spacing ZFloat0.1Spacing along Z. Slider 0 to 5, default 0.1. Shown for Grid 3D.
Translate XFloat0Total X translation reached at the last copy. Slider -10 to 10, default 0.
Translate YFloat0Total Y translation reached at the last copy. Slider -10 to 10, default 0.
Translate ZFloat0Total Z translation reached at the last copy. Slider -10 to 10, default 0.
Scale XFloat0Added to the X scale factor of 1 at the last copy. Slider -1 to 1, default 0.
Scale YFloat0Added to the Y scale factor of 1 at the last copy. Slider -1 to 1, default 0.
Scale ZFloat0Added to the Z scale factor of 1 at the last copy. Slider -1 to 1, default 0.
Rotation XFloat0Total rotation around X in degrees at the last copy. Slider -360 to 360, default 0.
Rotation YFloat0Total rotation around Y in degrees at the last copy. Slider -360 to 360, default 0.
Rotation ZFloat0Total rotation around Z in degrees at the last copy. Slider -360 to 360, default 0.
Rotation OrderDropdownXYZOrder in which the three rotations are applied, XYZ (default), YXZ, ZYX, XZY, YZX or ZXY.
Pivot XFloat0X of the pivot for rotation and scale. Slider -10 to 10, default 0.
Pivot YFloat0Y of the pivot for rotation and scale. Slider -10 to 10, default 0.
Pivot ZFloat0Z of the pivot for rotation and scale. Slider -10 to 10, default 0.
Enable RandomFloat0Turns on random variation per copy when on. Default off.
Random SeedInteger0Integer, slider 0 to 1000, default 0.
Random TranslateFloat0Random translation per copy, between minus and plus this value. Slider 0 to 5, default 0.
Random RotateFloat0Random rotation per copy in degrees, between minus and plus this value. Slider 0 to 180, default 0.
Random ScaleFloat0Random change of the scale factor per copy, between minus and plus this value. Slider 0 to 1, default 0.
Enable ShakeFloat0Turns on the animated noise when on. Default off.
Position AmplitudeFloat0.0Size of the position noise. Range 0 to 1, default 0.
Rotation AmplitudeFloat0.0Size of the rotation noise, multiplied by 10 for degrees. Range 0 to 360, default 0.
Scale AmplitudeFloat0.0Size of the scale noise. Range 0 to 1, default 0.
FrequencyFloat1.0Frequency of the noise. Range 0.1 to 10, default 1.
SpeedFloat0.0How fast the noise moves with the render time. Range 0 to 10, default 0.
PhaseFloat0.0Start offset of the noise in degrees. Range 0 to 360, default 0.
SeedInteger0.0Integer, range 0 to 1000, default 0.
LagFloat0.0Smoothing of the shake over time. Range 0 to 1, default 0.
Cumulative LagFloat0.0Smoothing where each copy follows the one before it. Range 0 to 1, default 0.
ReverseFloat0.0Makes each copy follow the one after it when on, with Cumulative Lag. Default off.
Mirror X Every OtherFloat0Negates X for every second copy when on. Default off.
Mirror Y Every OtherFloat0Negates Y for every second copy when on. Default off.
Mirror Z Every OtherFloat0Negates Z for every second copy when on. Default off.
Input ArrayText—Points to repeat, or a flat list of numbers, three per point.
Position ArrayText—A flat list of numbers, three per copy, added to the copy positions.
Read the full description

The copies are Number of Times in Linear, Circular and Spiral modes, and Grid Columns times Rows (times Depth for Grid 3D) in the grid modes. Circular puts copies on a circle of Radius in XY, Spiral adds a rise of Spiral Height over the copies, and the grid modes center a grid with the spacings. Translate, Scale and Rotation are totals reached at the last copy, with copy j getting the share j / (Number of Times - 1) of them.

Each copy is rotated around the Pivot in the Rotation Order, scaled by 1 + Scale * share, and moved. Random adds seeded offsets per copy, Shake adds smoothed noise over time, and Mirror negates every second copy. Position Array adds three numbers per copy. The Instance IDs output holds the copy number of each point, and ScriptVal Groups the points per copy.

Example Connections​

vJSONPointsOnRectangle.Output -> vJSONRepeatTransform.InputArray
vJSONRepeatTransform.Output -> vJSONCameraProjection.ArrayA
vJSONCameraProjection.Output -> vJSONShapeRender.ArrayPoint
Background.Output -> vJSONShapeRender.Input