Skip to content
Shadertoy viewer/editor
C GLSL Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Shade it! - Shadertoy viewer/editor

Start with shader hash to autodownload json and assets
./shade_it 4dKfDV
or Drag and Drop from or Drag and Drop json from assets/glsl/st/
Stores json and screenshots in assets folder.

Middle mouse button to switch shader.
Press n to create new shader, will open in Editor
If file is changed and saved it should autocompile, press c to do that manually.
Adjust your editor before compiling:
#define EDITOR "/usr/bin/kate"
P to toggle rendering/pause.
S to override screenshot.
ESC to quit.


SDL2/SDL2 Image/glew/curl/jansson/fontstash

Get in touch on SDL-Discourse

More useful links:
SDL2 | SDL-Discourse | SDL2-Example Code | N. Nopper-Code | McKesson-Book | Íñigo Quílez | shadertoy

SDL2 Image is very easy to replace, like with Stb_image.

For a cross-platform build:
I don't really aim for a multi-platform build, but I am not against that either.
Due the lack of time/money (development ressources) I don't do that. Feel free to commit/fork or raise an issue.

Since inotify and epoll are used for the autocompile feature, you either need to get rid of the feature or look for a proper substitution.
I think libcurl and jansson are pretty much portable, some POSIX-features are used and I call system with chmod to set attributes, which isn't neccesary under most circumstances.

At the moment I work on FFT to make the fragment shaders audio responsive.

WebGL 2.0 / OpenGL ES 3.0 has tons of new features and the shadertoy-team has done a lot of work, I am unsure if I can keep up with all the features in the future, but I think this code isn't the worst boilerplate.

A detailed ToDo-List will be submitted.

You can’t perform that action at this time.