Not an animation. A debugger you can read.

Most algorithm sites play you a movie. VizLearn lets you drive: change the input, step through it, read the exact line of code running on every frame, then flip to the written explanation when you need the why.

  • Code, canvas, and log in lockstep

    This is the whole idea. The highlighted line, the canvas, and the log all describe the same instant: a value gets compared, the exact `if` lights up, and the log records it. When a lesson has multiple languages or approaches, the snippet follows your choice too.

  • Type your own input

    Change the array, target, graph, or operation sequence a lesson accepts, and the animation, code highlight, and log all rebuild around it — no fixed canned demo.

  • Scrub, step, and replay

    A real transport bar: drag the timeline, step one beat at a time, slow it down. Pause on the exact moment you don't understand and sit there as long as you need.

  • Hand-drawn, on purpose

    Everything is sketched on a 1920×1080 whiteboard in a single hand. It reads like a brilliant TA's notes, not a sterile UI — and that warmth is what makes dense ideas approachable.

  • Free to start, yours to keep

    Start learning with no account required. Recent lessons, bookmarks, and saved inputs stay in this browser; Lifetime syncs them across your devices.

For the stuck moment

The tools around the player matter too

The player opens the trace. The rest is for what happens next: reading the invariant behind it, or driving a structure with your own operations.

  • Explain is a real view

    Visualize shows the trace. Explain teaches the invariant, cost, edge cases, and common mistakes without needing the player open.

  • Data structures take operations

    Stacks, queues, linked lists, trees, heaps, and hash tables accept operation sequences, then animate the traversal and the write that changes the structure.

Not just one lesson

Predict the next step

Every sorting, search, and data-structure lesson can pause mid-trace and make you call the next move — swap or skip, go left or right. Recognizing an algorithm and predicting it are not the same skill.

  • The animation is the answer key

    Pause on a real decision — swap or not, go left or right — and lock in your guess. Then the next beat plays, and the animation itself proves you right or wrong.

  • Fresh data every attempt, no answer key

    Because the trace is a pure function of its input, every attempt is generated from freshly randomized data. There's no fixed answer key to memorize — each answer has to be worked out from the state in front of you.

  • Mastery, broken down by skill

    One score hides what you missed. Four facets are tracked separately — execution trace, boundary cases, invariants, and cost — so you see exactly which part you've nailed and which still needs work.

Skip to the hard part

One click to the case that matters

Most lessons carry a Scenarios row — one tap loads the input that makes a property impossible to miss: already sorted (best case), reversed (worst), a hash table that actually collides. The AI lessons do the same with their failure modes — a diverging learning rate, a retrieval query that misses, a tool call that shouldn't fire. The breaking case is the curriculum, not a footnote, and the row is free wherever it appears.

Yours to share

Take the lesson with you

Share your current input, embed the interactive player in your own page, or save a PNG. Lifetime also includes video export.

  • Share your exact input

    Every input lives in the URL. Copy the link and whoever opens it gets the same input and the same generated trace, starting from the beginning — not a generic demo.

  • Embed the live player

    Paste one <iframe> and the interactive lesson runs right inside your blog, docs, or course — real controls included, no screenshot.

  • Export a frame or clip

    Save a frame as a PNG for free. With Lifetime, export PNGs without a watermark or record the full animation as a video.

Problems and ideas

Follow feedback on GitHub

Report a problem, suggest an improvement, or request a lesson through our public GitHub Issues. Include a lesson link and screenshot when helpful, then follow replies and updates.