Designing a Clearer Dijkstra Experience
Dijkstra’s Algorithm often feels difficult because users must track several changing states at once: the current node, tentative distances, updated neighbors, visited nodes, and the final shortest-path tree.
This project focuses on making those changes easier to follow by showing what is active, what has changed, and why a distance update happened. The design emphasizes visible system state, consistent feedback, and a clear separation between the algorithm process and the final tree result.
Quick Facts
User Problem
Users often understand the basic idea of “pick the nearest node,” but still struggle to see why a distance changes, what “visited” or “settled” means, and how the final shortest-path tree is produced. A common confusion is mixing Dijkstra’s result with a minimum spanning tree because both involve graph edges and a tree-like outcome.
UX Challenge
Concept Clarity
Key UX Decisions
Demo
Interaction Focus
The animation is designed to help users follow node selection, edge relaxation, and distance updates in a readable sequence, then see how those updates become the final shortest-path tree.
Design Process
- Identified confusion points around settled state, distance updates, and final tree interpretation.
- Separated the experience into two visual phases so process and result would not compete for attention.
- Designed reusable state cues for active node, settled nodes, updated neighbors, and parent-edge logic.
- Refined pacing and captions so the most important changes were visible without overcrowding the graph.
Accessibility & Learnability
- Consistent state cues reduce cognitive search during graph updates.
- Short explanatory captions support reasoning without overwhelming the screen.
- Non-color-only meaning helps communicate graph state through labels, motion, and structural emphasis.
- Paced transitions allow users to process one shortest-path update at a time.
Outcome
The final design makes Dijkstra easier to follow by turning shortest-path reasoning into a visible sequence of states instead of a mentally reconstructed process. Users can see what changed, why it changed, and how the resulting parent pointers form the final shortest-path tree.