A while ago (8 years in fact) I wanted to make something like this. I made a slightly half-assed React library that used twgl to overlay a shader on an element on a page (or a canvas for some effects). One thing I had was measuring where an element was on the page and then using absolute positioning to put a canvas over it so effects could expand beyond the confines of the element. I still think that has potential for some fun things but browsers aren't really fast enough to keep it in the right place with scrolling so it never works properly. https://react-neon.ooer.com/ + https://github.com/onion2k/react-neon
These new libraries are much better than anything I came up with.
Browsers generally only allow a fixed number of WebGL contexts per page. So a generic element effect library has the issue that too many elements some will start losing contexts. The workaround is to just make one large screen size canvas and then figure out where the elements are you need to draw an effect for. now you only have one context drawing all the elements. But, you can’t know where to draw until the browser scrolls and renders so you’re always one frame behind.
It's been a while so I might be a little off, but the problem was that the effect would lag behind slightly (one frame?) because I used an observer to match where the element moved to because the overlay element was logged to the viewport. I think I did that to avoid having a canvas that was the size of the entire page. Where a canvas could just be abs positioned it was ok but for reasons I can't remember that didn't work for everything.
Is this lacking FPS caps or is something very unoptimized? Everything is smooth, but this website makes my computer run super hot and laptop fans spin up like nothing else does, even other shaders. (recent Chrome, recent MBP)
I started https://unicorn.studio (first of its kind for layer based shader composition) back in 2020! Thankful that I did because I actually had to learn GLSL the hard way. Not sure that I would have bothered if building it today.
Nice interface -- I made something similar but for a specific game (Binding of Isaac) because it has a specific way of implementing shaders for mods. https://sublimnl.github.io/IsaacShaderStudio/
I'm the Founder at https://shaders.com. Not frustrating at all, and Basement is an excellent team. Shader Lab looks like a solid tool for exploration and and creating effects, nothing slop about it (although I love the word "slopfork", that's new).
Our platform goes above and beyond that with a large collection of Pro presets and a unique capability in our component-based approach with reactive props, and of course broader framework support. All that, and our new MCP workflow for having your agent prompt effects, and we feel confident in our place in the market.
Would recommend checking out both Shader Lab AND shaders.com to anyone interested in creative shader effects for the web.
There are dozens of DCCs where you have a UI where you stack things (over-compositing, bottom to top).
And when you select one of these things you can change the parameters.
If this is a 'slopfork' of shaders.com then the latter is a 'slopfork' of <insert any DCC that had this pattern and existed before and has whatever anyone may consider 'less sloppy'>.
so does Photoshop and thousand other visual editing tools. Hardly a reason to claim it to be a copy.
Also "slopfork" seems harsh considering it seems limited, but well designed imo.
V cool. Works in ff on mac for me. Maybe vibe coded but it's a spectrum. Probably in need of a bit of polish and a better performing example & maybe resolution switching. Basement Studio is legit I have bought their fonts in the past.
Floating windows are a little pointless but aesthetic choice or a one shot ui. FPS would be nice, also distinction between canvas and void. Video export works great.
These new libraries are much better than anything I came up with.
Browsers generally only allow a fixed number of WebGL contexts per page. So a generic element effect library has the issue that too many elements some will start losing contexts. The workaround is to just make one large screen size canvas and then figure out where the elements are you need to draw an effect for. now you only have one context drawing all the elements. But, you can’t know where to draw until the browser scrolls and renders so you’re always one frame behind.
https://webgl2fundamentals.org/webgl/lessons/webgl-multiple-...
WebGPU doesn’t have this issue. You can use the same device with multiple canvases
https://webgpufundamentals.org/webgpu/lessons/webgpu-multipl...
Our platform goes above and beyond that with a large collection of Pro presets and a unique capability in our component-based approach with reactive props, and of course broader framework support. All that, and our new MCP workflow for having your agent prompt effects, and we feel confident in our place in the market.
Would recommend checking out both Shader Lab AND shaders.com to anyone interested in creative shader effects for the web.
Went to try it and then gave up after it asked me to sign up/log in
It's entirely free to try, build, etc with an account - you only need a paid license when you're ready to export/deploy
And when you select one of these things you can change the parameters.
If this is a 'slopfork' of shaders.com then the latter is a 'slopfork' of <insert any DCC that had this pattern and existed before and has whatever anyone may consider 'less sloppy'>.
OTTOMH: AfterEffects, Cavalry, Substance Designer's Layer panel, Tixl's layered textures, ...
Could you explain why you think this is a slopfork?
https://imgur.com/a/41BybD1
https://shoptalkshow.com/709/
The design language screams vibe coded to me.
Submitted a bug report.
Floating windows are a little pointless but aesthetic choice or a one shot ui. FPS would be nice, also distinction between canvas and void. Video export works great.