ONEMANSHYO
dojo app
[V2_9]
Controls
Presets
Library
Code
Shader Timing
No Loop
---
1 Bar
2 Bars
4 Bars
8 Bars
16 Bars
32 Bars
---
Whole
Half
1/4
1/8
1/16
---
Chaos
Cycler
Mad Max
Psycho
Shader Reactivity
Whole
Half
1/4
1/8
1/16
---
Chaos
Cycler
Mad Max
Psycho
Sine
Cosine
Sawtooth
Triangle
Square
Noise
Random
Fibonacci
Prime
---
Chaos
Cycler
Mad Max
Psycho
Whole
Half
1/4
1/8
1/16
---
Chaos
Cycler
Mad Max
Psycho
Sine
Cosine
Sawtooth
Triangle
Square
Noise
Random
Fibonacci
Prime
---
Chaos
Cycler
Mad Max
Psycho
Whole
Half
1/4
1/8
1/16
---
Chaos
Cycler
Mad Max
Psycho
Sine
Cosine
Sawtooth
Triangle
Square
Noise
Random
Fibonacci
Prime
---
Chaos
Cycler
Mad Max
Psycho
Output
Landscape
Portrait
Square
720p
1080p
1440p
2160p
24 FPS
30 FPS
60 FPS
R
Control States
Custom
--- Library ---
Quick Test
HD Render
4K Final
Instagram Story
TikTok
Save
Delete
✓
✗
Compile
Copy Code
Export .txt
// ONEMANSHYO Dojo V2_9 - Flower Power // Available uniforms: // uniforms.time - elapsed time in seconds // uniforms.tempo - shader visual tempo (for modulator timing) // uniforms.modA - modulation source A (0.0-1.0, tempo-synced, bass audio-reactive) // uniforms.modB - modulation source B (0.0-1.0, tempo-synced, mid audio-reactive) // uniforms.modC - modulation source C (0.0-1.0, tempo-synced, treble audio-reactive) // uniforms.resolutionX, uniforms.resolutionY - canvas dimensions // // Note: Coordinates normalize by min(resolution.x, resolution.y) for consistent zoom across orientations @fragment fn fs_main(@builtin(position) coord: vec4
) -> @location(0) vec4
{ let resolution = vec2
(uniforms.resolutionX, uniforms.resolutionY); let time = uniforms.time; let tempo = uniforms.tempo; let modA = uniforms.modA; let modB = uniforms.modB; let modC = uniforms.modC; // Normalize tempo to a usable speed factor let tempoFactor = tempo / 60.0; // Normalize coordinates - using min dimension keeps same zoom in both orientations let uv = (coord.xy - resolution * 0.5) / min(resolution.x, resolution.y); // Settings - modA controls base radius let numCircles = 12; let baseRadius = 0.3 + modA * 0.2; let circleRadius = 0.15; // Rotation speed scales with tempo and modB let rotation = time * tempoFactor * (0.1 + modB * 0.3); var pattern = 0.0; // Draw circles in a ring for (var i = 0; i < numCircles; i = i + 1) { let fi = f32(i); let angle = (fi / 12.0) * 6.28318 + rotation; let circlePos = vec2
(cos(angle), sin(angle)) * baseRadius; let dist = length(uv - circlePos); // Outline only let outer = step(dist, circleRadius); let inner = step(dist, circleRadius - 0.03); pattern = pattern + (outer - inner); } // Center circle let centerDist = length(uv); let centerOuter = step(centerDist, circleRadius); let centerInner = step(centerDist, circleRadius - 0.03); pattern = pattern + (centerOuter - centerInner); // ModC controls brightness let brightness = 0.5 + modC * 0.5; let color = vec3
(pattern * brightness); return vec4
(color, 1.0); }
Preview As:
Portrait
Landscape
Square
LIBRARY
▼
USER PRESETS
▼
Import
Delete
Container Library
Add Current
Import
✓
✗
No containers in library. Click "Add Current" to save your first container.
Set Library Folder
Library
✓
Not configured
Processing...
Upload Audio
Play
Stop
Loop
Audio Start
Audio End
Audio Tempo
Pitch
Loop In
Loop Out
Grid
Remove Audio
WebGPU Ready