Your code, frame by frame. Step forward. Step back.
A LeetCode-style playground where your solution becomes a visual execution trace for trees, graphs, grids, linked structures, and nested maps. JavaScript and Python in the browser, replayable state changes, and optional timing stats for JS.
JavaScript runs in a Web Worker; Python uses Pyodide in its own worker so the page stays responsive.
javascript
solution.jsfunction invertTree(root) {
if (!root) return null;
const left = invertTree(root.left);
const right = invertTree(root.right);
root.left = right;
root.right = left;
return root;
}Time-travel playback
Frame 42 / 60Callstack
See the algorithm, not just output
Replay how your data structures change. Understand and debug with a real execution trace.
JavaScript runs in a Web Worker; Python uses Pyodide in its own worker so the page stays responsive.
Play, pause, step, replay, and tune playback speed—including keyboard shortcuts.
Measure many runs with median, percentiles, and a chart. Benchmark mode is JS-only today.
How it works
Use the built-in editor with familiar patterns for each project category.
Run
Tracked APIs turn structural work into a callstack of frames—no canned animation.
Forward
Step forward and backward, change speed, and inspect each operation in the log.
Replay
Play, pause, step, replay, and tune playback speed—including keyboard shortcuts.
Callstack
Replay how your data structures change. Understand and debug with a real execution trace.
Algorithm gallery
Browse Projects
Open a curated playground to see the debugger on a real problem, or jump into the full browser.