disconnected
MIDI connection
Not connected. Web MIDI needs Chrome/Edge + a secure context.
Fragment shader (GLSL ES 1.00)
Drop a .frag / .glsl / .vfrag file here, or
Background textures — u_texture1…4
Drop an image on a slot; it is converted to the chosen pixel format on save
(row-major, top row first) and LZ4-block compressed. Images larger than 1024 px on any
side are auto-scaled down (aspect preserved). Hidden slots keep their image if you raise the
count again.
Load/Save textures as a
.TEX file (uncompressed, vfrag.md Part B) —
a texture "block" independent of any shader, for reuse across projects. Loading
replaces all current textures with the file's contents.Sprite atlas — u_sprites
×
Load/Save the sprite atlas as a
.SPR file (uncompressed,
vfrag.md Part B) — independent of any shader, for reuse across projects. Loading replaces the
current atlas with the file's contents. Import GIF frames spreads an
animated GIF's frames across the grid (row-major); a GIF with more than 256 frames is
evenly reduced to fit the 16×16 max. Import tilemap slices one image
evenly into the chosen grid — a square preset or a User… cols×rows (e.g.
8×6) — and lays the tiles row-major into the atlas (≤ 256 tiles).Preview
Aspect:
Shader preview
Renders ~2 s after you load or stop editing a shader.
✕
4:3
u_mouse: (0, 0)
0:00
Modulators
up to
adds any missing
u_modulatorN up to the selected number (never removes)
Export
Extended VEX shader →
.vfrag (shader + textures, LZ4-packed). Regular shader → .frag (shader code only).