<user>
Make a changing value from 0 to 1
</user>

<system>
// **Overall thinking process: To create a value that changes from 0 to 1, we need a continuous changing function like a sine wave, then normalize it to fit within the 0 to 1 range by taking the absolute value of the sine output.
float v1;
Time(v1,-,-,-,-); // only need total time so other outputs are -
float v2;
Sine(v1,v2);
float out;
Absolute(v2,out);
</system>

<user>
Scroll UV of a sample Texture
</user>

<system>
// **Overall thinking process: To scroll the UV of a sampled texture over time, we combine the current UV coordinates with a time-based offset. This offset is derived from the total time, ensuring that the texture appears to move across the mesh as time progresses.
float v1;
Time(v1,-,-,-,-);  // only need total time so other outputs are -
vec2 uv;
UV(uv); 
vec2 v2;
Add(v1,uv,v2);
SampleTexture2D(-,v2,-,-,-,-,-,-); // Only changed UV, set desired texture in the editor
</system>

<user>
Rotate Object in Y axis
</user>

<system>

// **Overall thinking process: To rotate an object around the Y axis over time, we use the RotateAboutAxis function. We pass the object's current position, specify the Y axis (0, 1, 0), and use the total time as the rotation angle. This continuously rotates the object around the Y axis as time progresses.
vec3 pos;
Position(pos); 
float t;
Time(t,-,-,-,-);  // only need total time so other outputs are -
RotateAboutAxis(pos,vec3(0,1,0),t,-);
</system>

<user>
2d Ripple Effect
</user>

<system>
// **Overall thinking process: To create a 2D ripple effect, we start by generating a radial gradient using polar coordinates. We animate this gradient by modulating it with the current time fraction, which causes it to oscillate over time. We then adjust the amplitude and range of the oscillation to enhance the ripple effect visually.
// Make radial gradient with polar coord + animate it
vec2 polar;
PolarCoordinates(-,-,-,-,polar); // Here all the inputs are set as default, and only using output to vec2 polar
float v1;
Split(polar,v1,-,-,-);  //If you want to use the any component of a vector, use the Split function to store the needed value in a float variable
float v2;
OneMinus(v1,v2);
float t;
Time(t,-,-,-,-); // only need total time so other outputs are -
float tFract;
Fraction(t,tFract); // we use fraction here to always have the value between 0 and 1, very important as time can be very large 
float v3;
Subtract(tFract,1,v3);
// Add time fraction to radial gradient
float v4;
Add(v3,v2,v4);
float v5;
Saturate(v4,v5);
// Increase the contrast and expand the range
float v6;
Multiply(v5,20,v6);
float v7;
Multiply(v6,3.14,v7);
Sine(v7,-); //Its the last node so the it's output is unused
</system>

<user>
Gradient color animation
</user>

<system>
// **Overall thinking process: To animate a gradient color, we utilize the sine of time to create a smooth oscillation. By adjusting the amplitude and offset of the sine wave, we control the progression through the gradient, creating a dynamic color animation over time.
vec3 g;
Gradient(g); 
float sinTime;
Time(-,sinTime,-,-,-);   // Get sin time(second output), ,Time node: Time(Time,Sine Time,Cosine Time,Delta Time,Smooth Delta)
float v1;
Multiply(sinTime,0.5,v1);
float v2;
Add(v1,0.5,v2);
SampleGradient(g,v2,-); //Its the last node so the it's output is unused
</system>

<user>
Make sin of time between -2 and 2
</user>

<system>
// **Overall thinking process: To scale the sine of time to range between -2 and 2, we multiply the sine time output by 2.
float sineTime;
Time(-,sineTime,-,-,-); // get sin of total time
Multiply(sineTime,2,-);
</system>