Free CC0 pixel-art shader generator
CrunchyShader makes the shaders a pixel-art game runs every frame, in your browser: looks (ink, neon, toon edges, hatching, outlines), eras and displays (8-bit, handheld green, 1-bit dither, CRT, LCD), sprite effects (hit flash, palette swap, dissolve, outline, wind sway, sparkles), screen transitions (wipes, iris, pixelate) and world effects (ripples, heat haze, fog, rain). There are more than 450 effects. Pick one from the strip or press Randomize, then tune its settings on a live preview: a test scene, a sprite, or your own screenshot, which never leaves your browser.
It is made for hobbyist game developers: people with a game to finish who don't want to learn shader math first.
Every effect exports for Godot 4 as a .gdshader and a ready ShaderMaterial. A screen
effect also comes as a one-node overlay you drag into your main scene, so nothing in your game moves, and a screen
transition comes with an autoload that covers the screen, changes the scene and uncovers it. For the
web (a plain JavaScript canvas game, Phaser, anything that draws on a canvas) you get the WebGL2 shader and a
tiny dependency-free runner: one call puts a look over your whole game, and your sprites get their effects on a canvas
of their own you draw like any image. A sprite effect is also baked into frames, a PNG strip, for any other engine,
on your own sprite if you load it. Every download carries a README that says how to use
it in your game.
Combos put several effects in one shader, because Godot gives a sprite one material: a burning player can be tinted too. Each layer has its own switch, strength and blend, and named states (calm, burning, chilled) export as a small script your game calls to switch between them, with a fade.
Every effect is integer math with stepped time, so Godot draws exactly what the preview shows, pixel for pixel, and the tests check that in a real Godot. Everything is made in code: no generative AI, no samples and no bundled art. Every shader and frame you export is CC0: use it in any game, commercial included, with no attribution.
The web version is free, with nothing to install and no account: open the page and start making. The paid desktop
app adds workflow, never effects: it plants itself in your Godot game's folder, every effect you save lands in
crunchy/shader/, a Library keeps them, an update rewrites one in place so the scenes using it keep
working, and it warns you before a change would remove a file one of your scenes uses.
Things you can make
- A CRT or handheld-green screen over your whole game, dropped in as one node
- A white hit flash, a dissolve and an outline for your enemies
- An iris or diamond wipe between levels, from one autoload call
- Rain, fog and heat haze over a level
- An ink, toon or neon look for the whole game
- A player sprite that switches between calm, burning and frozen states in one shader
- A Game Boy green look over a browser game drawn on a canvas, from one call to the web runner
- A dissolve for a defeated enemy in your own JavaScript game, or as frames for any engine
Questions
Is CrunchyShader free for commercial use?
Yes. Every shader and frame CrunchyShader exports for you is CC0, which puts it in the public domain: use it in commercial games, edit it and ship it, with no attribution and no royalties. The web version is free.
Does CrunchyShader use AI?
No. Every effect is a small hand-written recipe of integer math, printed as a shader by code. There is no generative AI in what it makes, and no sampled or bundled art.
Does it work with Godot?
Yes. Every effect exports for Godot 4 as a .gdshader and a ShaderMaterial. Screen effects also come as a one-node overlay for your main scene, and screen transitions as an autoload. The exports are tested by loading them into a real Godot and checking every pixel it draws against the preview.
Can I use it on the web or with another engine?
Yes. The web export is the WebGL2 shader with a tiny dependency-free runner and a demo page. For any other engine, sprite effects are baked into frames: a PNG strip and a JSON file you play like any sprite animation.
Can one sprite have several effects at once?
Yes, with a combo: several effects in one shader, each layer with its own switch, strength and blend. Name states such as calm or burning, and the Godot export adds a script your game calls to switch between them, with a fade.