diff --git a/README.md b/README.md
index c6977ba..ef8b320 100644
--- a/README.md
+++ b/README.md
@@ -2,473 +2,5 @@
Visual shader node library for Godot engine. Supports all 4.2.0+ versions!
Adds various extra nodes to use in built-in visual shader editor.
-# Installation
-Copy the contents of **_addons/ShaderLib_** into the same folder in your project. No activation needed. Custom visual shader nodes work the same way as standard visual shader nodes.
-If you don't immediatly see new nodes under **_Addons_** category, simply reload your project.
-# Uninstallation
-Delete the contents of **_addons/ShaderLib_** folder from your project. Make sure to delete it using the Godot editor instead of your default file system program.
-# Nodes documentation
-
-Geometry nodes
-
-Mesh node
-Provides accees to node's position and scale in world space.
-
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|position|vec3|None|Node/object position in world space|
-|scale|vec3|None|Node/object scale in world space|
-___
-
-
-
-
-Maths nodes
-
-Vector
-
-Vector Transform node
-Returns the transformed vector of the input value in from one coordinate space to another.
This node is only available in shader mode SPATIAL.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|in|vector3|none|Input vector|
-
-**Controls**
-|Name|Options|Description|
-|---|---|---|
-|From|Local, World, View, Screen, Tangent|Coordinate space from which you want to transform the input vector|
-|To|Local, World, View, Screen, Tangent|Coordinate space to which you want to transform the input vector|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|out|vector3|None|Output vector|
-___
-
-
-
-Wave
-
-Noise Sine Wave node
-Returns the sine of the value of input in. For variance, psuedo-random noise is added to the amplitude of the sine wave, within a range determined by input min max.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|in|Dynamic vector|none|Input value|
-|min max|vec2|none|Minimum and Maximum values for noise intensity|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|out|Dynamic vector|None|Output value|
-___
-
-
-Sawtooth Wave node
-Returns a sawtooth wave from the value of input in. Resulting output values will be between -1 and 1.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|in|Dynamic vector|none|Input value|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|out|Dynamic vector|None|Output value|
-___
-
-
-Square Wave node
-Returns a square wave from the value of input in. Resulting output values will be between -1 and 1.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|in|Dynamic vector|none|Input value|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|out|Dynamic vector|None|Output value|
-___
-
-
-Triangle Wave node
-Returns a triangle wave from the value of input in. Resulting output values will be between -1 and 1.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|in|Dynamic vector|none|Input value|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|out|Dynamic vector|None|Output value|
-___
-
-
-
-
-
-Procedural nodes
-
-Checker Board node
-Generates a checkerboard of alternating colors between inputs color A and color B based on input UV.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|color a|vec3|none|First checker color|
-|color b|vec3|none|Second checker color|
-|frequency|vec2|none|Scale of checkerboard per axis|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|vec3|None|Output checkerboard value|
-___
-
-
-Noise
-
-Gradient Noise node
-Generates a gradient, or Perlin noise based on input UV. The resulting output values will be between -1 and 1.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|scale|float|none|Noise scale|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output noise value|
-___
-
-
-Pseudo Random Noise node
-Generates a pseudo random noise based on input seed. The resulting output values will be between 0 and 1.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|seed|float|none|Input seed|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output noise value|
-___
-
-
-Simple Noise node
-Generates a simplex, or value noise based on input UV. The resulting output values will be between 0 and 1.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|scale|float|none|Noise scale|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output noise value|
-___
-
-
-Voronoi node
-Generates a Voronoi or Worley noise based on input UV. Voronoi noise is generated by calculating distances between a pixel and a lattice of points. By offsetting these points by a pseudo-random number, controlled by angle offset, a cluster of cells can be generated.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|cell density|float|none|Density of generated cells|
-|angle offset|float|none|Offset values for points|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output noise value|
-|cells|float|None|Raw cell data|
-___
-
-
-
-Shapes
-
-Ellipse node
-Generates an ellipse shape based on input UV at the size specified by inputs width and height. The generated shape can be offset or tiled by connecting a TilingAndOffset node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating dot effect first connect your TilingAndOffset output through a Fract node.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|width|float|none|Ellipse width|
-|height|float|none|Ellipse height|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output ellipse value|
-___
-
-
-Polygon node
-Generates a regular polygon shape based on input UV at the size specified by inputs width and height. The polygon's amount of sides is determined by input sides. The generated shape can be offset or tiled by connecting a TilingAndOffset node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating polygon effect first connect your TilingAndOffset output through a Fract node.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|sides|int|none|Number of sides of the polygon|
-|width|float|none|Polygon width|
-|height|float|none|Polygon height|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output polygon value|
-___
-
-
-Rectangle node
-Generates a rectangle shape based on input UV at the size specified by inputs width and height. The generated shape can be offset or tiled by connecting a TilingAndOffset node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating rectangle effect first connect your TilingAndOffset output through a Fract node.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|width|float|none|Rectangle width|
-|height|float|none|Rectangle height|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output rectangle value|
-___
-
-
-Rounded Polygon node
-Generates a rounded polygon shape based on input UV at the size specified by inputs width and height. The polygon's amount of sides is determined by input sides. The radius of each corner is defined by input roundnesss. The generated shape can be offset or tiled by connecting a TilingAndOffset node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating rounded polygon effect first connect your TilingAndOffset output through a Fract node.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|width|float|none|Rounded polygon width|
-|height|float|none|Rounded polygon height|
-|sides|int|none|Number of sides of the polygon|
-|roundness|float|none|Corner radius|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output rounded polygon value|
-___
-
-
-Rounded Rectangle node
-Generates a rounded rectangle shape based on input UV at the size specified by inputs width and height. The radius of each corner is defined by input radius. The generated shape can be offset or tiled by connecting a TilingAndOffset node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating rounded rectangle effect first connect your TilingAndOffset output through a Fract node.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|width|float|none|Rounded rectangle width|
-|height|float|none|Rounded rectangle height|
-|radius|float|none|Corner radius|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|output|float|None|Output rounded rectangle value|
-___
-
-
-
-
-
-UV nodes
-Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
-
-Flipbook node
-Creates a flipbook, or texture sheet animation, of the UVs supplied to input UV. The amount of tiles on the sheet are defined by the values of the inputs rows and columns.
-This node can be used to create a texture animation functionality, commonly used for particle effects and sprites. Animation frames will go from top left to bottom right.
This node is only available in shader modes SPATIAL and CANVAS ITEM.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|rows|int|none|Amount of horizontal tiles in texture sheet|
-|columns|int|none|Amount of vertical tiles in texture sheet|
-|anim speed|float|none|Animation speed|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|None|Output UV value|
-___
-
-
-Parallax mapping node
-The Parallax Mapping node lets you create a parallax effect that displaces a Material's UVs to create the illusion of depth inside a Material.
This node is only available in shader modes SPATIAL and CANVAS ITEM.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|height map|sampler2D|none|Height map texture|
-|amplitude|float|none|amplitude or depth of the effect|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|None|Output UV value|
-___
-
-
-Radial Shear node
-Applies a radial shear warping effect similar to a wave to the value of input UV.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|center|vec2|none|Center reference point|
-|strength|float|none|Strength of the effect|
-|offset|vec2|none|Individual channel offsets|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|None|Output UV value|
-___
-
-
-Rotate node
-Rotates value of input UV around a reference point defined by input center by the amount of input rotation.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|center|vec2|none|Center reference point|
-|rotation|float|none|Rotation amount in radians|
-
-**Controls**
-|Name|Options|Description|
-|---|---|---|
-|Units|Degrees, Radians|Specifies the unit for rotation input|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|None|Output UV value|
-___
-
-
-Spherize node
-Applies a spherical warping effect similar to a fisheye camera lens to the value of input UV.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|center|vec2|none|Center reference point|
-|strength|float|none|Strength of the effect|
-|offset|vec2|none|Individual channel offsets|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|None|Output UV value|
-___
-
-
-Swirl node
-Applies a swirl warping effect similar to a black hole to the value of input UV. Very similar to Twirl node, key difference is it uses the inverse of vector length (One minus).
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|center|vec2|none|Center reference point|
-|strength|float|none|Strength of the effect|
-|offset|vec2|none|Individual channel offsets|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|None|Output UV value|
-___
-
-
-Tiling and Offset node
-Tiles and offsets the value of input UV by the inputs tiling and offset respectively. This is commonly used for detail maps and scrolling textures over TIME.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|tiling|vec2|none|Amount of tiling to apply per channel|
-|offset|vec2|none|Amount of offset to apply per channel|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|None|Output UV value|
-___
-
-
-Twirl node
-Applies a twirl warping effect similar to a black hole to the value of input UV. Very similar to Swirl node, key difference is it uses the length of a vector.
-
-
-**Inputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|UV|Input UV value|
-|center|vec2|none|Center reference point|
-|strength|float|none|Strength of the effect|
-|offset|vec2|none|Individual channel offsets|
-
-**Outputs**
-|Name|Type|Binding|Description|
-|---|---|---|---|
-|uv|vec2|None|Output UV value|
-___
-
-
\ No newline at end of file
+[Documentation can be found here.](/documentation/Documentation.md)
\ No newline at end of file
diff --git a/documentation/Documentation.md b/documentation/Documentation.md
new file mode 100644
index 0000000..875a2ea
--- /dev/null
+++ b/documentation/Documentation.md
@@ -0,0 +1,55 @@
+# Installation
+Copy the contents of **_addons/ShaderLib_** into the same folder in your project. No activation needed. Custom visual shader nodes work the same way as standard visual shader nodes.
+
+If you don't immediatly see new nodes under **_Addons_** category, simply reload your project.
+# Uninstallation
+Delete the contents of **_addons/ShaderLib_** folder from your project. Make sure to delete it using the Godot editor instead of your default file system program.
+# Available Nodes
+
+Geometry nodes
+[Mesh node](/documentation/Nodes/Geometry/Mesh.md)
+
+
+Maths nodes
+
+Vector
+[Vector Transform node](/documentation/Nodes/Maths/Vector/VectorTransform.md)
+
+
+Wave
+[Noise Sine Wave node](/documentation/Nodes/Maths/Wave/NoiseSineWave.md)
+[Sawtooth Wave node](/documentation/Nodes/Maths/Wave/SawtoothWave.md)
+[Square Wave node](/documentation/Nodes/Maths/Wave/SquareWave.md)
+[Triangle Wave node](/documentation/Nodes/Maths/Wave/TriangleWave.md)
+
+
+
+Procedural nodes
+[Checker Board node](/documentation/Nodes/Procedural/CheckerBoard.md)
+
+Noise
+[Gradient Noise node](/documentation/Nodes/Procedural/Noise/GradientNoise.md)
+[Pseudo Random Noise node](/documentation/Nodes/Procedural/Noise/PseudoRandomNoise.md)
+[Simple Noise node](/documentation/Nodes/Procedural/Noise/SimpleNoise.md)
+[Voronoi node](/documentation/Nodes/Procedural/Noise/Voronoi.md)
+
+
+Shapes
+[Ellipse node](/documentation/Nodes/Procedural/Shapes/Ellipse.md)
+[Polygon node](/documentation/Nodes/Procedural/Shapes/Polygon.md)
+[Rectangle node](/documentation/Nodes/Procedural/Shapes/Rectangle.md)
+[Rounded Polygon node](/documentation/Nodes/Procedural/Shapes/RoundedPolygon.md)
+[Rounded Rectangle node](/documentation/Nodes/Procedural/Shapes/RoundedRectangle.md)
+
+
+
+UV nodes
+[Flipbook node](/documentation/Nodes/UV/Flipbook.md)
+[Parallax Mapping node](/documentation/Nodes/UV/ParallaxMapping.md)
+[Radial Shear node](/documentation/Nodes/UV/RadialShear.md)
+[Rotate node](/documentation/Nodes/UV/Rotate.md)
+[Spherize node](/documentation/Nodes/UV/Spherize.md)
+[Swirl node](/documentation/Nodes/UV/Swirl.md)
+[Tiling and Offset node](/documentation/Nodes/UV/TilingAndOffset.md)
+[Twirl node](/documentation/Nodes/UV/Twirl.md)
+
\ No newline at end of file
diff --git a/documentation/Nodes/Geometry/Mesh.md b/documentation/Nodes/Geometry/Mesh.md
new file mode 100644
index 0000000..f366ba2
--- /dev/null
+++ b/documentation/Nodes/Geometry/Mesh.md
@@ -0,0 +1,10 @@
+# Mesh node
+Provides accees to node's position and scale in world space.
+
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|position|vec3|None|Node/object position in world space|
+|scale|vec3|None|Node/object scale in world space|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Maths/Vector/VectorTransform.md b/documentation/Nodes/Maths/Vector/VectorTransform.md
new file mode 100644
index 0000000..09e8b06
--- /dev/null
+++ b/documentation/Nodes/Maths/Vector/VectorTransform.md
@@ -0,0 +1,20 @@
+# Vector Transform node
+Returns the transformed vector of the input value in from one coordinate space to another.
This node is only available in shader mode SPATIAL.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|in|vector3|none|Input vector|
+
+**Controls**
+|Name|Options|Description|
+|---|---|---|
+|From|Local, World, View, Screen, Tangent|Coordinate space from which you want to transform the input vector|
+|To|Local, World, View, Screen, Tangent|Coordinate space to which you want to transform the input vector|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|out|vector3|None|Output vector|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Maths/Wave/NoiseSineWave.md b/documentation/Nodes/Maths/Wave/NoiseSineWave.md
new file mode 100644
index 0000000..7605ef5
--- /dev/null
+++ b/documentation/Nodes/Maths/Wave/NoiseSineWave.md
@@ -0,0 +1,15 @@
+# Noise Sine Wave node
+Returns the sine of the value of input in. For variance, psuedo-random noise is added to the amplitude of the sine wave, within a range determined by input min max.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|in|Dynamic vector|none|Input value|
+|min max|vec2|none|Minimum and Maximum values for noise intensity|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|out|Dynamic vector|None|Output value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Maths/Wave/SawtoothWave.md b/documentation/Nodes/Maths/Wave/SawtoothWave.md
new file mode 100644
index 0000000..2f744ad
--- /dev/null
+++ b/documentation/Nodes/Maths/Wave/SawtoothWave.md
@@ -0,0 +1,14 @@
+# Sawtooth Wave node
+Returns a sawtooth wave from the value of input in. Resulting output values will be between -1 and 1.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|in|Dynamic vector|none|Input value|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|out|Dynamic vector|None|Output value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Maths/Wave/SquareWave.md b/documentation/Nodes/Maths/Wave/SquareWave.md
new file mode 100644
index 0000000..b12dd04
--- /dev/null
+++ b/documentation/Nodes/Maths/Wave/SquareWave.md
@@ -0,0 +1,14 @@
+# Square Wave node
+Returns a square wave from the value of input in. Resulting output values will be between -1 and 1.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|in|Dynamic vector|none|Input value|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|out|Dynamic vector|None|Output value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Maths/Wave/TriangleWave.md b/documentation/Nodes/Maths/Wave/TriangleWave.md
new file mode 100644
index 0000000..ca7bdde
--- /dev/null
+++ b/documentation/Nodes/Maths/Wave/TriangleWave.md
@@ -0,0 +1,14 @@
+# Triangle Wave node
+Returns a triangle wave from the value of input in. Resulting output values will be between -1 and 1.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|in|Dynamic vector|none|Input value|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|out|Dynamic vector|None|Output value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/CheckerBoard.md b/documentation/Nodes/Procedural/CheckerBoard.md
new file mode 100644
index 0000000..9ed1cad
--- /dev/null
+++ b/documentation/Nodes/Procedural/CheckerBoard.md
@@ -0,0 +1,17 @@
+# Checker Board node
+Generates a checkerboard of alternating colors between inputs color A and color B based on input UV.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|color a|vec3|none|First checker color|
+|color b|vec3|none|Second checker color|
+|frequency|vec2|none|Scale of checkerboard per axis|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|vec3|None|Output checkerboard value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Noise/GradientNoise.md b/documentation/Nodes/Procedural/Noise/GradientNoise.md
new file mode 100644
index 0000000..fc516fd
--- /dev/null
+++ b/documentation/Nodes/Procedural/Noise/GradientNoise.md
@@ -0,0 +1,15 @@
+# Gradient Noise node
+Generates a gradient, or Perlin noise based on input UV. The resulting output values will be between -1 and 1.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|scale|float|none|Noise scale|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output noise value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Noise/PseudoRandomNoise.md b/documentation/Nodes/Procedural/Noise/PseudoRandomNoise.md
new file mode 100644
index 0000000..85ca577
--- /dev/null
+++ b/documentation/Nodes/Procedural/Noise/PseudoRandomNoise.md
@@ -0,0 +1,14 @@
+# Pseudo Random Noise node
+Generates a pseudo random noise based on input seed. The resulting output values will be between 0 and 1.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|seed|float|none|Input seed|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output noise value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Noise/SimpleNoise.md b/documentation/Nodes/Procedural/Noise/SimpleNoise.md
new file mode 100644
index 0000000..563bed9
--- /dev/null
+++ b/documentation/Nodes/Procedural/Noise/SimpleNoise.md
@@ -0,0 +1,15 @@
+# Simple Noise node
+Generates a simplex, or value noise based on input UV. The resulting output values will be between 0 and 1.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|scale|float|none|Noise scale|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output noise value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Noise/Voronoi.md b/documentation/Nodes/Procedural/Noise/Voronoi.md
new file mode 100644
index 0000000..4eb6da7
--- /dev/null
+++ b/documentation/Nodes/Procedural/Noise/Voronoi.md
@@ -0,0 +1,17 @@
+# Voronoi node
+Generates a Voronoi or Worley noise based on input UV. Voronoi noise is generated by calculating distances between a pixel and a lattice of points. By offsetting these points by a pseudo-random number, controlled by angle offset, a cluster of cells can be generated.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|cell density|float|none|Density of generated cells|
+|angle offset|float|none|Offset values for points|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output noise value|
+|cells|float|None|Raw cell data|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Shapes/Ellipse.md b/documentation/Nodes/Procedural/Shapes/Ellipse.md
new file mode 100644
index 0000000..4951947
--- /dev/null
+++ b/documentation/Nodes/Procedural/Shapes/Ellipse.md
@@ -0,0 +1,16 @@
+# Ellipse node
+Generates an ellipse shape based on input UV at the size specified by inputs width and height. The generated shape can be offset or tiled by connecting a [TilingAndOffset](/documentation/Nodes/UV/TilingAndOffset.md) node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating dot effect first connect your TilingAndOffset output through a Fract node.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|width|float|none|Ellipse width|
+|height|float|none|Ellipse height|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output ellipse value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Shapes/Polygon.md b/documentation/Nodes/Procedural/Shapes/Polygon.md
new file mode 100644
index 0000000..5c43999
--- /dev/null
+++ b/documentation/Nodes/Procedural/Shapes/Polygon.md
@@ -0,0 +1,17 @@
+# Polygon node
+Generates a regular polygon shape based on input UV at the size specified by inputs width and height. The polygon's amount of sides is determined by input sides. The generated shape can be offset or tiled by connecting a [TilingAndOffset](/documentation/Nodes/UV/TilingAndOffset.md) node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating polygon effect first connect your TilingAndOffset output through a Fract node.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|sides|int|none|Number of sides of the polygon|
+|width|float|none|Polygon width|
+|height|float|none|Polygon height|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output polygon value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Shapes/Rectangle.md b/documentation/Nodes/Procedural/Shapes/Rectangle.md
new file mode 100644
index 0000000..1db3c0e
--- /dev/null
+++ b/documentation/Nodes/Procedural/Shapes/Rectangle.md
@@ -0,0 +1,16 @@
+# Rectangle node
+Generates a rectangle shape based on input UV at the size specified by inputs width and height. The generated shape can be offset or tiled by connecting a [TilingAndOffset](/documentation/Nodes/UV/TilingAndOffset.md) node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating rectangle effect first connect your TilingAndOffset output through a Fract node.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|width|float|none|Rectangle width|
+|height|float|none|Rectangle height|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output rectangle value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Shapes/RoundedPolygon.md b/documentation/Nodes/Procedural/Shapes/RoundedPolygon.md
new file mode 100644
index 0000000..d50ee8a
--- /dev/null
+++ b/documentation/Nodes/Procedural/Shapes/RoundedPolygon.md
@@ -0,0 +1,18 @@
+# Rounded Polygon node
+Generates a rounded polygon shape based on input UV at the size specified by inputs width and height. The polygon's amount of sides is determined by input sides. The radius of each corner is defined by input roundnesss. The generated shape can be offset or tiled by connecting a [TilingAndOffset](/documentation/Nodes/UV/TilingAndOffset.md) node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating rounded polygon effect first connect your TilingAndOffset output through a Fract node.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|width|float|none|Rounded polygon width|
+|height|float|none|Rounded polygon height|
+|sides|int|none|Number of sides of the polygon|
+|roundness|float|none|Corner radius|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output rounded polygon value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/Procedural/Shapes/RoundedRectangle.md b/documentation/Nodes/Procedural/Shapes/RoundedRectangle.md
new file mode 100644
index 0000000..26d7a32
--- /dev/null
+++ b/documentation/Nodes/Procedural/Shapes/RoundedRectangle.md
@@ -0,0 +1,17 @@
+# Rounded Rectangle node
+Generates a rounded rectangle shape based on input UV at the size specified by inputs width and height. The radius of each corner is defined by input radius. The generated shape can be offset or tiled by connecting a [TilingAndOffset](/documentation/Nodes/UV/TilingAndOffset.md) node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating rounded rectangle effect first connect your TilingAndOffset output through a Fract node.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|width|float|none|Rounded rectangle width|
+|height|float|none|Rounded rectangle height|
+|radius|float|none|Corner radius|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|output|float|None|Output rounded rectangle value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/UV/Flipbook.md b/documentation/Nodes/UV/Flipbook.md
new file mode 100644
index 0000000..a27ea9e
--- /dev/null
+++ b/documentation/Nodes/UV/Flipbook.md
@@ -0,0 +1,18 @@
+# Flipbook node
+Creates a flipbook, or texture sheet animation, of the UVs supplied to input UV. The amount of tiles on the sheet are defined by the values of the inputs rows and columns.
+This node can be used to create a texture animation functionality, commonly used for particle effects and sprites. Animation frames will go from top left to bottom right.
This node is only available in shader modes SPATIAL and CANVAS ITEM.
Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|rows|int|none|Amount of horizontal tiles in texture sheet|
+|columns|int|none|Amount of vertical tiles in texture sheet|
+|anim speed|float|none|Animation speed|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|None|Output UV value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/UV/ParallaxMapping.md b/documentation/Nodes/UV/ParallaxMapping.md
new file mode 100644
index 0000000..61df2bd
--- /dev/null
+++ b/documentation/Nodes/UV/ParallaxMapping.md
@@ -0,0 +1,15 @@
+# Parallax mapping node
+The Parallax Mapping node lets you create a parallax effect that displaces a Material's UVs to create the illusion of depth inside a Material.
This node is only available in shader modes SPATIAL and CANVAS ITEM.
Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|height map|sampler2D|none|Height map texture|
+|amplitude|float|none|amplitude or depth of the effect|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|None|Output UV value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/UV/RadialShear.md b/documentation/Nodes/UV/RadialShear.md
new file mode 100644
index 0000000..f2defec
--- /dev/null
+++ b/documentation/Nodes/UV/RadialShear.md
@@ -0,0 +1,17 @@
+# Radial Shear node
+Applies a radial shear warping effect similar to a wave to the value of input UV.
Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|center|vec2|none|Center reference point|
+|strength|float|none|Strength of the effect|
+|offset|vec2|none|Individual channel offsets|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|None|Output UV value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/UV/Rotate.md b/documentation/Nodes/UV/Rotate.md
new file mode 100644
index 0000000..27b4013
--- /dev/null
+++ b/documentation/Nodes/UV/Rotate.md
@@ -0,0 +1,21 @@
+# Rotate node
+Rotates value of input UV around a reference point defined by input center by the amount of input rotation.
Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|center|vec2|none|Center reference point|
+|rotation|float|none|Rotation amount in radians|
+
+**Controls**
+|Name|Options|Description|
+|---|---|---|
+|Units|Degrees, Radians|Specifies the unit for rotation input|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|None|Output UV value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/UV/Spherize.md b/documentation/Nodes/UV/Spherize.md
new file mode 100644
index 0000000..e541be4
--- /dev/null
+++ b/documentation/Nodes/UV/Spherize.md
@@ -0,0 +1,17 @@
+# Spherize node
+Applies a spherical warping effect similar to a fisheye camera lens to the value of input UV.
Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|center|vec2|none|Center reference point|
+|strength|float|none|Strength of the effect|
+|offset|vec2|none|Individual channel offsets|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|None|Output UV value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/UV/Swirl.md b/documentation/Nodes/UV/Swirl.md
new file mode 100644
index 0000000..2e979dd
--- /dev/null
+++ b/documentation/Nodes/UV/Swirl.md
@@ -0,0 +1,17 @@
+# Swirl node
+Applies a swirl warping effect similar to a black hole to the value of input UV. Very similar to [Twirl node](/documentation/Nodes/UV/Twirl.md), key difference is it uses the inverse of vector length (One minus).
Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|center|vec2|none|Center reference point|
+|strength|float|none|Strength of the effect|
+|offset|vec2|none|Individual channel offsets|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|None|Output UV value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/UV/TilingAndOffset.md b/documentation/Nodes/UV/TilingAndOffset.md
new file mode 100644
index 0000000..360f2b5
--- /dev/null
+++ b/documentation/Nodes/UV/TilingAndOffset.md
@@ -0,0 +1,16 @@
+# Tiling and Offset node
+Tiles and offsets the value of input UV by the inputs tiling and offset respectively. This is commonly used for detail maps and scrolling textures over TIME.
Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|tiling|vec2|none|Amount of tiling to apply per channel|
+|offset|vec2|none|Amount of offset to apply per channel|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|None|Output UV value|
+___
\ No newline at end of file
diff --git a/documentation/Nodes/UV/Twirl.md b/documentation/Nodes/UV/Twirl.md
new file mode 100644
index 0000000..935ed51
--- /dev/null
+++ b/documentation/Nodes/UV/Twirl.md
@@ -0,0 +1,17 @@
+# Twirl node
+Applies a twirl warping effect similar to a black hole to the value of input UV. Very similar to [Swirl node](/documentation/Nodes/UV/Swirl.md), key difference is it uses the length of a vector.
Default value for uv input will be vec2(0, 0) for shader modes PARTICLES, SKY and FOG to avoid errors becouse UV variable is not available for these modes.
+
+
+**Inputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|UV|Input UV value|
+|center|vec2|none|Center reference point|
+|strength|float|none|Strength of the effect|
+|offset|vec2|none|Individual channel offsets|
+
+**Outputs**
+|Name|Type|Binding|Description|
+|---|---|---|---|
+|uv|vec2|None|Output UV value|
+___
\ No newline at end of file