{"slug": "shadertoy", "name": "Shadertoy", "category": "media", "category_name": "Media and creative", "description": "", "recommenders": 4, "commenters": 11, "warners": 0, "score": 5.121, "rising": -1.31, "first": "2025-11-13", "latest": "2026-09-10", "why": "https://www.shadertoy.com/ is a goldmine for learning shaders", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 8, "compare": 0, "warn": 0}, "spark": [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "https://www.shadertoy.com/ is a goldmine for learning shaders", "kind": "", "icon": true, "domain": "shadertoy.com", "github_repo": null, "official_url": "https://www.shadertoy.com/", "pricing": "", "aliases": ["Shadertoy"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 750726400, "item_id": 46920400, "url": "https://news.ycombinator.com/item?id=46920400", "by": "djmips", "date": "2026-02-06", "stance": "recommend", "quote": "Try  https://www.shadertoy.com/view/tftfzj", "excerpt": "Try https://www.shadertoy.com/view/tftfzj Isolate each of the additive sine functions by commenting out all but one and view the different elements. Sine wave left to right, Sine wave up to down, Sine wave diagonal, Sine wave circular - and then observe the resulting pattern is just the sum of the atomic parts. Play with it to learn.", "context": "", "use_case": "learning shaders by example", "switched_from": "", "story": "Plasma Effect"}, {"id": 744998848, "item_id": 46562428, "url": "https://news.ycombinator.com/item?id=46562428", "by": "lionleaf", "date": "2026-01-09", "stance": "recommend", "quote": "Shadertoy might fit that category?", "excerpt": "Shadertoy might fit that category? Runs in the browser, are all fragment shaders and without a size limit afaik, but they tend to be small-ish https://www.shadertoy.com/", "context": "", "use_case": "Browser-based shader demos", "switched_from": "", "story": "JavaScript Demos in 140 Characters"}, {"id": 739190640, "item_id": 46199415, "url": "https://news.ycombinator.com/item?id=46199415", "by": "jesse__", "date": "2025-12-08", "stance": "recommend", "quote": "https://www.shadertoy.com/ is a goldmine for learning shaders", "excerpt": "https://www.shadertoy.com/ is a goldmine for learning shaders", "context": "", "use_case": "Learning shaders", "switched_from": "", "story": "A series of tricks and techniques I learned doing tiny GLSL demos"}, {"id": 736379280, "item_id": 46023705, "url": "https://news.ycombinator.com/item?id=46023705", "by": "immibis", "date": "2025-11-23", "stance": "recommend", "quote": "You can do some pretty impressive things: https://shadertoy.com/", "excerpt": "You can do some pretty impressive things: https://shadertoy.com/ I skimmed it but didn't see any mention of \"ray marching\", which is raytracing done in a shader. GPUs are pretty fast now. You can just do that. However you do have to encode the scene geometry analytically in the shader - if you try to raytrace a big bag of triangles, it's still too slow. There's more info on this and other techniques at https://iquile", "context": "", "use_case": "GPU shader experiments", "switched_from": "", "story": "Shaders: How to draw high fidelity graphics with just x and y coordinates"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["implementing tiling shaders", "writing and sharing shaders", "shader experiments", "shader animation", "shader editing with live previews", "learning shaders by example"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48136000", "title": "Naturally Occurring Quasicrystals", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49614575", "title": "Generating the P3 Tiling", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47228724", "title": "item 47228724", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46867271", "title": "Plasma Effect", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46691548", "title": "Snow Simulation Toy", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46557489", "title": "JavaScript Demos in 140 Characters", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1, "recommend": 1}, "2025-12": {"neutral": 1, "recommend": 1}, "2026-01": {"neutral": 2, "recommend": 1}, "2026-02": {"recommend": 1}, "2026-03": {"neutral": 1}, "2026-04": {}, "2026-05": {"neutral": 2}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {"neutral": 1}, "2026-10": {}}, "quotes": [{"id": 794221600, "item_id": 49638850, "url": "https://news.ycombinator.com/item?id=49638850", "by": "Panzerschrek", "date": "2026-09-10", "stance": "neutral", "quote": "Once I have implemented such tiling using shadertoy.", "excerpt": "Once I have implemented such tiling using shadertoy. Source code: https://github.com/Panzerschrek/shader_bits/blob/master/penrose_tiling.glsl. No recursion is really needed (which isn't supported in shaders), but a plain loop with N iterations to achieve tiling of depth N.", "context": "", "use_case": "implementing tiling shaders", "switched_from": "", "story": "Generating the P3 Tiling"}, {"id": 770521216, "item_id": 48157576, "url": "https://news.ycombinator.com/item?id=48157576", "by": "danwills", "date": "2026-05-16", "stance": "neutral", "quote": "https://www.shadertoy.com/view/7Xl3Ws", "excerpt": "Wow this is too much fun for simple sum-of-cosines but I shouldn't be surprised (have played with FFT a bit, and I know of Reimann Zeta Function.. sines are amazing!) I doubled the angle so that it doesn't drift to the side any more.. and put it back to 7-symmetry, but left it with the coloring I added (now adjustable via consts): https://www.shadertoy.com/view/7Xl3Ws And a small tweak: https://www.shadertoy.com/view", "context": "", "use_case": "writing and sharing shaders", "switched_from": "", "story": "Naturally Occurring Quasicrystals"}, {"id": 770518560, "item_id": 48157410, "url": "https://news.ycombinator.com/item?id=48157410", "by": "danwills", "date": "2026-05-15", "stance": "neutral", "quote": "I experimented with non-integer symmetries", "excerpt": "Ah silly me, you put the sources in the comment!! Thanks for that I will have a read for sure! It struck me as looking a bit like a demoscene plasma effect but with a radial/angular aspect! (also reminds me of cymatics diagrams a bit!) I experimented with non-integer symmetries and it seemed not to introduce discontinuities, and I made it produce an RGB value for fun too: https://www.shadertoy.com/view/7XsGWs", "context": "", "use_case": "shader experiments", "switched_from": "", "story": "Naturally Occurring Quasicrystals"}, {"id": 770509440, "item_id": 48156840, "url": "https://news.ycombinator.com/item?id=48156840", "by": "pvillano", "date": "2026-05-15", "stance": "neutral", "quote": "I remade the hero GIF in HD", "excerpt": "I remade the hero GIF in HD https://www.shadertoy.com/view/sXsGDl", "context": "", "use_case": "Shader animation", "switched_from": "", "story": "Naturally Occurring Quasicrystals"}, {"id": 755659600, "item_id": 47228725, "url": "https://news.ycombinator.com/item?id=47228725", "by": "armeet", "date": "2026-03-02", "stance": "neutral", "quote": "Write fragment shaders in editable cells with live previews \u2014 like a Jupyter notebook but for shaders.", "excerpt": "Write fragment shaders in editable cells with live previews \u2014 like a Jupyter notebook but for shaders. Source: https://github.com/armeetj/shadertoy", "context": "", "use_case": "Shader editing with live previews", "switched_from": "", "story": null}, {"id": 750726400, "item_id": 46920400, "url": "https://news.ycombinator.com/item?id=46920400", "by": "djmips", "date": "2026-02-06", "stance": "recommend", "quote": "Try  https://www.shadertoy.com/view/tftfzj", "excerpt": "Try https://www.shadertoy.com/view/tftfzj Isolate each of the additive sine functions by commenting out all but one and view the different elements. Sine wave left to right, Sine wave up to down, Sine wave diagonal, Sine wave circular - and then observe the resulting pattern is just the sum of the atomic parts. Play with it to learn.", "context": "", "use_case": "learning shaders by example", "switched_from": "", "story": "Plasma Effect"}, {"id": 748528912, "item_id": 46783057, "url": "https://news.ycombinator.com/item?id=46783057", "by": "talkingtab", "date": "2026-01-27", "stance": "neutral", "quote": "I'm learning about shadertoy", "excerpt": "I'm learning about shadertoy so immediately went here: https://www.shadertoy.com/view/tfKfRw But no snow piling up which is nice!", "context": "", "use_case": "Learning shader programming", "switched_from": "", "story": "Snow Simulation Toy"}, {"id": 744998848, "item_id": 46562428, "url": "https://news.ycombinator.com/item?id=46562428", "by": "lionleaf", "date": "2026-01-09", "stance": "recommend", "quote": "Shadertoy might fit that category?", "excerpt": "Shadertoy might fit that category? Runs in the browser, are all fragment shaders and without a size limit afaik, but they tend to be small-ish https://www.shadertoy.com/", "context": "", "use_case": "Browser-based shader demos", "switched_from": "", "story": "JavaScript Demos in 140 Characters"}, {"id": 744611553, "item_id": 46538222, "url": "https://news.ycombinator.com/item?id=46538222", "by": "greggman65", "date": "2026-01-07", "stance": "neutral", "quote": "There's several of these on shadertoy", "excerpt": "There's several of these on shadertoy https://www.shadertoy.com/results?query=crt I made a Pico-8 post processing script using a few https://greggman.github.io/pico-8-post-processing/nano-villager_html/ also an article on starting one on WebGPU here https://webgpufundamentals.org/webgpu/lessons/webgpu-post-processing.html", "context": "", "use_case": "", "switched_from": "", "story": "GLSL Web CRT Shader"}, {"id": 739190640, "item_id": 46199415, "url": "https://news.ycombinator.com/item?id=46199415", "by": "jesse__", "date": "2025-12-08", "stance": "recommend", "quote": "https://www.shadertoy.com/ is a goldmine for learning shaders", "excerpt": "https://www.shadertoy.com/ is a goldmine for learning shaders", "context": "", "use_case": "Learning shaders", "switched_from": "", "story": "A series of tricks and techniques I learned doing tiny GLSL demos"}, {"id": 738270912, "item_id": 46141932, "url": "https://news.ycombinator.com/item?id=46141932", "by": "djmips", "date": "2025-12-03", "stance": "neutral", "quote": "Shadertoy even has procedural audio but it doesn't get used enough.", "excerpt": "Nice, that's the optimized version - sounds actually a little different than the original one it's derived from. (actually better which I didn't expect) Original: https://dittytoy.net/ditty/24373308b4 I like how music recognition flags it as the original Jarre piece. I first did stuff like this when I was a teen using a 6502 machine and a synth card - using white noise to make tshhh snares etc. All coded in 6502. The", "context": "", "use_case": "Shader art", "switched_from": "", "story": "How to Synthesize a House Loop"}, {"id": 736379280, "item_id": 46023705, "url": "https://news.ycombinator.com/item?id=46023705", "by": "immibis", "date": "2025-11-23", "stance": "recommend", "quote": "You can do some pretty impressive things: https://shadertoy.com/", "excerpt": "You can do some pretty impressive things: https://shadertoy.com/ I skimmed it but didn't see any mention of \"ray marching\", which is raytracing done in a shader. GPUs are pretty fast now. You can just do that. However you do have to encode the scene geometry analytically in the shader - if you try to raytrace a big bag of triangles, it's still too slow. There's more info on this and other techniques at https://iquile", "context": "", "use_case": "GPU shader experiments", "switched_from": "", "story": "Shaders: How to draw high fidelity graphics with just x and y coordinates"}, {"id": 734627312, "item_id": 45914207, "url": "https://news.ycombinator.com/item?id=45914207", "by": "wartywhoa23", "date": "2025-11-13", "stance": "neutral", "quote": "And yep, there (mostly) is!", "excerpt": "I wish there was an url parameter to share this fullscreen right away! UPDATE: And yep, there (mostly) is! https://www.shadertoy.com/embed/4dsXzM?gui=false&paused=false", "context": "", "use_case": "", "switched_from": "", "story": "Human Fovea Detector"}]}