한국어 | English
Paste your code and watch it execute step by step — with line highlighting, variable tracking, and call tree visualization.
- Python
- JavaScript / TypeScript
- Paste your code and input fields are automatically generated
- Recursive functions are visualized as a tree structure
- Debug comfortably without setting breakpoints
- Current execution line is highlighted with manual/auto playback
- Works with a single function or plain code
- Go to the playground
- Paste your code (function or bare code — both work)
- Enter arguments if your function needs them
- Click ▶ Run
- Step through with the controls or hit play
Preset algorithms (permutations, combinations, subsets, bubble sort) are also available from the home page, organized by category.
- Add a
.jsfile tosrc/algorithm/presets/codes/ - Register the metadata in the matching category file (
recursion.ts,sorting.ts):
{
id: "selection-sort",
name: "선택 정렬 (Selection Sort)",
description: "가장 작은 원소를 찾아 앞으로 보냅니다",
difficulty: "easy",
category: "sorting",
defaultArgs: [[5, 3, 8, 1, 2]],
code: loadCode("selection-sort.js"),
}src/
├── algorithm/ # Preset definitions & registry
│ └── presets/
│ └── codes/ # Algorithm source files (.js)
├── engine/ # AST analysis, transformation, Worker execution
├── editor/ # CodeMirror editor, ArgumentForm
├── player/ # Step playback (useAlgorithmPlayer)
├── visualizer/ # TreeView, CodePanel, CallStack, VariablePanel
├── shared/ # Theme, utils, common UI
└── app/ # Next.js routes
Next.js · TypeScript · Vanilla-Extract · acorn · Shiki · d3-hierarchy · CodeMirror · Web Workers
pnpm install
pnpm dev
pnpm test
pnpm fix # oxlint + oxfmtBug reports and feature requests → GitHub Issues
MIT