Pull to refresh

Show HN: Shader Lab, like Photoshop but for shaders (eng.basement.studio)

by ragojose 47 comments 160 points
Read article View on HN

47 comments

[−] elliottcarlson 25d ago
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/
[−] onion2k 25d ago
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.

[−] llbbdd 25d ago
Can you elaborate on the scrolling issue?
[−] greggman65 25d ago
It’s a WebGL issue, fixed in WebGPU.

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...

[−] onion2k 25d ago
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.
[−] sph 25d ago
Doesn't seem to load for me except the side windows. Firefox/Linux. HN hug of death?

The design language screams vibe coded to me.

[−] allan_s 25d ago
As a ESL, what is unnatural in the language used ?
[−] saintfire 25d ago
Design language, meaning the feel and how the user interacts with a product.

They're saying it follows the patterns that AI biases towards regarding feel and UI.

[−] esafak 25d ago
It works on MacOS Chrome.
[−] felixthehat 25d ago
looks like a slopfork of the fairly new https://shaders.com - frustrating for them!
[−] marchantweb 25d ago
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.

[−] felixthehat 25d ago
Ah nice! I enjoyed trying out your product when it was launched which called this app to mind. Commendable attitude!
[−] gavinray 25d ago
I'm not your target audience, but why do you gate your playground?

Went to try it and then gave up after it asked me to sign up/log in

[−] marchantweb 25d ago
Mostly due to account-tied permissions, such as asset uploads (images, video, etc) and for auto-saving/versioning.

It's entirely free to try, build, etc with an account - you only need a paid license when you're ready to export/deploy

[−] ragojose 25d ago
[dead]
[−] virtualritz 25d ago
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 .

OTTOMH: AfterEffects, Cavalry, Substance Designer's Layer panel, Tixl's layered textures, ...

[−] upmostly 25d ago
Honest question: If my web browser struggles to even render the preview, why in god's name would I put any of these presets on a production webpage?
[−] imcritic 25d ago
Please, don't. I don't want the same starting to happen on different sites...
[−] KingOfCoders 25d ago
They look nothing alike except they are both about shaders.

Could you explain why you think this is a slopfork?

[−] felixthehat 25d ago
Did you try the shader.com shader editor where you stack shaders and effects in layers? V similar approach!
[−] frabia 25d ago
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.
[−] felixthehat 25d ago
Maybe a little harsh yes. But compare these screenshots of the two products/features

https://imgur.com/a/41BybD1

[−] cududa 25d ago
I see a deep tree and a shallow tree in the two screenshots, representative of entirely different approaches.
[−] albedoa 25d ago
What would it take for you to ever admit that you are wrong.
[−] skrebbel 25d ago
"slopfork" nice
[−] felixthehat 25d ago
I heard the term used on the shoptalk podcast about cloudflare slopforking wordpress!

https://shoptalkshow.com/709/

[−] philipallstar 25d ago
Cloudflare really doesn't seem to have made slop or a fork.
[−] felixthehat 25d ago
I think it’s a jokey term for when you use ai to copy an existing project
[−] VerifiedReports 25d ago
No matter what, it's better than "vibecoding." Ugh.
[−] doingitwell 25d ago
Welcome to the world of zero cost software we were promised
[−] rib3ye 25d ago
Indeed we prefer the world where only deep-pocketed entrenched monopolies can do this.
[−] glhast 25d ago
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.
[−] hugodan 25d ago
Amazing work, I am a fan of unicorn studio, it was the first real try I saw at these no code design tools that have shaders as their output.

I wonder what makes you unsure that you would have not bothered in building it today? or what would you do different with todays knowledge?

[−] glhast 24d ago
Thanks!

I still would have built it today, what I was unsure of was whether I would have learned GLSL.

The models have been sub-par at writing shaders until recently. Without the friction of needing to learn the language itself to build it, I don't know if I would have.

The most fun I have today is trying to innovate new interesting techniques, which I wouldn't be able to do with the models alone.

[−] natdempk 25d ago
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)
[−] mawadev 25d ago
That is so laggy, but the UI looks really cool!
[−] sva_ 25d ago
When I clicked Add Layer and then tried to select an image source, it managed to crash Firefox pretty consistently.

Submitted a bug report.

[−] hmmokidk 25d ago
Bookmarking for later. Really curious to explore this when the brain cells are back online in the AM.
[−] bobbies-treats 25d ago
Tough for anyone to want to play around with until performance is improved. It's neat though.
[−] ragojose 25d ago
we're working on perf optimizations!
[−] paolatauru 23d ago
the binding of isaac use case is interesting bc thats where the context limit issue really bites. did you hit the ceiling on active effects or is there a lazy initialization trick you figured out
[−] realbigscrem 25d ago
Not to be mistaken for Unity Shaderlab: https://docs.unity.cn/Documentation/Manual/SL-Reference.html
[−] jameshart 25d ago
Maybe a unity3d.com URL would be more authoritative here.

https://docs.unity3d.com/560/Documentation/Manual/SL-Shader....

[−] ohyoutravel 25d ago
Doesn’t work for me. Seems vibe coded.
[−] ragojose 25d ago
can you give me more context so we can fix it? this is not vibe-coded :)
[−] roxana_haidiner 24d ago
the UI looks really nice! keep it up!
[−] bauenblockchain 24d ago
looking good
[−] aguacaterojo 25d ago
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.