diff --git a/laborZionism.frag b/laborZionism.frag new file mode 100644 index 0000000..6f69171 --- /dev/null +++ b/laborZionism.frag @@ -0,0 +1,55 @@ +// Based on: https://thebookofshaders.com/edit.php#11/simplex-grid.frag +// Title: Labor Zionism +// Author Leo Coogan - 2025 - https://existential.beauty +// Author @patriciogv - 2015 - patriciogonzalezvivo.com + +#ifdef GL_ES +precision mediump float; +#endif + +uniform vec2 u_resolution; +uniform vec2 u_mouse; +uniform float u_time; + +vec2 skew (vec2 st) { + vec2 r = vec2(1.0); + r.x = 0.1*st.x; + r.y = st.y+0.5*r.x; + return r; +} + +vec3 simplexGrid (vec2 st) { + vec3 xyz = vec3(0.0); + + vec2 p = fract(skew(st)); + if (p.x > p.y) { + xyz.xy = 1.0-vec2(p.x,p.y-p.x); + xyz.z = p.y; + } else { + xyz.yz = 1.0-vec2(p.x-p.y,p.y); + xyz.x = p.x; + } + + return fract(xyz); +} + +void main() { + vec2 st = gl_FragCoord.xy/u_resolution.xy; + vec3 color = vec3(1.0); + + // Scale the space to see the grid + st *= 11.184 + u_time - 0.9 ; + + // Show the 2D grid + color.bg = fract(sin(st * u_time * 0.3 + st.x)) + fract(cos(st * u_time * 0.01 + st.x)); + + // Skew the 2D grid + color.rg = fract(skew(st * u_time)); + + // Subdivide the grid into to equilateral triangles + // color = simplexGrid(st); + + + gl_FragColor = vec4(color,1.0); +} + diff --git a/shader_boilerplate/shader.frag b/shaderBoilerplate/shader.frag similarity index 100% rename from shader_boilerplate/shader.frag rename to shaderBoilerplate/shader.frag diff --git a/shader_boilerplate/shader.vert b/shaderBoilerplate/shader.vert similarity index 100% rename from shader_boilerplate/shader.vert rename to shaderBoilerplate/shader.vert diff --git a/shader_boilerplate/sketch.js b/shaderBoilerplate/sketch.js similarity index 100% rename from shader_boilerplate/sketch.js rename to shaderBoilerplate/sketch.js diff --git a/shaderExample.frag b/shaderExample.frag new file mode 100644 index 0000000..a034fe4 --- /dev/null +++ b/shaderExample.frag @@ -0,0 +1,54 @@ +// Based on: https://thebookofshaders.com/edit.php#11/simplex-grid.frag +// Title: Shader Example +// Author Leo Coogan - 2025 - https://existential.beauty +// Author @patriciogv - 2015 - patriciogonzalezvivo.com + +#ifdef GL_ES +precision mediump float; +#endif + +uniform vec2 u_resolution; +uniform vec2 u_mouse; +uniform float u_time; + +vec2 skew (vec2 st) { + vec2 r = vec2(0.0); + r.x = 0.001*st.x; + r.y = st.y+0.5*r.x; + return r; +} + +vec3 simplexGrid (vec2 st) { + vec3 xyz = vec3(0.0); + + vec2 p = fract(skew(st)); + if (p.x > p.y) { + xyz.xy = 1.0-vec2(p.x,p.y-p.x); + xyz.z = p.y; + } else { + xyz.yz = 1.0-vec2(p.x-p.y,p.y); + xyz.x = p.x; + } + + return fract(xyz); +} + +void main() { + + vec2 st = gl_FragCoord.xy/u_resolution.xy; + vec3 color = vec3(1.0); + + // Scale the space to see the grid + st *= 11.184 + u_time * 0.001; + + // Show the 2D grid + color.rg = fract(sin(st * u_time * 0.3 + st.y)) + fract(cos(st * u_time * 0.1 + st.y)); + + // Skew the 2D grid + // color.rg = fract(skew(st)); + + // Subdivide the grid into to equilateral triangles + // color = simplexGrid(st); + + gl_FragColor = vec4(color,1.0); +}