Frequently asked questions
If something here is wrong or missing, open an issue.
The engine
Is AlgoStudio an algorithm visualizer?
No. An algorithm visualizer contains one hand-written animation per algorithm. AlgoStudio contains none. It instruments the source it is given, records what actually happened as a stream of typed events, and chooses a view by inspecting the shape of the data at runtime.
Adding an algorithm means adding a directory of data. No drawing code is written, and the visualization engine is not modified — that property is enforced by a test, not by convention.
How can it step backwards without re-running the program?
Every event that mutates state carries the old value beside the new one, so stepping back is a single inverse substitution in constant time. Jumping to an arbitrary step restores the nearest checkpoint and replays a bounded number of events forward, which keeps seeking proportional to the checkpoint interval rather than to the length of the run.
How does it know to draw a graph rather than a list?
Shape detectors examine the runtime value. A dictionary whose values are lists containing that dictionary's own keys is adjacency-shaped, so it is drawn as a graph. A list of numbers becomes an array with pointer markers. Candidate shapes are scored and the strongest wins.
No detector is permitted to look at the name of the function or the
algorithm — that restriction is the whole point, because a detector
that recognises dijkstra is just a hard-coded
visualizer wearing a disguise.
Are the complexity curves real measurements or lookups?
Measurements. The benchmark runs an algorithm at several input sizes,
counts the statements actually executed, and fits growth curves to
those counts. Merge sort recovers an n log n fit and
bubble sort an n² fit from the measured data, not from a
table of known answers.
Scope and limits
Which Python features does it support?
Variables, arithmetic and comparison, if/elif/else,
while, for over ranges and containers,
break and continue, functions with defaults
and *args/**kwargs, recursion, lists, tuples,
dicts, sets, strings, subscripts and slices, list and dict methods,
try/except/finally,
raise, and classes with attributes and methods.
Multiple inheritance, metaclasses, async, generators used
as coroutines and most of the standard library sit outside the tested
boundary. The app reports what it could not handle
before running, rather than failing part way through.
Can I run my own code on the public site?
Yes — and it never reaches this server. Executing a stranger's code on a server safely needs a container sandbox for every execution, and a free tier cannot nest containers. In-process restrictions such as an import allowlist are defense in depth and are not a security boundary, because CPython cannot be sandboxed inside its own process.
So it does not run on the server at all. The page downloads a Python runtime once and runs your program inside your own browser tab, on your machine, under the sandbox your browser already enforces on every site you visit. The server goes on refusing to execute anything it did not ship with.
Two honest trade-offs: the first run downloads about five megabytes, and a run of your own code exists only in that tab — close it and the recording is gone.
Can it visualize languages other than Python?
Only Python is implemented today, but the architecture places all language knowledge in one layer. Everything downstream of the event stream — the state reducer, the shape detectors and every view — is language agnostic. Adding a language means writing a frontend that emits the same events, not rewriting the visualization engine.
Privacy and data
Does AlgoStudio use cookies or track visitors?
It sets no cookies at all. Panel sizes and similar interface preferences are stored in your browser's local storage and never leave your device. There are no accounts, no advertising and no cross-site tracking scripts. The privacy policy is the long version.
How long are my executions kept?
Recordings expire after fourteen days and are swept automatically. They are also regenerable — running the same algorithm again reproduces the same recording — so an expired share link simply returns a not-found response.
The project
Is the source code available?
Yes. The engine, the frontend, and twenty-one design documents covering the event model, the sandbox threat model, the plugin architecture, the testing strategy and the evaluation protocol are public on GitHub.