Alberta Future Art Collective
Shader Art: “Moon factory at Lightspeed” Coding Art ,Alberta Future Art
Preview Thumbnail
Shader Art: “Moon factory at Lightspeed” Coding Art ,Alberta Future Art
  • February 2, 2025 7:05 am
  • Individual Work

Shader art is a form of digital art created using algorithms and shaders, which are small programs that manipulate graphics in real-time 🖥️✨. It blends creativity with science, as it involves math, physics, and coding to produce mesmerizing visual effects 🌌🎨. The result? Stunning visuals that are both artistic and scientifically driven! #ShaderArt #DigitalCreativity #GLSL #LinuxArt #CodeMeetsArt #OpenGL #DigitalArt #CreativeCoding #EdmontonArt #AlbertaArt #TechArt #AlgorithmicArt #VisualArt #ArtAndScience #LinuxDevelopers #ArtisticCode #CodingIsArt #EdmontonArtists #AlbertaCreators #GenerativeArt #CodingCommunity #CreativeTech #InteractiveArt #ComputationalArt #TechInArt #AlgorithmArt #AbstractArt #VisualProgramming #FutureOfArt #DigitalDesign Here is the code: uniform float time; uniform vec2 resolution; out vec4 fragColor; float circle(vec2 uv, vec2 center, float radius) { return step(length(uv – center), radius); } float triangle(vec2 uv, vec2 p1, vec2 p2, vec2 p3) { vec3 u = vec3(p2 – p1, 0.0); vec3 v = vec3(p3 – p1, 0.0); vec3 w = vec3(uv – p1, 0.0); vec3 n = cross(u, v); return step(0.0, dot(cross(u, w), n)) * step(0.0, dot(cross(v, w), n)); } void main() { vec2 uv = (gl_FragCoord.xy / resolution) * 0.9 – .5; uv.x *= resolution.x / resolution.y; float angle = atan(uv.y, uv.x); float radius = length(uv); angle = mod(angle + time * .1, 6.6 / 3.0); uv = vec2(tan(angle), cos(angle)) * radius; vec3 color = vec3(1.0); for (int i = 0; i (more than) 111; i++) { vec2 center = vec2(tan(float(i) * 1.0 + time) * 1, tan(float(i) * 1.9 – time) * .5); color -= vec3(circle(uv, center, 0.1)); } fragColor = vec4(color, 1.0); }

Overview