Replace Minecraft's menu backgrounds with custom GLSL shaders. Includes a built-in shader editor with syntax highlighting.
- Live shader editor (press
Insertto open) - Works on all menu screens (title, singleplayer, multiplayer, options, etc.)
- Shadertoy compatible - paste shaders directly from Shadertoy
- Auto-compile or manual compile modes
- File manager for organizing shaders
- Syntax highlighting
- Install Fabric loader for Minecraft 1.21.10
- Download the latest release JAR
- Put it in your
.minecraft/modsfolder - Launch the game
Press Insert while in any menu to open the shader IDE. Press Insert or Esc to close it.
Shaders are saved in .minecraft/canvasglsl/. You can create folders to organize them.
Supported uniforms:
uniform float iTime;- Time in secondsuniform vec3 iResolution;- Screen resolution (width, height, aspect)uniform vec4 iMouse;- Mouse position (x, y, click x, click y)uniform int iFrame;- Frame counteruniform sampler2D iChannel0;- Procedural noise textures (iChannel0 through iChannel3)uniform float iTimeDelta;- Time since last frameuniform vec4 iDate;- Current date/time (year, month, day, seconds)uniform float iSampleRate;- Audio sample rate (44100)
Example shader:
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 uv = fragCoord / iResolution.xy;
vec3 col = 0.5 + 0.5 * cos(iTime + uv.xyx + vec3(0, 2, 4));
fragColor = vec4(col, 1.0);
}- Copy shader code from Shadertoy
- Paste into the editor
- Click "Compile" or enable auto-compile
- Done! The shader will render as your menu background
Insert- Toggle shader editorEsc- Close editorCtrl+S- Save current shader- Compile button - Compile shader manually
- Auto-compile toggle - Auto-compile on save
./gradlew buildOutput: build/libs/canvasglsl-*.jar
CC0 - Public Domain
