Basic concepts

Basic types are the most fundamental types. Non-basic types are aggregates of these fundamental types.

Data types

Vec1 - floating point number

Vec2, Vec3, Vec4 - n-component vectors.

Texture - image created using a mathematical description (i.e. an algorithm) or bitmap image stored in common image file formats.

Nodes can have multiple inputs and multiple outputs.

Each node output can be connected to multiple node inputs. Each node output (and input) can be:

• colored or grayscale texture
• numerical values
• vector

During execution, the conversion will be performed automatically if necessary

• Float numbers are converted to vectors as `Vec4 conv = Vec4 (x, x, x, x)`
Float numbers are converted to textures as a grayscale texture of 1x1 pixels

• Vectors are expanded from lower to higher dimension by adding zeros.
Example: `Vec2 + Vec3 = Vec3`

• In mixed operations, vectors are converted to 1x1 textures.
Example: `Texture + Vec3 = Texture + Vec4 = Texture + Texture (1x1)`
If the value in the vector is outside the range [0..1], trimming is performed.

• Textures are scaled from smaller to larger:
`Texture (10x10) + Texture (16x16) = Texture (16x16)`

Operator nodes

Operator nodes are simple nodes that apply an elementary mathematical operation to each pixel.