| Crates.io | shekere |
| lib.rs | shekere |
| version | 0.12.0 |
| created_at | 2025-06-30 15:06:23.769405+00 |
| updated_at | 2025-09-16 13:55:42.231207+00 |
| description | Creative coding tool with shaders and sounds |
| homepage | |
| repository | https://github.com/katk3n/shekere |
| max_upload_size | |
| id | 1731975 |
| size | 1,553,617 |
shekere is a real-time shader art framework that combines WGSL shaders with sound input. It supports mouse interaction, OSC control (TidalCycles, etc.), and audio spectrum analysis.
cargo install shekere
Download binaries from Releases.
shekere <config_file>
shekere examples/basic/basic.toml
shekere config.tomlShekere v0.11.0 introduces powerful MIDI history functionality that enables sophisticated time-based effects without multi-pass rendering:
// Current MIDI values (compatible with previous versions)
let current_note = MidiNote(60u); // Current Middle C velocity
let current_cc = MidiControl(7u); // Current volume CC
let attack = MidiNoteOn(60u); // Note attack detection
// New: Historical MIDI values
let past_note = MidiNoteHistory(60u, 10u); // Middle C from 10 frames ago
let smooth_cc = MidiControlHistory(7u, 5u); // Volume CC from 5 frames ago
let old_attack = MidiNoteOnHistory(60u, 20u); // Note attack from 20 frames ago
// Create fadeout effects with exponential decay
fn create_fadeout(note: u32) -> f32 {
var intensity = 0.0;
for (var h = 0u; h < 30u; h++) {
let history_value = MidiNoteHistory(note, h);
let decay = exp(-f32(h) * 0.1);
intensity += history_value * decay;
}
return intensity / 30.0;
}
Key Features:
history = 0For detailed documentation, see:
The included examples directory contains the following samples:
examples/basic/: Basic time-based animationexamples/circular/: Circular pattern with concentric ringsexamples/mouse/: Mouse-controlled shader artexamples/spectrum/: Audio spectrum analysis visualizerexamples/osc/: TidalCycles integration shader artexamples/midi/: MIDI-controlled shader artexamples/midi_history/: MIDI history effects (fadeout, echo, time series analysis)examples/multi_pass/: Multi-pass rendering with blur effectsexamples/persistent/: Persistent texture effects and trail renderingexamples/ping_pong/: Ping-pong buffer simulation and kaleidoscope effectsUse these as reference to create your own shader art projects.