Time for reinventing the wheel again!

Shadertoy is great and all, but I didn’t find it super comfortable to use.

  • Can’t use your own editor
  • Browsers eat my battery!

Instead of staying mad at things, I took this as a learning opportunity and made an offline version.

Introducing: Prototoy!

Prototoy is a rather simple program, it allows you to load a shader from your disk, show it in a window and watch for file changes to hot reload it. Make that in Rust too of course - because why not - and voilà!

ShaderToy Viewer

USAGE:
    prototoy [FLAGS] <shader_path>

FLAGS:
    -h, --help       Prints help information
    -s               only render new frame when the shader changes
    -V, --version    Prints version information

ARGS:
    <shader_path>    path of the GLSL shader

Here’s the code on GitHub as usual!

Caveats!

Of course I didn’t try to rewrite the full set of features of the original website, but the core idea is there :)

Feel free to open PRs if you feel it’s missing something important!