// TOOL

Gerber Viewer

Open (or drop) the Gerber + drill files of a PCB, or a .zip exported from the CAD. Composited layers, pours and clearances rendered correctly, measurements, per-layer colours and export.

Load a sample or “Open” in the viewer for your own files

Loads the WebAssembly renderer (~800 KB) and the sample board. Everything runs in your browser: your files are never uploaded.

What is a Gerber set?

A Gerber set describes a PCB with several files: each physical layer — top and bottom copper, solder mask, silkscreen, solder paste — is a separate RS-274X file, while the holes live in an Excellon drill file and the board edge in a dedicated outline Gerber. To see the board they are all composited, aligned on the same coordinate system.

A PCB is not described by a single file: each physical layer (top and bottom copper, solder mask, silkscreen, solder paste) is a separate Gerber file in RS-274X format, and the holes are a separate Excellon drill file. The board edge (outline) is a dedicated Gerber too. To see the board, all these files are composed, aligned on the same coordinate system.

How is the viewer built?

The engine is written in Rust and compiled to WebAssembly (wasm-bindgen), with rasterization on WebGL2. The parser reads RS-274X — apertures, macros, D01/D02/D03 commands, dark/clear polarity and G36/G37 pour regions — and the Excellon drill file. Each layer is rasterized into its own framebuffer and composited onto the canvas; parsing runs in a Web Worker.

The engine is written in Rust and compiled to WebAssembly, interfaced to JavaScript through wasm-bindgen; rasterization runs on WebGL2 (GPU).

The parser reads RS-274X — apertures and macros, D01/D02/D03 commands, dark/clear polarity (LPD/LPC), pour regions (G36/G37) — and the Excellon drill file.

Fill regions are resolved with boolean operations and triangulated into polygons; arcs are approximated by tessellation.

Each layer is rasterized into its own framebuffer. Clear-polarity areas are subtracted, so clearances carve into the copper and stay readable even inside a pour.

The layer framebuffers are composited onto the canvas with per-layer transparency, in additive or solid mode.

Gerber parsing runs in a Web Worker, so the interface does not block on complex boards. The WebGL2 context is persistent: pan/zoom, point-to-point measurements (mm/mil/inches) and feature picking via hit-testing.

Learn more: Gerber format and viewer wiki →