An interactive org chart visualizing how the NYC criminal legal system works, built for general audiences.
🔗 Live site: cam1lled.github.io/courtgraph
No install needed; you can also run it locally
- Every institution involved in a NYC criminal case, from arresting agencies through post-sentencing supervision
- How cases flow between institutions at each stage
- All five borough District Attorney offices and public defender organizations by name
- Click any node to open a detailed description of that institution in the left panel
- Click any connection line to read what happens at that handoff
- Stage filter pills (top bar) dim everything outside the selected stage — Arrest & Entry, Arraignment, Pretrial & Bail, Misdemeanor Track, Felony Track
- Supervised Release appears as a small dot on the pretrial line — hover to identify it, click to read about it
- Collapsible legend in the bottom-right corner
- Vanilla HTML / CSS / JavaScript
- D3.js v7 for SVG rendering
- No build step, no dependencies beyond D3 (loaded via CDN)
Clone the repo and serve the folder with any static file server — for example Python's built-in one:
git clone https://github.com/cam1lled/courtgraph.git
cd courtgraph
python3 -m http.server 3400Then open http://localhost:3400 in your browser. (Opening index.html directly via file:// also works, but a local server is recommended so the scripts load reliably.)
index.html — page shell and layout
style.css — all styles
data.js — nodes, edges, stage definitions, and descriptions
app.js — D3 rendering and interactivity