@gogomi/pi-glsl-shader-vision
GLSL fragment shader viewer for Pi Agent — live WebGL preview, Tweakpane uniform controls, presets, probe sheets & video export
Package details
Install @gogomi/pi-glsl-shader-vision from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@gogomi/pi-glsl-shader-vision- Package
@gogomi/pi-glsl-shader-vision- Version
0.1.7- Published
- May 4, 2026
- Downloads
- not available
- Author
- gogomi
- License
- MIT
- Types
- extension, skill
- Size
- 96.9 KB
- Dependencies
- 2 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./index.ts"
],
"skills": [
"./skills/glsl-shader-vision"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
GLSL Shader Vision — Pi Extension
Local WebGL viewer for GLSL .frag fragment shaders, integrated as a Pi Agent extension. Preview, animate, tweak uniforms, and generate visual evidence — all without leaving the terminal.
Features
- Animated WebGL preview of fragment shaders
- UI controls generated from
.params.json(sliders, colors, checkboxes, dropdowns) - Presets to save and switch between visual variants
- Hot reload when editing
.fragor.params.json - Shadertoy mode — auto-detects
mainImage()and wraps it - Probe sheets — timed captures via Puppeteer headless Chrome
- Configurable canvas — ratios: 1:1, 16:9, 4:3, 9:16, Fit + max size
- Play/Pause with auto-pause on hidden tabs
- GLSL errors shown as overlay on the canvas
Install
pi install npm:@gogomi/pi-glsl-shader-vision
Or manually:
git clone https://github.com/Gogomy/pi-glsl-shader-vision.git
cd pi-glsl-shader-vision
npm install
Reload Pi after install: /reload
Usage
Slash Commands (you)
/glsl-test → open bundled pool_wave test shader
/glsl-open examples/shaders/pool_wave.frag → open animated preview (local path)
/glsl-probe examples/shaders/pool_wave.frag → generate capture URLs
/glsl-state examples/shaders/pool_wave.frag → server/shader status
Agent Tools (called automatically by the agent)
| Tool | Description |
|---|---|
open_glsl_shader_preview |
Open WebGL preview and return URL |
render_glsl_shader_probe |
Generate contact sheet PNG |
read_glsl_shader_state |
Check shader/server state |
save_glsl_shader_preset |
Save uniform values as preset |
Examples
| Shader | Description |
|---|---|
pool_wave.frag |
Voronoi-based water, 3 layers, noise, pixelated — 14 controls, 3 presets |
Structure
index.ts ← Pi extension (commands + tools)
preview-server.mjs ← HTTP server + API + chokidar hot reload
public/ ← Viewer HTML/JS/CSS (WebGL + Tweakpane)
scripts/render-probe.mjs ← Puppeteer headless probe
skills/glsl-shader-vision/
SKILL.md ← Agent skill
examples/shaders/ ← Example shaders (.frag + .params + .presets)
docs/ ← Spec and plan
File Contract
For shader.frag:
shader.frag ← GLSL shader
shader.params.json ← UI controls
shader.presets.json ← Saved variants
Without .params.json, the shader still works with base uniforms (u_time, u_resolution, u_mouse).
Requirements
- Node.js ≥ 18
- Chrome/Edge for the viewer (WebGL)
- Puppeteer for probe sheets (installed with
npm install)