category: code [glöplog]
Hi fellow demosceners! I wanted to drop a few lines about the new Shadertoy that I've been building with my colleague Pol Jeremias.


We have put together this site for live shader coding, quite in the tradition of the old shadertoy and all the other live coding site - heroku, sandbox, tributary, livecoder, polydraw, etc etc etc etc etc etc etc etc etc), but our own way. It's also a bit like a youtube thing where people post their work and get credit for it (yet it's free) and is also subject to comments, likes. The idea is that it serves [a] as a prototyping tool for people in the industry [b] as an opportunity for exposure of the shader makers [c] as a learning and teaching platform.

Current feature set for the coding part of the site is still reduced: simple code editing with video/sound input support. Features coming soon are webcam and mic support, generic multipass rendering and a sequencing tool.

As for the site itself, we have plans to improve a lot the navigation and add some new features.

So far we have more than 100 original shaders (as in "no wasted duplicates"), and to be honest, we've been surprised with the quality and originality of the entries. There's obviously a big demoscene influence in there, for most of the most impressive shaders are nothing by little raymarchers. However we also embrace the love to tiny simple shaders that teach those starting in the art of shader-making how to build something complex from small steps.

In anyway, if you wanna give us a hand developing your own shaders in there (complex or simple), you'll be very welcome.

added on the 2013-02-28 20:37:00 by iq iq
I've been playing around and there are two features that I'm missing and would really appreciate:
- Share drafts with other people. I don't want to submit a half finished shader each time I want to show it to my fellow coder. Right now, everyone who gets a draft link from me sees an error page.
- Embed other textures than the provided ones. I'd have liked to sample a sphere map for environment mapping, and there's none in the collection. Wouldn't it be nice to be able to provide an URL for a channel resource?

Other than that, really good job there! It's been a refreshing experience to prototype raymarching again :D
added on the 2013-02-28 20:43:14 by xTr1m xTr1m
the previews are quite tough it seems, dunno how you generate them, but it takes quite a while to load them on my not-so-highend machine.
Very cool!

Where can I upvote :D

The cloud shader you did is something very impressive...
I should put away the whitepapers on fluid dynamics... to fake it looks so much better :)
added on the 2013-02-28 22:08:31 by FeN FeN
cool stuff!
added on the 2013-02-28 22:21:13 by kusma kusma
yeah, the previews are slow, but it's not a local machine/GPU issue, but a database issue which we are fixing this weekend. then they should load fast even in the crappier machine.
added on the 2013-03-01 00:53:08 by iq iq
Oh wow. Thank you iq - you're amazing!
I wish we could CDC forum posts BB Image
added on the 2013-03-01 08:54:53 by cxnull cxnull
iq, you da man! Even in this state it is 100% better than glsl.heroku! <3 it.
added on the 2013-03-01 09:41:26 by raer raer
why not "shadertube" btw? ;)
added on the 2013-03-01 09:42:02 by raer raer
Nice work! BB Image

raer: I think Shadertoy is a better name. Tube is too passive. ;)
added on the 2013-03-01 12:02:14 by ham ham
Finally what glsl.heroku should be!

Only negative is it takes so long for all shaders to load (would prefer thumb nails) and sometimes they fail even. But hopefully will be fixed.

Also, is there a backbuffer sampler or not yet?
added on the 2013-03-01 12:32:17 by Optimus Optimus
Great. Now add the capability to load .obj or some other 3d format whenever you have the time.
added on the 2013-03-01 14:57:02 by xernobyl xernobyl
and a cookie to keep login :D
added on the 2013-03-01 22:03:13 by rez rez
needs audio channel input for videos!
added on the 2013-03-02 05:43:47 by tz tz
This is aweseome work iq, one small step for iq a giant leap for mankind :)
added on the 2013-03-02 11:26:06 by Zplex Zplex
iq: where in the process are you doing the FFT of the audio?
added on the 2013-03-04 09:43:44 by bloodnok bloodnok
ignore me... didn't realise webkit audio had an analyser...
added on the 2013-03-04 10:18:11 by bloodnok bloodnok
Good work iq!
added on the 2013-03-07 13:44:04 by LovCAPONE LovCAPONE
Soem of the Shaders are weird in Firefox, but they work great in Chrome...
added on the 2013-03-07 14:35:42 by Exin Exin
I cant view any of the shaders on the main page but I am able to play with he shader toy compiler. It would be nice if you had a filter for lower end systems like mine: firefox 19 with onboard intel graphics i945gm (partial shader 2.0)
added on the 2013-03-22 11:37:17 by spitfire spitfire
Shadertoy is really great. I don't think it's superseded GLSL Sandbox, because there's something to be said for anonymity and the ability to fork shaders... there's a fun communal thing happening there.

The quirks that I've had with Shadertoy amount mainly to browser issues. Chrome is definitely preferred for OS X at least. The only remaining quirk that I run into is that when multiple shaders on a "browse" page use the same video clip, the video clip will only render on one of the previews.

Backbuffer support has been mentioned, but what might be even cooler is some nodegraph ala QC, maxMSP, VVVV, where we can control the output, linking to secondary/tertiary(etc.) shaders, and perhaps do feedback loops.

Vertex shader support and some kind of model loading/model examples would add a new real of usefulness for demoing and testing stuff. A couple more media clips would be nice as well! :)

added on the 2013-03-23 06:09:47 by gtoledo3 gtoledo3
Multipass rendering, with arbitrary number of passes refreshed at arbitrary intervals (not necessarily every frame) of arbitrary resolutions is coming :) That should allow to do not only glow, DoF and other classic effects, but also fluid sim and videogames (state based stuff, basically). It's priority number 1 right now.

The several-videos issue is a browser problem as far as i've been able to debug :(

We made the page with the very intentional idea of not being anonymous, but more like the demoscene, where people are proud to have their name in great prods. Forking... we have serious philosophical discussions in that regard.
added on the 2013-03-23 07:21:51 by iq iq
While we wait fore multipass to be implemented, here's a very rudimentary proto-mini-demo: https://www.shadertoy.com/view/4slGz4
added on the 2013-03-23 07:22:35 by iq iq
had a brief look. cool thing. nice sample shaders already. a lil buggered is the site layout. needs some fixes. the preview edge hides behind a scrollbar when comments are done. the bar at the bottom is annoying overlayed. features to have are: to load textures from hdd or url. or maybe a procedural texture thing. and how about traditional sample meshes. you know cube, sphere, torus, the knot & the duck. the industry still uses them. you can still raymarch some stuff outta it.

minor is that the browsers definetely still have issues. firefox doesn't have the audio plug and chrome crashes webgl if the shader isn't good.

nice tool anyway. ;)
added on the 2013-03-23 08:48:29 by yumeji yumeji
For what it's worth, I wasn't implying that Shadertoy should be any different as far as forking or possibility of anonymity goes. There's always sandbox for that.

As far as people being proud of putting their name on something, I don't think that's something that's common only in the demoscene.

However, I would think that if someone posts something without their name it's because they're interested in offering up some kind of technique or look without the trappings of their name attached to it, so they don't have a perlin ball with a million upvotes because they're vj whahoozits, and also letting people do whatever they want to with the code without expecting an ego stroke...not because they don't think the work is worth something.
added on the 2013-03-24 02:24:39 by gtoledo3 gtoledo3