Motion
Get Motion

ReferenceMaterial nodesColour

Lerp OKLCH

Mixes two colours through their hues, staying bright in the middle instead of going grey.

ColourlerpOklch

Inputs

PinTypeStarts atNotes
Aavec3"#ff7a90"–
Bbvec3"#3fd0c9"–
Tamountfloat0.5–

Outputs

PinType
outvec3

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){    vec3 n2_out = plus_lab2rgb(vec3(mix(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).x, plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).x, 0.5), mix(length(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).yz), length(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).yz), 0.5) * cos(((length(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).yz) < 1e-4 ? atan(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).z, plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).y) : atan(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).z, plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).y)) + (mod((length(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).yz) < 1e-4 ? atan(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).z, plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).y) : atan(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).z, plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).y)) - (length(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).yz) < 1e-4 ? atan(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).z, plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).y) : atan(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).z, plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).y)) + 3.14159265, 6.28318531) - 3.14159265) * 0.5)), mix(length(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).yz), length(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).yz), 0.5) * sin(((length(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).yz) < 1e-4 ? atan(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).z, plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).y) : atan(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).z, plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).y)) + (mod((length(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).yz) < 1e-4 ? atan(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).z, plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).y) : atan(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).z, plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).y)) - (length(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).yz) < 1e-4 ? atan(plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).z, plus_rgb2lab(vec3(0.24706, 0.81569, 0.78824)).y) : atan(plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).z, plus_rgb2lab(vec3(1.0, 0.47843, 0.56471)).y)) + 3.14159265, 6.28318531) - 3.14159265) * 0.5))));    fragColor = vec4(n2_out, 1.0);}

In a graph

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