v3.2.0: Share a whole comparison as one file
Sending someone a diff used to mean zipping two folders and explaining which was which. GerbDiff now saves the whole comparison, both revisions plus how you had them set up, into one file that opens on their machine looking exactly like it did on yours. Diffs also run about two and a half times faster.
A diff you can hand to someone
File > Save Diff File writes a .gdf. Inside it are both revisions' Gerber and drill files, together with everything about how you were looking at them: which file you assigned to which layer, the alignment offsets, the colors, the layer you were on, and any measurements you took.
The person you send it to uses File > Open Diff File, or just drags it onto either drop zone, and lands on the view you were on. Nothing to unpack, no folders to line up, and no message explaining that the drill file in the second folder is the plated one.
Unlike an exported report, a diff file stays live. Every layer is still there to pan, zoom, measure, and re-diff. If your colleague disagrees with how you assigned a layer, they can reassign it and watch the numbers change.
Two of the 15-layer boards we test against come to 2.3 MB together, down from 10.6 MB of raw Gerber, so a diff file goes through email without a fight.
One thing a diff file deliberately does not carry is anything that is not a board file. The names of the other files in your folder are recorded so the import summary still adds up, but the BOMs, schematics, and datasheets sitting next to your Gerbers do not travel inside a diff you hand to someone outside your company.
The command line reads them too, so a report can be regenerated from the same file a reviewer was looking at:
gerbdiff --report diff.html --gdf shared.gdf
The saved alignment, layer assignment, and colors are used rather than worked out again, so the output matches what they saw.
This is not quite the self-contained HTML result /u/FunDeckHermit asked for after 3.1, in the spirit of KiCad's Interactive BOM. It is a step toward the same idea from the other direction: one file, no setup, the whole comparison. That request is still on the list.
Diffs are about 2.5x faster
Comparing two 15-layer boards went from 1.8 seconds to 0.7. More to the point, the window stays usable while it happens: the longest the app can go unresponsive during a diff dropped from 91ms to 72ms.
Most people who use GerbDiff run diffs and never export a report, so we went looking specifically at that path. Four things were worth fixing:
- Layer pairs were being diffed one at a time. They do not depend on each other, so they now run in parallel across several workers instead of leaving most of the machine idle.
- Every comparison built its worker from scratch and threw it away afterward. That alone was about 109ms of frozen window at the start of every diff. The workers are now kept between diffs and built while the project is still loading, so re-diffing after a layer reassignment or an alignment nudge costs nothing extra.
- The quick low-resolution pass that spots unchanged layers was running on the main thread, and rasterizing both boards a second time to do it. It happens inside the worker now.
- Every layer was sending a 4 MB image back that nothing displayed, which also left about 60 MB of it sitting in memory for the rest of the session.
Diff results are unchanged: same layers, same statuses, same change percentages, down to the last decimal place.
Rendering, for what it is worth, was already fine. Panning and zooming a 29,000-net copper layer costs a fraction of a millisecond per frame, and there was nothing to win there. We now have a benchmark that runs the real application against real boards, so the next release has to prove it did not undo any of this.
Free for academic use
A customer asked whether university work counted as commercial, since our terms swept in any use on behalf of a non-profit organization. It reads that way, and that was never the intent. Version 1.2 of the terms says so directly.
Academic use falls under the free Personal license. Students, educators, and researchers at schools, colleges, universities, and non-profit research institutions can use GerbDiff at no charge for coursework, teaching, and academic research. That includes checking, preparing, and ordering boards for teaching labs, student projects, and research instruments, whether the work is done by a student or by faculty or staff on behalf of the institution.
There is no separate academic edition, no application to fill in, and no verification step. Download it and use it. A Commercial or Team subscription is available to institutions that want unmarked reports, invoice billing, or a purchase order, but it is not required.
Work funded by or performed on behalf of a commercial sponsor is still commercial use, as is use by a commercial spin-out. The change went up on the website in July; it is now in the license the installer shows you as well.
If something would make GerbDiff fit your workflow better, [email protected] reaches us directly.