Created
February 17, 2026 18:03
-
-
Save patriciogonzalezvivo/6e4ebb12c358e815058a1be9fac3b92b to your computer and use it in GitHub Desktop.
Shapes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "frag": "#ifdef GL_ES\nprecision mediump float;\n#endif\n\nuniform vec2 u_resolution;\nuniform vec2 u_mouse;\nuniform float u_time;\n\n// By default all 2D shapes and space functions asume\n// the center is at vec2(0.5, 0.5), this can be overloaded\n// by defining CENTER_2D to be something else, like vec2(0.0)\n// before the functions are include\n\n// #define CENTER_2D vec2(0.0)\n\n#include \"lygia/draw/fill.glsl\"\n#include \"lygia/space/aspect.glsl\"\n#include \"lygia/space/ratio.glsl\"\n#include \"lygia/space/center.glsl\"\n#include \"lygia/space/uncenter.glsl\"\n#include \"lygia/space/rotate.glsl\"\n\n#include \"lygia/sdf/circleSDF.glsl\"\n#include \"lygia/sdf/crossSDF.glsl\"\n#include \"lygia/sdf/flowerSDF.glsl\"\n#include \"lygia/sdf/gearSDF.glsl\"\n#include \"lygia/sdf/heartSDF.glsl\"\n#include \"lygia/sdf/hexSDF.glsl\"\n#include \"lygia/sdf/polySDF.glsl\"\n#include \"lygia/sdf/rectSDF.glsl\"\n#include \"lygia/sdf/raysSDF.glsl\"\n#include \"lygia/sdf/spiralSDF.glsl\"\n#include \"lygia/sdf/starSDF.glsl\"\n#include \"lygia/sdf/triSDF.glsl\"\n#include \"lygia/sdf/vesicaSDF.glsl\"\n#include \"lygia/sdf/rhombSDF.glsl\"\n\nvoid main(void) {\n vec4 color = vec4(vec3(0.0), 1.0);\n vec2 pixel = 1.0/u_resolution.xy;\n vec2 st = gl_FragCoord.xy * pixel;\n\n // Option 1\n st = ratio(st, u_resolution.xy);\n\n // // Option 2 \n // st = center(st);\n // st = aspect(st, u_resolution.xy);\n // st = uncenter(st);\n\n float cols = 4.0; \n st *= cols;\n vec2 st_i = floor(st);\n vec2 st_f = fract(st);\n // st_f = center(st_f);\n\n st_f = rotate(st_f, u_time * 0.4);\n\n float sdf = 0.0;\n float index = ( st_i.x + (cols-st_i.y - 1.0) * cols);\n \n if (index == 0.0)\n sdf = circleSDF( st_f );\n else if (index == 1.0)\n sdf = vesicaSDF( st_f, 0.25 );\n else if (index == 2.0)\n sdf = rhombSDF(st_f);\n else if (index == 3.0)\n sdf = triSDF( st_f );\n else if (index == 4.0)\n sdf = rectSDF( st_f, vec2(1.0) );\n else if (index == 5.0)\n sdf = polySDF( st_f, 5);\n else if (index == 6.0)\n sdf = hexSDF( st_f );\n else if (index == 7.0)\n sdf = starSDF(st_f, 5);\n else if (index == 8.0)\n sdf = flowerSDF(st_f, 5);\n else if (index == 9.0)\n sdf = crossSDF(st_f, 1.0);\n else if (index == 10.0)\n sdf = gearSDF(st_f, 10.0, 10);\n else if (index == 11.0)\n sdf = heartSDF(st_f);\n else if (index == 12.0)\n sdf = raysSDF(st_f, 14);\n else if (index == 13.0)\n sdf = spiralSDF(st_f, 0.1);\n else\n sdf = 1.0;\n\n color.rgb += fill(sdf, 0.5);\n \n gl_FragColor = color;\n}\n", | |
| "vert": "#ifdef GL_ES\nprecision mediump float;\n#endif\n\nattribute vec4 a_position;\nvarying vec4 v_position;\n\nvoid main() {\n v_position = a_position;\n gl_Position = a_position;\n}\n", | |
| "commands": [ | |
| "plot,off", | |
| "textures,off", | |
| "buffers,off", | |
| "cubemap,off", | |
| "camera_position,-0,-0,-2", | |
| "camera_look_at,0,0,0", | |
| "camera,default" | |
| ], | |
| "assets": {}, | |
| "history": [ | |
| { | |
| "gistId": "7b244166722b458e4aad093c171e483e", | |
| "owner": { | |
| "login": "patriciogonzalezvivo", | |
| "id": 346914, | |
| "avatar_url": "https://avatars.githubusercontent.com/u/346914?v=4" | |
| }, | |
| "loadedAt": "2026-02-17T18:03:42.134Z" | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment