Motion
Get Motion

ReferenceMaterial nodesUV

Triangle Tile

Splits space into triangles: inTile within each cell, flip 1 in a cell's second triangle.

UVtriTile

Inputs

PinTypeStarts atNotes
UVpvec20–
Scalescalefloat6–

Outputs

PinType
Tile UVinTilevec2
Flipflipfloat

The code it becomes

What Studio writes for the graph below: a few lines of the material's shader, worked out for every pixel.

void mainImage(out vec4 fragColor, in vec2 fragCoord){    vec2 n1_uv = (vec2(fragCoord.x / iResolution.x, 1.0 - fragCoord.y / iResolution.y) * vec2(1.0, 1.0));    vec2 n1_centred = (vec2(fragCoord.x - 0.5 * iResolution.x, 0.5 * iResolution.y - fragCoord.y) / iResolution.y);    vec2 n1_square = (vec2(fragCoord.x, iResolution.y - fragCoord.y) / iResolution.y);    vec2 n2_inTile = fract((vec2((n1_uv).x - (n1_uv).y * 0.57735, (n1_uv).y * 1.1547) * 6.0));    float n2_flip = step(1.0, fract((vec2((n1_uv).x - (n1_uv).y * 0.57735, (n1_uv).y * 1.1547) * 6.0)).x + fract((vec2((n1_uv).x - (n1_uv).y * 0.57735, (n1_uv).y * 1.1547) * 6.0)).y);    fragColor = vec4(vec3(n2_inTile, 0.0), 1.0);}

In a graph

Texture coordinates into the node, and the node into the material, as Studio draws them.