BLAZINGLY FAST terminal screensavers written in Rust!
tarts
(shortcut from Terminal Arts) is a collection of MEMORY SAFE
terminal-based screen savers that bring visual delight to your command line.
Built with ZERO-COST ABSTRACTIONS, these screen savers run efficiently while
providing stunning visual effects.
- π§οΈ Matrix Rain: Experience the famous "Matrix" digital rain effect right in your terminal
- 𧫠Conway's Game of Life: Watch the classic cellular automaton evolve before your eyes
- 𧩠Maze Generation: Get lost in procedurally generated mazes
- π¦ Boids: Witness the emergent flocking behavior of these simulated birds
- π§ 3D Cube: Renders a rotating 3D cube using terminal graphics with braille patterns for higher resolution.
- π¦ Crab: Animated crabs walking across your screen, interacting with each other and the environment.
- π© Rotating Donut: A mesmerizing rotating donut rendered in the terminal
Install directly using cargo:
cargo install tarts
or you can use it like a library for your own TUI app!
To use the screen savers, run the executable with the desired screen saver's name as an argument:
tarts matrix # The classic digital rain effect
tarts life # Conway's Game of Life
tarts maze # Watch a maze generate itself
tarts boids # Bird-like flocking simulation
tarts cube # 3d rotating cube using braille patterns
tarts crab # Ferris the crab with collisions
tarts donut # Rotating donut
Press q
or Esc
to exit (or even Ctrl+C).
Not implemented yet. I think it should be toml file where you can set options for effects.
This project uses standard Rust tooling:
# Build the project
cargo build --release
# Run tests
cargo test
# Benchmark performance
cargo bench
Contributions are welcome! Please feel free to submit pull requests, report bugs, and suggest features.
This project is licensed under the MIT License.
- Args parser to run with configuration (yaml or something)
- add pipes? https://asciinema.org/a/427066
- add cellular automation like https://www.reddit.com/r/neovim/comments/z70mg3/cellularautomatonnvim_my_first_plugin/