## Reka Grid Documentation

### Interface

### Reka Grid Basics

RekaGrid generates parametric shapes and places this shape instances on grid points. Each instance have follow parameters: Radius, Rotation angle, X and Y offset, Color, Alpha and it can be visible or hidden.

Grid is represented by rows and columns count, width, height and center point. Grid can be regular or hexagonal. Shape can have any points and can be triangle, rectangle, hexagon, circle. With Middle offset shape can became a star. Shelf Length can add a shelf on each point of shape. Also hard edges can be rounded with Shape Rounding Radius. Combination of all this parameters can generate complex and abstract shapes. Also Shape can have fill or stroke.

Almost all parameters have following structure:

Value + Noise + Layer

Math is the same: for each point of grid Value applies with Noise calculated for this point and applies with Layer intensity for this point.

Value is constant for all instances. If you need same radius for all instances you need to set Value and leave Noise Multiplier and Layer Multiplier equal to 0.

To add some randomness you can use Noise and animate it with Noise offset or Noise Evaluate. Also instance parameters can be driven with Layer color intensity.

1Select for Layer source any layer or precomp

in Parameters->Layer.

2Inside instance parameter select Layer Index

and adjust Multiplier.

Finally this three values summed up for each point of grid. This allows you a lot of possibilities to animate Instances parameters.

Another control Noise&Layer Offset determines 0 point of generated noise or layer intensity. By default Noise&Layer Offset equals 0, in this condition noise have range [-1 to 1]. When Noise&Layer Offset is 100% - noise range is [0,1]. And finally when Noise&Layer Offset is -100% - noise range is [-1,0]. Same for Layer intensity. Noise have additional control Mult Layer. This Layer multiplies by noise amplitude allows to mask noise with layer.

Last but powerful feature is Scripts. Scripts allows you to edit any parameter in grid individually with elements index. Please read more about Scripts here.

### Shapes

1**Elements count** sets points count for shape.

2**Shelf Length** adds a shelf on each point of shape.

3**Link Middle Offset** creates a new point beetwen each points of shape and expand it outside or inside.

4**Shape Rounding Radius** rounding hard edges with given radius.

### Scripts

Scripts allows you to edit any parameter in grid. With this feature any adjustment is possible for group or individual element. It means you can for example hide any element of grid or set angle of rotation individually.

Script excecutes for every instance of grid. You can use col and row indexes **[ i , j ]** for individual adjustment.

In table below listed all available variables. Note that some of them is read only.

#### Variable

#### Description

#### Read

#### Write

**time**

**+**

**-**

**frame**

**+**

**-**

**i, j**

**i**for rows and

**j**for columns

**+**

**-**

**xPart, yPart**

**+**

**-**

**xCount, yCount**

**+**

**-**

**visible**

**+**

**+**

**x, y**

**+**

**+**

**angle**

**+**

**+**

**radius**

**+**

**+**

**r, g, b, a**

**+**

**+**

**feather**

**+**

**+**

**stroke**

**+**

**+**

**strokeWidth**

**+**

**+**

**partsCount**

**+**

**+**

**anchorX, anchorY**

**+**

**+**

**scaleX, scaleY**

**+**

**+**

**angleOffset**

**+**

**+**

#### Functions

Functions allows you to get values from custom Sliders, Colors and Layers. Also to get Noise and Random parameters.

**GetFloat(ind)** — returns the Parameters Slider value with the given index ind [1..10]

**GetColor(ind)** — returns the Parameters Color value with the given index ind [1..10]

**GetLayer(ind, xPart, yPart)**— returns the Parameters Layer value with the given index ind [1..10] and x and y coords [0..1]

**GetNoise(ind, xPart, yPart) ** — returns the Parameters noise value with the given index ind [1..10] and x and y coords [0..1]. Noise amplitude, scale, offsets and seed can be adjusted from **Parameters -> Noises**

**GetRandom(ind, i, j)** — returns the Parameters random value with the given index ind [1..10] and i and j integer values (indexes). Random range and seed can be adjusted from **Parameters -> Randoms**

Scripts is based on Lua language, so you can use built-in mathematical functions like a **math.sin (x)** in your scripts.

#### Sample Scripts

This sample demonstrate how to turn each element by 90 degrees CV from each other:

`angle = (i + j) * 90`

This sample demonstrate how to create wave using sine function with amplitude from **Slider 1** and offset from **Slider 2**:

`y = y + GetFloat(1)*math.sin(x+GetFloat(2))`

This sample demonstrate how to scatter random colors to instances from colors list. Random range and seed can be adjusted from **Random 1** parameters:

`r,g,b = GetColor(GetRandom(1,i,j));`

In this sample Stroke and Fill is randomized. Random seed can be adjusted from **Random 1** parameters:

`stroke = false `

if ( GetRandom(1,i,j) > 50 ) then

stroke = true

end