How mehrdat/nd36-code-visualizer works
ND36 is a recording debugger: a user runs a Python or C/C++ program, ND36 records an event trace, and the user explores or shares that run through CLI views, a live UI, or a standalone report. The Python and Rust implementations share a trace schema; Rust provides a recorder and reader/explorer, while the documented analysis surface includes execution graphs, memory, DataFrame lineage, tensor diagnostics, and Perfetto export. Some capability paths are documented but their implementation was not sampled, so those components are shown without speculative internal wiring.
Main entry points: cli.py Python CLI · report.py Static report · main.rs Rust CLI · server.py Live UI server
Components 25
Entry points
- Python CLI
nd36/cli.py - Rust CLI
ndr/src/main.rs
Recording and traces
- Python recorder
nd36/recorder.py - Native debugger runner
nd36/native.py - Rust recorder
ndr/src/recorder.rs - Value encoder
ndr/src/encode.rs - Trace schema
nd36/schema.py - Rust trace schema
ndr/src/schema.rs - Python trace store
nd36/store.py - Rust trace writer
ndr/src/writer.rs
Trace inspection
- Rust trace reader
ndr/src/reader.rs - Explorer state store
ndr/src/explore/store.rs - Rust run explorer
ndr/src/explore/mod.rs - Python run explorer
nd36/explore.py
User interfaces
- Live UI server
nd36/server.py - Static report
nd36/report.py - Desktop shell
nd36/app.py - VS Code panel
vscode-extension/extension.js
Run analysis
- Call and flow graphs
nd36/graphs.py - Memory analysis
nd36/memory.py - DataFrame lineage
nd36/lineage.py - Tensor domains
nd36/domains.py - Timeline charts
nd36/charts.py - Perfetto export
nd36/exporter.py
Other components
- Developer
Connections 35
- Developer → Python CLI: runs and explores
README.md - Python CLI → Native debugger runner: dispatches native runs
nd36/cli.py - Python CLI → Python run explorer: dispatches exploration
nd36/cli.py - Python CLI → Static report: dispatches reports
nd36/cli.py - Python CLI → Live UI server: starts live UI
nd36/cli.py - Python CLI → Desktop shell: opens app shell
nd36/cli.py - Python CLI → Call and flow graphs: dispatches flow views
nd36/cli.py - Python CLI → Memory analysis: dispatches memory views
nd36/cli.py - Python CLI → DataFrame lineage: dispatches data views
nd36/cli.py - Python CLI → Perfetto export: dispatches export
nd36/cli.py - Python CLI → Native debugger runner: runs native programs
README.md - Native debugger runner → Trace schema: writes compatible trace
README.md - Python recorder → Trace schema: emits schema events
nd36/recorder.py - Rust CLI → Rust recorder: runs recorder
ndr/src/main.rs - Rust recorder → Value encoder: encodes values
ndr/src/recorder.rs - Rust recorder → Rust trace schema: records events
ndr/src/recorder.rs - Rust CLI → Rust trace writer: writes run trace
ndr/src/main.rs - Rust trace writer → Rust trace schema: packs trace records
ndr/src/writer.rs - Rust CLI → Rust trace reader: opens trace
ndr/src/main.rs - Rust trace reader → Explorer state store: provides trace data
ndr/src/explore/store.rs - Explorer state store → Rust run explorer: rebuilds run state
ndr/src/explore/store.rs - Rust CLI → Rust run explorer: dispatches exploration
ndr/src/main.rs - Python CLI → Python trace store: reads trace data
nd36/cli.py - Live UI server → Python trace store: serves trace state
nd36/server.py - Static report → Call and flow graphs: renders graphs
nd36/report.py - Static report → Timeline charts: renders timelines
nd36/report.py - Static report → Memory analysis: renders memory panel
nd36/report.py - Static report → DataFrame lineage: renders lineage panel
nd36/report.py - Live UI server → Call and flow graphs: serves graph panels
nd36/server.py - Live UI server → DataFrame lineage: serves data panels
nd36/server.py - VS Code panel → Live UI server: starts same server
README.md - Developer → Rust CLI: runs Rust commands
README.md - Developer → Python recorder: records Python run
README.md - Developer → Tensor domains: views tensor shapes
README.md - Developer → Timeline charts: inspects timelines
README.md