๐Ÿšง ShaderBot is currently in beta. Some features may evolve.Join the Beta!
Shaders ยท Examples ยท Guides

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

1

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"
2

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 editor
3

Export 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 current

Browse by domain

๐ŸŽฌ VFX & Motion

Post-production transitions, motion graphics, custom viewport shaders.

  • OBS Browser Source overlay
  • Viewport display shader
  • Motion graphics GLSL
โ›๏ธ Minecraft

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
๐Ÿ•น๏ธ Game Dev

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
๐ŸŒ Web & Creative

WebGL canvas embeds, Three.js materials, interactive site backgrounds.

  • React/Next.js <canvas> embed
  • Three.js ShaderMaterial
  • p5.js WEBGL sketch
๐ŸŽต Audio & VJ

FFT-driven visuals for live performance, Resolume, TouchDesigner.

  • Spectrum visualiser
  • Beat-reactive shader
  • TouchDesigner GLSL TOP
๐Ÿฅฝ VR / AR / XR

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
๐Ÿ“Š Data Visualisation

Bar, line, pie and scatter charts in pure GLSL โ€” no D3, no DOM.

  • Animated bar chart
  • Live Bitcoin line chart
  • Scatter cluster shader
๐ŸŽ“ Learn GLSL

Step-by-step shader guides generated on demand in Discord.

  • Explain this shader
  • Tutorial: noise functions
  • Debug my GLSL
WebSocket ยท Real-Time

Real-time features

WebSocket live โ€” Twitch events, Discord audio, external APIs, collaboration, OBS.

Twitch / OBSWebSocket

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

  1. 1Run /stream connect in your Discord server
  2. 2Add /obs/:roomId as an OBS Browser Source (1920ร—1080)
  3. 3Go live โ€” viewer count and sub events animate the shader automatically
Open in dashboard
Polled DataWebSocket

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

  1. 1Run /dataviz-live preset bitcoin in Discord
  2. 2ShaderBot starts polling CoinGecko every 30 s
  3. 3Price changes pulse through u_data[0] in the shader automatically
Open in dashboard
CollaborationWebSocket

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

  1. 1Run /collab start plasma in Discord
  2. 2Share the returned /collab/:roomId URL with your team
  3. 3Everyone adjusts sliders in real time โ€” changes appear instantly for all
Open in dashboard
AudioWebSocket

Audio-Reactive Shaders from Discord Voice

FFT analysis of your voice channel drives 64 frequency bins + beat detection.

ShaderBot joins your Discord voice channel and analyses the audio stream. 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 appears in the web dashboard or OBS โ€” not in Discord.

Discord command

/audio join [shader]

Bot joins your current voice channel and starts the audio pipeline.

Getting started

  1. 1Join a Discord voice channel
  2. 2Run /audio join neon in Discord
  3. 3Music or speech drives the shader โ€” open your dashboard or OBS to see the visuals (output is not visible in Discord)
Open in dashboard
OBSWebSocket

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

  1. 1Run /scene create aurora 1080p in Discord
  2. 2Add the returned /scene/:roomId URL as an OBS Browser Source (1920ร—1080)
  3. 3Use /scene shader or /scene param anytime to update live
Open in dashboard