A desktop application for loading and visualising semiconductor wafer map data. Built with Tauri v2 (Rust backend) and wmap (canvas rendering).
- Open CSV, JSON, ATDF, and STDF wafer map files
- Multi-wafer — all formats support multiple wafers; renders as a gallery automatically
- Stats & findings — yield, bin breakdown, ring/quadrant analysis, and spatial findings via
analyzeWaferMap - PNG export — save any wafer map from the toolbar
- Cross-platform — Linux (Wayland/X11), macOS, Windows 11
| Format | Parsing | Notes |
|---|---|---|
| STDF | Rust | Binary V4; handles MIR/WIR/WRR/SDR/PIR/PRR/PTR/FTR |
| ATDF | Rust | ASCII; handles MIR/WIR/WRR/SDR/PIR/PRR/PTR/FTR |
| CSV | Rust | Column mapping step before render; supports wide and long (pivot) formats |
| JSON | Rust | Flat array or nested [{ wafer fields, results: [{die}] }]; same mapping step as CSV |
npm install
npm run tauri dev # full Tauri app (Rust + frontend)
npx vite --port 5300 # frontend only (no file parsing — all parsers need Tauri)
cargo check # type-check Rust (run from src-tauri/)
npx tsc --noEmit # type-check TypeScriptpython3 scripts/generate_stdf.py /tmp/test.stdf # synthetic STDF — 3 wafers, 4 tests
python3 scripts/generate_atdf.py /tmp/test.atdf # synthetic ATDF — same structuresrc/
main.ts — app entry: file open, PNG save intercept, renderWafers
fileLoader.ts — loadStdfPath() for STDF; parseText() for browser file input
atdfParser.ts — ATDF text parser used by fileLoader (browser drag-drop path only)
types.ts — shared types: ParsedFile, WaferData, TestDef, LotMeta
src-tauri/src/commands/
parse_stdf.rs — parse_stdf(path) → ParsedStdf — STDF V4 binary
parse_atdf.rs — parse_atdf(path) → ParsedStdf — ATDF ASCII
parse_csv.rs — parse_csv(path, mapping) → ParsedStdf — CSV/TSV/DAT
parse_json.rs — parse_json(path, mapping) → ParsedStdf — JSON array
pick_file.rs — pick_file() / pick_files() — zenity on Linux, rfd on macOS/Windows
save_file.rs — save_file(bytes, defaultName) — zenity --save on Linux, rfd elsewhere
write_temp_html.rs — write_temp_html(html) — opens wmap HTML reports in the system browser
scripts/
generate_stdf.py — generates a valid binary STDF V4 test file
generate_atdf.py — generates a valid ASCII ATDF test file
@paulrobins/wafermap— wafer map rendering and analysis@tauri-apps/api— Tauri IPCrust-stdf— STDF V4 binary parser (Rust)zenity— native file dialogs on Linux (system dependency; pre-installed on GNOME desktops)