Browser-first wafer map visualization for semiconductor test data.
Zero runtime dependencies. Pure ES modules with TypeScript types — works in React, Svelte, Vue, plain HTML, or a Web Worker. The DOM-free data-and-stats layer is ~65 kB min+gz; the interactive renderer is larger, and its chart suite and in-app guide are loaded on demand rather than shipped up front — measured sizes.
Project Portal: Docs & Interactive Demos →
Questions, ideas, or want to show off a wafer map you built? Use GitHub Discussions.
wafermap renders interactive wafer maps from semiconductor prober output. Hard bins, soft bins, test values, retest runs, edge exclusion, and spec limits are native inputs.
- Geometry inference — pass full physical dimensions or raw prober step positions; die pitch, wafer diameter, and coordinate origin are resolved automatically
renderWaferMap— interactive canvas map with toolbar, zoom/pan, tooltips, die selection, and summary panelrenderWaferGallery— lot-level card grid with shared controls and click-to-expand- Insights tab (
insights: { enabled: true }) — a chart suite behind the Maps | Insights switch (yield, per-test pass rate, bin pareto, capability, boxplot, histogram, wafer-to-wafer trend, correlation, scatter) computed from the same wafer/lot data, for one wafer or the whole gallery - Derived tests (
derivedTests) — tests computed per die from other tests (abs(t[1020] - t[1010])), which then work everywhere a measured test does, marked † as not measured - Parametric sweeps (plots with
chart: 'sweep', edited on the Plot tab) — an ordered run of tests read as a response curve, with the crossing and widths between two curves measured; x values given directly or read from the test names, on a linear or log axis - Drilldown — right-click selected dies, a wafer card or a wafer's bar to chart just that population, with the population stated on the chart
analyzeWaferMap/analyzeWaferLot— spatial analysis across rings, quadrants, sectors, and reticle positions; failure cluster detection; lot trend series- Pure ES modules, no server, no runtime dependencies — works in React, Svelte, Vue, plain HTML, or a Web Worker
tsmap is a finished, free, MIT-licensed
application built on this library. It opens STDF, ATDF, CSV, JSON and Parquet (plus
.gz and .zip), runs on Linux, macOS and Windows, and also runs
in the browser with no install — files are
parsed locally and never uploaded. Plot modes, findings, the Insights charts, lot
galleries, splits and reports, without writing any code.
Build on wafermap instead when you need wafer maps inside your own application, a data source tsmap doesn't read, or behaviour it doesn't offer. Otherwise try tsmap first — integrating later is always open to you.
npm install @wafertools/wafermapimport { buildWaferMap } from '@wafertools/wafermap';
import { renderWaferMap } from '@wafertools/wafermap/render';
const result = buildWaferMap({
results: rows.map(r => ({ x: +r.x, y: +r.y, hbin: +r.hbin })),
});
renderWaferMap(document.getElementById('map'), result);That is the whole integration. No options are passed, and the map still renders
with its full toolbar — plot modes, colour schemes, zoom and pan, die tooltips, PNG
export. Add analyzeWaferMap for the findings and summary panel, swap in
renderWaferGallery for a lot, and you have covered what most projects need.
The API reference is long because it documents every option, not because you need them: tsmap, a complete cross-platform desktop application built on this library, imports 18 of its ~100 exports. Read the Quick Start first and treat the API reference as something to search, not to read.
Note the two import paths. The renderers (renderWaferMap,
renderWaferGallery) live only at @wafertools/wafermap/render, so importing them from the
root package will fail. That keeps the root entry DOM-free — usable in Node for a
build-and-analyse pipeline, and tree-shakeable when you only need the geometry, data
and stats layers.
Building an app with wafermap (developers):
- Quick start
- Developer Guide
- SvelteKit · React · Vue 3 integration guides
- API Reference
- Using wafermap with an AI coding agent — rules to paste into Claude Code / Codex / Copilot / Cursor, also shipped as
AGENTS.mdin this package - Architecture · Performance · Troubleshooting
- Live examples — or download them to run and edit locally, offline, with the library bundled in
Using an app built with wafermap (test / device / yield engineers):
- Application User Guide — also embedded in apps via the toolbar help button
- Glossary
- tsmap — desktop and browser app for loading STDF, ATDF, CSV, JSON, and Parquet wafer data
npm install
npm run devServes the documentation site locally from docs/, including the
example pages under docs/examples/.
Written by Paul Robins, after nearly four decades in semiconductor test — most of it building test data analysis tools: wafer map and chart viewers, and the platforms they were built on.
That work leaned on free software throughout — zlib, Tcl/Tk, SQLite, GCC — and it was a good deal. wafermap is some of it going back the other way, prompted by finding out that engineers doing this job today still have no decent free option for wafer map analysis.
MIT: free to use, modify and redistribute, including in commercial and closed-source products. The only condition is that the copyright notice travels with it.

