Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 16:12

The first stable release. PlotTracer extracts numbers from figures — the
stress-strain curve, the fatigue plot, the dose-response chart that exists only
as a raster image in a paper, a standard, or a scanned report. Load it, calibrate
the axes, place or auto-trace the points, export the data.

It runs on Linux, Windows and macOS, installs from a single binary, and works
fully offline — no account, no telemetry, no cloud calls. Your figures never
leave your machine, including on an air-gapped one.

What's in 1.0

Chart and axis types — XY, Bar, Polar, Ternary, Map (scale bar), Circular
Chart Recorder, Histogram (captures true bin edges, not just centres), Box
Plot, Line with a categorical X axis, and Error Bars.

Getting points off a figure

  • Manual placement across multiple series, drag to reposition, arrow-key nudge,
    click a value to edit it.
  • Auto-extract, under one wand tool: flood fill, trace by colour (continuous
    curve or scatter markers), a blob detector, and interpolation-assist (guide
    points plus a centripetal spline). A live mask preview shows exactly which
    pixels a trace will capture before you commit, and you can restrict a trace to
    a drawn box.
  • Grid-line removal, to clean a busy plot first.

Analysis — polynomial curve fitting (degree 1–9, optional x-range), geometry
and statistics (arc length, enclosed area, curvature), and a Check Calibration
overlay that draws the calibrated axis box back onto the image so you can see
whether it landed.

Measurements — distance, angle, area, slope, and a px→real-unit "Set scale"
reference, kept as their own collection, separate from the series data.

Images and documents — PNG, JPG, GIF, BMP, WEBP, SVG, PDF (multi-page),
and TIFF / multipage TIFF for historic scans. Rotate, flip, crop and
fine-angle deskew, all undoable.

Multi-figure projects — one project holds several figures (every page of a
paper, say), each with its own image, calibration, graph type and series. Flip
between them, or extract another figure from the retained source document.

Export — CSV, TSV, JSON, Excel (.xlsx), LaTeX, MATLAB, Python, plus a
WYSIWYG PNG of the digitised figure. Fitted curves export as their own labelled
blocks rather than being mixed into your data.

A durable record — undo/redo across everything, project save and reload as a
self-contained .zip that can carry the source PDF or TIFF with it, and import of
existing WebPlotDigitizer .tar projects.

Honest about precision

PlotTracer records what the figure shows — pixels first, values derived from your
calibration — and reports numbers no finer than the pixel grid can support, so an
export never carries precision the source never had. If you want the raw
full-precision values anyway, there's an explicit opt-in.

How 1.0 was gated

Three independent blind audits ran over the release candidate — correctness and
data integrity, tenets and UX, release and security — and their findings were
fixed before the tag. Among them: two bugs that silently produced wrong numbers
(ternary axis orientation lost across a save/reload, and a month-overflow on date
axes), degenerate-calibration and non-finite-value guards, and a hardened Electron
shell (OS sandbox, CSP, navigation lock).

Lineage and licence

AGPL-3.0. The calibration engine began as an extraction of
WebPlotDigitizer by Ankit
Rohatgi (AGPL-3.0); some algorithms are clean-room reimplementations of Engauge
Digitizer ideas; the interface follows Ketcher's design language. The application
itself — interface, interaction model, workflow — is a ground-up rebuild in
TypeScript, React and Electron.

Downloads

Linux .AppImage / .deb, Windows .exe, macOS .dmg / .zip (Apple Silicon).

Builds are unsigned: on first launch macOS Gatekeeper needs a right-click →
Open, and Windows SmartScreen a More info → Run anyway. Code-signing is a
planned follow-up.


Full Changelog: v1.0.0-rc.3...v1.0.0