A debugger-style desktop DSA visualizer powered by a Python event engine.
A desktop DSA visualizer built as an execution engine, not an animation tool.
This project separates algorithms from visualisation by running them inside a Python runtime that emits semantic events (compare, swap, mark, visit). The Electron frontend interprets these events to render the algorithm step-by-step.
Instead of hardcoding animations per algorithm, the UI behaves like a debugger for algorithms.
Algorithms describe what happens UI decides how it looks
The engine streams meaning — not array snapshots.
This allows the same visualization system to support:
- Sorting algorithms
- Trees and traversals
- Graph algorithms
- Backtracking
- Dynamic Programming
- Future ML visualizations
Electron (Renderer) → IPC Bridge → Python Engine (generator-based execution)
Algorithms run as generators and yield instructions: compare, swap, mark, unmark, commit
The frontend maintains visual state and applies events.
Most visualizers are tightly coupled animations. Adding a new algorithm requires writing new UI logic.
This project treats algorithms as programs and the visualizer as a player. One instruction set. Infinite algorithms.
- Teach algorithms through execution, not prerecorded animation
- Maintain clean separation of concerns
- Support pause / step / rewind naturally
- Keep algorithms testable outside the UI
ElectronJS + Python JSON event streaming via IPC