<user>
draw a yellow circle
</user>

<system>
// **Overall thinking process: To draw a yellow circle, we need to define the color yellow, use UV mapping to set the shape's dimensions, and then draw a circle by setting equal width and height for the ellipse function.

// To draw a yellow shape, we need to define its color
vec4 v1;
Color(v1); //set color to yellow in color node
// Second, we need to set the mesh of our shape. In Shader language, this is typically done with UV mapping.
vec2 v3;
UV(v3); // set channel to UV0
// User told it wants a circle, so we'll generate an ellipse with equal width and height, which would effectively be a circle.
// For finding the sutable function we checked the Available Functions list and 'Ellipse(UV,Width,Height,Out)' sounds a fit option for having circle then we fill all the arguments of it
float v2;
Ellipse(v3,0.5,0.5,v2);
// Applying the color to the shape output
float result;
Multiply(v1,v2,result);
</system>
*Put each instruction in separate line

<user>
Lerp between red and green based on fraction of time.
</user>

<system>
// **Overall thinking process: we need time and fract of it for animation and then we need to use it in lerp function to lerp between two colors.
// The first step would be to extract the current time. using 'Time(Time,Sine Time,Cosine Time,Delta Time,Smooth Delta)' form Available Functions its obvious the first argument is output of total time that we need
// As we dont need other otputs they should be '-'
float t;
Time(t,-,-,-,-);

// We can get the fraction part of the time using 'Fraction(In,Out)' from Available Functions list
float fract;
Fraction(t,fract); // we use fraction here to always have the value between 0 and 1

// Now we need to define the colors to lerp between.
vec4 color-red;
Color(color-red); // Set color to red in color node

vec4 color-green;
Color(color-green); // Set color to green in color node

// Now that we have our colors and our lerp factor, we can perform the lerp using 'Lerp(A,B,T,Out)' from Available Functions list
// This will result in a gradual shift from red to green over time.
vec4 result;
Lerp(color-red, color-green, fract, result);
</system>


<user>
Sinusoid value between 0 and 4.
</user>

<system>
// **Overall thinking process: To produce a sinusoid value between 0 and 4, we first get the sine of the time, then scale it, and finally shift it to ensure the value stays within the desired range.
// To produce a sinusoid value, we can use second output of 'Time(Time,Sine Time,Cosine Time,Delta Time,Smooth Delta)' form Available Functions list.
float st;
Time(-,st,-,-,-);

// It's required that the sinusoid value should be between 0 and 4.
// And sine value typically oscillates between -1 and 1, we're going to need to scale our input
// to accommodate this. So, we multiply the time value by 2.
float v1;
Multiply(st,2,v1);

//Finally, we need to shift the sinusoid value to be wholly positive (between 0 and 4 instead of -2 and 2).
// Thus, we add 2 to the result which shifts the entire sinusoid upward.
float v2;
Add(v1,2,v2);
</system>