Use Cases & How-To Guides
AI-generated GLSL shaders for every creative domain โ VFX, game dev, streaming, data visualisation, and more.
How to use ShaderBot
Run a Discord command
Type a /shader, /dataviz, or /stream command in any channel. ShaderBot generates GLSL code and renders a preview GIF server-side, then replies in seconds.
/shader generate "sunset over ocean"Preview & tweak in Discord
The bot replies with an animated preview image. React with ๐จ to open the interactive editor, adjust parameters, or regenerate.
โ click ๐จ to open the live editorExport to your pipeline
Download the shader in any format: Shadertoy, Unity, Unreal, Godot, p5.js, OBS Browser Source, TouchDesigner GLSL TOP, and more.
/export --format unity --preset currentBrowse by domain
Post-production transitions, motion graphics, custom viewport shaders.
- OBS Browser Source overlay
- Viewport display shader
- Motion graphics GLSL
OptiFine & Iris-compatible GLSL starting points โ sky, water, ambient occlusion. Manual integration into pack conventions required.
- Generate sky shader
- Water reflection preset
- Ambient light shader
Godot GLSL shaders ready to use. Unity ShaderLab and Unreal Material exports are provided as starting points โ manual adaptation is required due to fundamental differences between GLSL and these shader systems.
- Godot visual shader
- Unity ShaderLab starting point
- Unreal Material reference
WebGL canvas embeds, Three.js materials, interactive site backgrounds.
- React/Next.js <canvas> embed
- Three.js ShaderMaterial
- p5.js WEBGL sketch
FFT-driven visuals for live performance, Resolume, TouchDesigner.
- Spectrum visualiser
- Beat-reactive shader
- TouchDesigner GLSL TOP
GLSL fragment shaders for WebXR and Quest skyboxes. True stereo rendering requires host-side multi-view setup; the exported shader is a starting point, not a plug-and-play stereo solution.
- WebXR fragment shader (mono base)
- Quest skybox preset
- AR passthrough overlay
Bar, line, pie and scatter charts in pure GLSL โ no D3, no DOM.
- Animated bar chart
- Live Bitcoin line chart
- Scatter cluster shader
Step-by-step shader guides generated on demand in Discord.
- Explain this shader
- Tutorial: noise functions
- Debug my GLSL
Real-time features
WebSocket live โ Twitch events, Discord audio, external APIs, collaboration, OBS.
Twitch / OBS Stream Overlays
Your live viewers, subs & hype train โ rendered as GLSL uniforms in real time.
Connect ShaderBot to your Twitch channel via EventSub. Every subscription, cheer, donation and Hype Train maps directly to uniform values (u_viewers, u_subs, u_donations, u_energy). OBS picks up the shader page at /obs/:roomId as a Browser Source โ no plugins needed.
Discord command
/stream connect [username] [shader]Link your Twitch username and choose the GLSL preset to animate.
Getting started
- 1Run /stream connect in your Discord server
- 2Add /obs/:roomId as an OBS Browser Source (1920ร1080)
- 3Go live โ viewer count and sub events animate the shader automatically
API Data Visualisation
Bitcoin price, weather, Discord stats โ polled every 5โ30 s, mapped to up to 64 shader floats.
The data pipeline polls any JSON API at a configurable interval (minimum 5 s) and normalises values into u_data[0..63]. Three built-in presets cover Bitcoin/USDT via CoinGecko, OpenWeatherMap, and Discord guild member counts. Any public JSON endpoint can be used with a custom JSONPath expression.
Discord command
/dataviz-live preset [bitcoin|weather|discord_stats] [shader]Pick a built-in data source and choose a GLSL preset to visualise it.
Getting started
- 1Run /dataviz-live preset bitcoin in Discord
- 2ShaderBot starts polling CoinGecko every 30 s
- 3Price changes pulse through u_data[0] in the shader automatically
Real-Time Collaborative Shader Editing
Multiple users tweak parameters together โ last-write-wins conflict resolution.
Open /collab/:roomId in any browser to get a shared dashboard. Each collaborator is assigned a unique colour. Uniform sliders update live across all connected clients with a last-write-wins conflict resolution policy. Per-user undo history (capped at 50 entries) lets you step back your own changes, but cannot recover changes overwritten by another collaborator. One-click snapshots export the current state as JSON.
Discord command
/collab start [preset]Create a new collaboration room and get the /collab link to share.
Getting started
- 1Run /collab start plasma in Discord
- 2Share the returned /collab/:roomId URL with your team
- 3Everyone adjusts sliders in real time โ changes appear instantly for all
Audio-Reactive Shaders (Discord Voice & Mic)
The bot joins your Discord voice channel and streams FFT data to server-side shader uniforms.
ShaderBot joins your Discord voice channel and analyses the audio stream server-side. The FFT spectrum fills u_data[0..31]; bass, mid, treble averages fill u_data[32..34]; beat detection flag is u_data[35]; overall loudness maps to u_energy and u_peak. BPM is estimated from inter-beat intervals; the detector is tuned for 60โ200 BPM โ genres outside this range (ambient, speedcore) may produce inaccurate BPM readings. โ Audio capture relies on undocumented Discord voice mechanisms and may break without notice on Discord API updates. Visual output is rendered in the web dashboard (live microphone preview) or as an OBS Browser Source โ it is never displayed inside Discord itself.
Discord command
/audio join [shader]Bot joins your current voice channel and starts the audio pipeline.
Getting started
- 1Join a Discord voice channel
- 2Run /audio join neon in Discord
- 3Music or speech drives the shader โ open your dashboard (mic preview) or OBS to see the visuals (output is never shown inside Discord)
OBS Dynamic Shader Background
Full-scene WebGL canvas as an OBS Browser Source โ swap shaders on the fly.
The /scene/:roomId page renders a full-resolution WebGL canvas that OBS loads as a Browser Source. Uniform patches are diffed server-side (only changed keys transmitted) and absorbed through a 50 ms jitter buffer for smooth animation. Resolution, shader and all parameters can be changed live via /scene commands without interrupting the stream.
Discord command
/scene create [preset] [resolution]Create an OBS scene room and get the /scene URL for OBS.
Getting started
- 1Run /scene create aurora 1080p in Discord
- 2Add the returned /scene/:roomId URL as an OBS Browser Source (1920ร1080)
- 3Use /scene shader or /scene param anytime to update live
Minecraft Shader Packs (OptiFine & Iris)
Generate OptiFine/Iris-compatible shader packs โ sky, water, ambient occlusion.
ShaderBot generates OptiFine & Iris compatible GLSL shader packs. Start from 50+ Minecraft presets (Vibrant Visuals style) and prototype sky, water and ambient-occlusion effects in real time, then export a clean .fsh / .vsh pack ready to drop into your shaderpacks folder โ no manual cleanup required.
Discord command
/minecraft preset [sky|water|ao]Pick a Minecraft shader preset and generate an OptiFine/Iris pack.
Getting started
- 1Run /minecraft preset sky in Discord
- 2Preview the 3D scene and tweak parameters live
- 3Export the .fsh / .vsh pack into your shaderpacks folder