| Crates.io | shimr |
| lib.rs | shimr |
| version | 0.0.1 |
| created_at | 2025-08-13 05:42:30.954929+00 |
| updated_at | 2025-08-13 05:42:30.954929+00 |
| description | Terminal transition effects using cellular automata |
| homepage | |
| repository | https://github.com/tensegrity-ai/shimr |
| max_upload_size | |
| id | 1793306 |
| size | 5,293 |
terminal transition effects using cellular automata
shimr creates organic transition effects for terminal UIs. watch your text dissolve into conway patterns, then crystallize into new forms. perfect for cyberpunk aesthetics and smooth state changes.
█ → ▓ → ▒ → ░ → · → )use shimr::prelude::*;
// morph between two text states
let start = "layer 0: attention";
let end = "layer 1: transformation";
let animation = shimr::morph(start, end)
.generations(15)
.glyph_set(GlyphSet::Cyberpunk)
.build();
// render each frame at 60fps
for frame in animation {
terminal.draw(frame)?;
}
hello world → [conway simulation] → goodbye moon
█████ █████ ░▒▓█░ ▒░▓██ ███████ ████
transform data grids through organic patterns:
let attention_matrix = arr2(&[[0.8, 0.2], [0.3, 0.9]]);
shimr::morph_grid(attention_matrix, target_matrix)
.rule(Rule::Conway)
.colormap(ColorMap::TokyoNight)
.build()
cells emit sparks during death, pull energy during birth:
shimr::particles()
.on_death('✦')
.on_birth('·')
.critical_mass('⚡')
[dependencies]
shimr = "0.1"
ratatui - integration with ratatui (enabled by default)cursive - cursive framework supportparticles - particle system effectscolor - 24-bit color support# basic text morphing
cargo run --example text_morph
# attention visualization (like in aiayn)
cargo run --example attention
# particle system demo
cargo run --example particles
shimr emerged from building aiayn, a terminal attention visualizer. we needed transitions that felt organic, like thought patterns evolving through neural networks.
every frame should feel alive. no harsh cuts or boring fades. just smooth, cellular evolution from one state to another.
we welcome contributions! please read CONTRIBUTING.md first.
ideas especially welcome for:
dual-licensed under MIT and Apache 2.0. choose whichever you prefer.
shimr: because state changes should shimmer