A tool for reverse-engineering integrated circuits from die photographs, with a special focus on CMOS Gate Array/Standard Cell chips. Import and tile gigapixel die shots, annotate them (vias, traces, standard cells) with optional ML assistance, and extract the circuit, per-cell transistor and logic-gate schematics, and a die-level Verilog netlist.

Die viewer — navigate the whole die, with placed cells, nets, and I/O pins.

Die viewer

Cell RE — annotate a cell's layers; transistors, gates, and logic are inferred.

Cell reverse-engineering

Die shots in those screenshots are from InfoSecDJ.

Structure

frontend/   Vite + React + TypeScript UI (die viewer, cell RE, schematics, Verilog)
backend/    Node + TypeScript API — image import, tiling, JSON persistence, WebSocket
shared/     Shared TypeScript types (the annotation schema)
ml/         Python U-Net for via/trace detection + FastAPI prediction sidecar
data/       Imported dies, tile pyramids, and ML exports

Dependencies

  • Node ≥ 20 (npm workspaces) — required.
  • Python ≥ 3.10 — only for the ML sidecar (assisted via/trace annotation).
# JS/TS workspaces (frontend + backend + shared)
npm install

# ML sidecar (optional)
python3 -m venv ml/.venv
ml/.venv/bin/pip install -r ml/requirements.txt

Run locally

npm run dev

Starts the backend (http://localhost:3001), the frontend (http://localhost:5173), and the ML sidecar together. Open the frontend URL.

Without the ML sidecar, run just the two TypeScript apps:

npm run dev -w backend
npm run dev -w frontend

Build and test:

npm run build
npm test