Skip to content
Frontend & Interactive Systems · 2026

Interactive Algorithm Visualizer

An educational visualization engine demonstrating sorting algorithms, graph pathfinding (A*, Dijkstra), and tree balancing with controllable stepping, execution rewind, and spatial complexity analytics.

Role Frontend Architect & Developer
Timeline 2026
Core Tech TypeScript, HTML5 Canvas
Source Code GitHub
visualizer // A* pathfinding canvas
60 FPS HARDWARE
ALGO: A* Heuristic
◀ STEP ▶ PLAY 1.5x
ST
Nodes: 10,240 Worker Lag: 0.0 ms Direct Canvas Blit
Canvas 2D Buffer Blitting
vs ~8 FPS with DOM SVG elements

01 / The Problem & Context

UI Freezing and Inefficient Rendering During Large Graph Traversals

Visualizing algorithms on thousands of nodes frequently blocks the main browser thread, resulting in skipped animation frames, unresponsive controls, and poor comprehension for learners.

02 / Architectural Approach

To address these requirements, the system was decomposed into modular boundaries that prioritize memory efficiency, predictable throughput, and low operational latency:

STEP 01

Web Worker Computation Offload

Decoupled algorithm execution from the UI by running graph and sorting computations in dedicated Web Workers, serializing state snapshots to the main thread.

STEP 02

Hardware-Accelerated Canvas Rendering

Replaced DOM-heavy SVG trees with custom requestAnimationFrame Canvas rendering, maintaining steady 60 FPS across 10,000+ simultaneous node evaluations.

STEP 03

Step-by-Step State Scrubbing

Engineered a time-travel debugger allowing users to pause, step backward, and inspect variable changes at each algorithm decision point.

03 / Key Technical Trade-Offs

Canvas 2D vs SVG DOM Elements

Rendering 10,000 DOM nodes creates layout thrashing. Direct Canvas buffer blitting keeps memory low and framerates at a constant 60 FPS.

Worker Thread Pipeline

Heavy pathfinding (e.g. A* on complex mazes) runs in parallel without starving UI interaction or playback scrub buttons.

04 / Measurable Results & Learnings

60 FPS Sustained Render Rate

↳ sustained at 10,000+ active nodes using Canvas 2D buffer blitting vs. ~8 FPS with SVG DOM trees

0 ms Main Thread Block Time

↳ A* heuristic & balancing computations 100% offloaded to dedicated Web Workers

10,000+ Concurrent Node Capacity

↳ smooth interactive graph navigation and rewind stepping without browser layout thrashing

Engineering Retrospective: Building this project demonstrated the compounding value of enforcing strict type contracts and profiling memory before scaling features. In production environments, simplicity and observability consistently beat complex abstraction layers.

05 / Technology Stack & Repository

TypeScriptHTML5 CanvasWeb WorkersSvelteTailwind CSS