Dijkstra’s Algorithm — weighted shortest path
A Search* — heuristic-guided pathfinding
BFS — unweighted shortest path
DFS — exhaustive search
Draw walls by clicking/dragging on the grid
Sorting
Bubble Sort — O(n²) with pairwise comparisons
Quick Sort — divide and conquer with pivot visualization
Merge Sort — divide and merge with overwrite animation
Neural Network
Forward Pass Visualization — watch activations propagate through layers
Xavier-initialized weights, sigmoid activations
Real-time value display on each neuron
🛠️ Tech Stack
React 18 + Vite
React Router (tab navigation)
HTML5 Canvas (neural net rendering)
Pure JavaScript algorithms (no libraries)
🧠 What I Learned
Implementing A* from scratch taught me why the heuristic must be admissible (never overestimate). I initially used Euclidean distance and noticed suboptimal paths on grid graphs — switching to Manhattan distance fixed it because it exactly matches the 4-directional movement cost.