AlgoBuddy is a cross-platform algorithm visualizer built in Rust using eframe and egui. It provides step-by-step interactive visualizations formatted according to the NeetCode 150 learning roadmap across 18 algorithmic categories. All 150 problems are available natively on Windows, macOS, and Linux, or in your browser via WebAssembly.
- 18 Roadmap Categories: Navigation is structured into 18 algorithmic topic categories featuring all 150 problems: Arrays & Hashing, Two Pointers, Sliding Window, Stack, Binary Search, Linked List, Trees, Tries, Backtracking, Heap / Priority Queue, 1D Dynamic Programming, Bit Manipulation, Math & Geometry, Greedy, Intervals, Graphs, 2D Dynamic Programming, and Advanced Graphs.
- Complete Problem Catalog: All 150 NeetCode roadmap problems are available in every build. Catalog completeness is separate from the ongoing per-visualizer manual QA program.
- Deterministic State Engine: Models algorithm execution as discrete state snapshots, enabling forward and backward timeline scrubbing, variable speed playback (0.25x - 4.00x), and synchronized source line highlighting.
- Solution Comparisons: Problems can provide multiple approaches with their own trace, source listing, complexity analysis, invariant, and visual state. Every Easy roadmap problem includes a common baseline or suboptimal comparison approach.
- Specialized Visual Renderers: Typed visual states drive dedicated renderers for arrays, hash-based collections, linked lists, trees and tries, graphs, and heaps.
- Theme & Accessibility System: Includes built-in dark/light themes alongside Protan/Deuteran Red-Green colorblind safe palettes.
Try AlgoBuddy directly in your browser without installation:
- Live Demo: https://rowrow620.github.io/AlgoBuddy
Requirements: a stable Rust toolchain with rustfmt and Clippy. The crate uses the Rust 2021 edition.
# Clone repository
git clone https://github.com/Rowrow620/AlgoBuddy.git
cd AlgoBuddy
# Launch AlgoBuddy
cargo run
# Execute the complete automated test suite
cargo test --all
For local WebAssembly development, also install Trunk and the Rust WASM target,
then run trunk serve:
rustup target add wasm32-unknown-unknown
cargo install trunk
trunk serve
AlgoBuddy uses a deterministic snapshot model where generator functions in src/algorithms/ execute synchronously upfront to produce a timeline vector of discrete state snapshots (Vec<Step>). Execution is routed through src/engine.rs and the focused dispatch and input modules under src/engine/. The interactive GUI renders the active snapshot through component and canvas modules under src/ui/.
For architecture details, model definitions, and contribution workflows, see CONTRIBUTING.md.
We welcome community contributions! Please review our community guidelines:
- Contributing Guide: Contributing
- Changelog: Changelog
- Release Process: Releasing AlgoBuddy
- Code of Conduct: Code of Conduct
- Security Policy: Security Policy
Distributed under the MIT License. See LICENSE for details.

