OpenDigitizer - Open Chart/Plot Data Extraction with a Pluggable CV/AI Framework
Published:
Project Overview
OpenDigitizer is a browser-based tool for extracting numerical data from images of charts and plots. It is an open fork of WebPlotDigitizer by Ankit Rohatgi, distributed under AGPL-3.0 (independent project, not affiliated with or endorsed by Automeris LLC). The fork adds an open, pluggable computer-vision / AI extraction framework and a keyboard-first digitizing workflow, and was built to support figure-based data recovery for the residual-stress visual data extraction work.
Highlights
- Open CV/AI extraction framework. New detectors register themselves and appear in the Automatic Extraction → Algorithm dropdown. Detection can run in pure JS, in-browser WASM (e.g. ONNX Runtime / TensorFlow.js), or your own remote Python service — no closed cloud dependency.
- Keyboard-first digitizing. Press
K, then arrow keys move a crosshair (Shift = faster),Aadds,Ddeletes,Sgrabs & moves a point, andZ/Cjump between points. The magnifier and live coordinate readout follow the crosshair. - Multi-select & one-shot delete with additive selection (Shift/Ctrl-click, Shift-drag), plus point-level Undo/Redo (
Ctrl+Z/Ctrl+Y). - Folder / thumbnail browser. Open a whole folder of images; hover a thumbnail for a large preview, click to switch.
- Flexible masking. Freehand Pen/Erase, a keyboard brush, and click-to-click polygon/polyline masks with numeric brush width.
Core Capabilities
- Chart / axis types: XY, polar, ternary, bar, map, image, and circular chart recorder.
- Extraction: manual point placement and automatic color-mask + algorithm detection.
- Measurements: distance, angle, area / perimeter.
- Export: CSV, clipboard, and Plotly, with save/resume of projects.
Notes
The fork preserves the original AGPL-3.0 license and Ankit Rohatgi’s copyright; all additions are marked with OpenDigitizer: comments in the source. The new detector interface and data contract — with JS, WASM, and Python recipes plus a reference FastAPI server — are documented in docs/EXTENDING-CV-AI.md.
