Shaderoo: realtime ballpoint effect
shaderoo.org
shaderoo.org
My goal was to make something similar to Shadertoy but with some extra features. Having a fixed and simple set of functionality always helps in the creative process to focus on the goal itself rather than on the several methods available to achive the goal. Therefore i didn't want to overdo it with new functionalities and only implemented features i was missing most in shadertoy. Some basic main shadertoy functionality is there, but some features are missing.
Shaderoo is based exclusively on WebGL2, so WebGL1 is not enough (unlike shadertoy, which has some WebGL1 fallbacks). check webglreport.com for compatibility.
Shaderoo uses Ace as web-editor. See here for the keyboard shortcuts.
Shaderoo looks pretty cool! Having geometry shaders makes it a very different & potentially more powerful thing than ShaderToy at the moment.
That said, there are a whole bunch of projects out there with the same goal: ShaderToy plus a few features. ShaderToy's value to me isn't really it's features though, it's IQ and his prolific sharing and persistence, and also the large user base. Replicating that and doing better will be a lot harder than replicating and extending the features. I'll be playing with it, and I wish the project much good luck!
The website has horrible contrast though. Using blue heavily in the theme is nice and appropriate. Unfortunately, it uses too many shades and combines light blue tones with white. That accounts for the bad contrast.
From the description under the preview
I guess it somehow draws lines along in low-gradient directions in dark areas, with some randomization. But I can't really tell from looking at the code.
// calculate velocity change
vec2 dvel=vec2(0);
float dir = (float(p.idx%2)*2.-1.); // every 2nd particle is bent left/right
// vel tends towards gradient
dvel -= 10.*gu*(1.+sqrt(gl*2.))*sc;
// vel tends towards/away from normal to gradient (every second particle)
dvel -= 20.*N(gu)/(1.+1.*sqrt(gl*100.))*sc*dir;
// vel bends right/left (every second particle)
dvel += .06*N(p.vel)/(1.+gl*10.)*dir;https://thumbs.dreamstime.com/videothumb_large8470/84708180....
(Consider pitching this to A-ha.)