OPEN SOURCE · GPL v3 · 0.1 BETA

Native 2D CAD.
Mac. Windows. Linux. Free.

Zephyr is a GPU‑accelerated drafting app written from scratch in Swift. Metal on macOS, Direct3D 12 on Windows, Vulkan on Linux. Read/Write DWG. Costs nothing.

Download for Mac Download for Windows Download for Linux View source on GitHub →
macOS 12+ · Apple silicon & Intel · Windows 10+ · x64 & ARM64 · Linux · x64 & ARM64 & Snap · 35–85 MB download, depending on platform
Zephyr CAD Application Screenshot Zephyr CAD Application Screenshot
BUILT NATIVE FOR EVERY PLATFORM YOU SHIP ON
$0
vs $70/mo AutoCAD LT
967
entities, instant render
9×9
pixel‑perfect GPU picking
256
undo depth
01 · ESCAPE THE RENT TRAP

Own nothing and be happy?
Break free from constant price hikes.

If you look at the subscription costs for AutoCAD LT, it's $540 a year if you pay upfront, or a massive markup to $840 a year if you have to pay monthly. They use aggressive marketing to lock you into 3-year commitments just to avoid price hikes, and the second you stop paying, you own absolutely nothing.

On top of that, finding great cross-platform tools that treat macOS and Linux as first-class citizens is a nightmare. Most polished solutions are strictly Windows-only. For example, while Autodesk finally added AutoLISP support to AutoCAD LT on Windows recently (2024), their official documentation explicitly states that AutoLISP is completely blocked on AutoCAD LT for Mac. If you're on a Mac and need LISP automation, they force you to step up to the full AutoCAD license at over $2,000 a year.

Note: We highly encourage looking at other excellent free open-source software like QCAD, LibreCAD, FreeCAD, SolveSpace, and Open 2D Studio as powerful options to try in your drafting workflows. Zephyr exists alongside these community solutions as a performance-oriented alternative, utilizing Direct3D 12 on Windows, Metal on macOS, and Vulkan on Linux through a single Swift GPU pipeline to feel native on all three.

macOS
Metal · x64 + ARM64
  • ✓ Universal binary, Apple silicon native
  • ✓ Real Cmd shortcuts, real trackpad gestures
  • ✓ High DPI on every external display
  • ✓ Drag‑and‑drop to open files
Windows
Direct3D 12 · x64 + ARM64
  • ✓ Native ARM64 — runs natively on Snapdragon & Surface
  • ✓ No .NET install, no Visual C++ runtime
  • ✓ Portable .zip — no installer or extra runtimes to fetch
  • ✓ Per‑monitor DPI, multi‑display ready
Linux
Vulkan · x64 + ARM64 + Snap
  • ✓ Native Vulkan renderer, same GPU pipeline
  • ✓ Ubuntu 24.04+, plain .zip or confined Snap
  • ✓ Runs on WSL2 with WSLg
  • ✓ DWG via ODA AppImage, one command to install
02 · CLEAN SPECKLES

The dirty‑DXF janitor you've always wanted.

Scanned a paper drawing? Imported a forty‑year‑old DXF? You know the speckles — tiny stray dots and dashes scattered through the geometry.

Point Zephyr at one. It learns the color and size signature, finds every match across the drawing, and lets you erase them in one motion. No regex. No script. No half‑day cleanup.

command: CS or SPECKLES
survey_2018.dxf · selecting matches
18'-4" 18'-4" ROOM A ROOM B ROOM C ROOM D
SAMPLE: ● red · 1.5pt
MATCHES: {{ matchCount }}
›{{ specklesPrompt }}
03 · COMPATIBILITY

Opens the files everyone else hands you.

DWG and DXF — round‑trip ready, including blocks, layers, hatches, splines/NURBS, polylines with bulge, and external references. PDF export ships a Bluebeam‑compatible Measurement dictionary so dimensions survive the handoff.

DWG
IMPORT EXPORT
Read/write via ODA FileConverter. All entity types, blocks, layers, text styles, hatches.
DXF
IMPORT EXPORT
R2007 round‑trip. Dimensions, splines, hatches, leaders — all preserved.
PDF
IMPORT EXPORT
Vector PDF 1.7 with Bluebeam Revu‑compatible Measurement dictionary. Import pages as snapshots — or attach them as live underlays that reload when the PDF changes.
EAB
IMPORT EXPORT
Fast native binary. BVH spatial index, zstd compression, viewport‑culled partial loads.
SHX vector text included. Full shape‑font byte‑code interpreter — AutoCAD .shx files render as pure vectors at any zoom. Bitmap text degradation is a problem from 2009.
AutoCAD workspace names where they fit. FILETAB, FILETABCLOSE, VPORTS, VPMAX, and VPMIN follow the familiar names; Zephyr then extends panes beyond same-drawing viewports. See the exact commands and differences →
EXTERNAL REFERENCES

Reference it. Don't copy it.

Attach drawings, images, and PDFs as live references with ATTACH. Your host file stores paths only; referenced geometry renders from a runtime copy that never bakes into saves or undo. Edit the source and the palette flags it for reload.

Deleting a placement leaves the reference listed as Unreferenced — same as AutoCAD. Detach removes it for good; Bind (or Embed for media) makes it permanent.

Reference commands
Canonical name first; aliases in parentheses.
ATTACHOne picker for every reference type; routes drawings, images, and PDFs to the right flow.
XATTACH (XA)Attach a DWG/DXF drawing as an xref — Attachment or Overlay, with unit-aware scale.
IMAGEATTACH · PDFATTACHAttach a raster image or one PDF page as a live underlay. (IMAGE and PDFIMPORT still embed snapshots.)
INSERT (I, -INSERT)Insert an existing block — or a whole DWG/DXF/EAB file as an embedded block copy.
XREF (ER)External References palette: every reference with status — Loaded, Not Found, Needs Reloading, Unreferenced — plus Load, Unload, Reload, Repath, Detach, Bind, and Embed.
-XREF · -ATTACHCommand-line management: ?/Bind/Attach/Detach/Reload/Unload/Load/Path — scriptable from AutoLISP via (command …).
XBINDBind a single xref-dependent layer (Xref|Layer) into the host without binding the whole drawing.

Loading is asynchronous and capped (32 drawing xrefs, depth 16, 5M primitives per tab) so a heavy reference set can't stall the canvas. Paths save relative by default (REFPATHTYPE), dependent layers arrive as Xref|Layer under VISRETAIN, and XDWGFADECTL dims reference geometry so your own linework stays readable. Clips write back as standard SPATIAL_FILTER objects.

04 · PROOF

Same file. Two apps.
One actually opens it.

Same DXF — 186‑841 — Pirate Ship.dxf, a 3,734‑entity drawing from KOMPAN's public library. Same machine. Same operation: File → Open → Fit to view.

Zephyr 0.1 · LibreCAD 2.2.1.5 · June 2026 builds
{{ proofPositionLabel }}
{{ ex.subhead }}
{{ ex.caption }}
Zephyr 0.1
{{ ex.zephyrBadge }}
{{ ex.zephyrMetric }}
{{ ex.zephyrAlt }}
  • ✓ {{ pt }}
LibreCAD 2.2.1.5
{{ ex.libreBadge }}
{{ ex.libreMetric }}
{{ ex.libreAlt }}
{{ co.text }}
  • ✕ {{ pt }}
WHY {{ ex.why }}
05 · WORKFLOW

Classic shortcuts. Modern interface.

Every command you muscle‑memorized in AutoCAD still works — L, PL, C, REC, M, O, TR, J. New tools you'll wish you'd had.

{{ cell.tag }}
{{ cell.title }}
{{ cell.body }}
{{ cell.cmd }}
TABS · WINDOWS · SPLIT VIEWS

Arrange drawings around the job, not the other way around.

Put a reference drawing on a second monitor, compare two jobs side by side, or keep Model and a paper layout visible in two panes of the same main window. Zephyr stays one editing session with exactly one active drawing—and, in a split, one focused pane.

Three everyday arrangements

FLOAT
Drag a tab out, or type TABW. The drawing gets a true OS window you can move, resize, pan, zoom, select, and edit in. Click, wheel, pen, or keyboard input activates that drawing; hover does not steal work from the main window.
COMPARE
Type VSPLIT or HSPLIT. The new pane opens the next docked drawing when one is available. Click a pane to edit there, click a file tab to retarget the focused pane, and drag the divider to resize.
MODEL + LAYOUT
Split a single drawing across panes. Each pane remembers its own drawing view and camera, so one can stay in Model while the other follows Layout1. The Model/Layout tabs at the bottom belong to the current window or focused pane.
Closing a float window docks its drawing. It does not close the file. Use CLOSE when you actually want the drawing closed. Up to four float windows can be open at once.
Window and pane commands
Canonical name first; aliases in parentheses.
TABLEFT (TABL)
TABRIGHT (TABR)
Move the active file tab one position left or right.
FILETAB
FILETABCLOSE
Show or hide the main window's file-tab bar.
TABWINDOW (TABW, FLOAT)Move the active drawing to its own OS window, or raise it if already floated.
TABDOCK (TABD, DOCK)Return the active floating drawing to the main tab bar.
VSPLIT · HSPLITSplit the focused main pane side-by-side or stacked. Repeat to nest splits.
CLOSEPANEClose the focused pane and promote its sibling (the equivalent of VPORTS JOIN here).
UNSPLIT (CLOSESPLIT)Collapse to the focused pane while remembering the split arrangement.
VPMAX · VPMINMaximize the focused pane, then restore the remembered split tree.
VPORTS 2V / 2H / SINGLE / JOIN / TOGGLE / ?One-command pane management. ? lists panes and marks focus with *.
CTRL+TAB
CTRL+SHIFT+TAB
Cycle forward or backward through open drawings, including floated ones. Drag file tabs to reorder or drag one out to float it.

How this maps to AutoCAD

SAME NAMES, DOCUMENTED DIFFERENCES
AREA
AUTOCAD
ZEPHYR
File tabs
FILETAB / FILETABCLOSE
Same names and purpose. Ctrl+Tab / Ctrl+Shift+Tab also cycles drawings.
Tiled panes
VPORTS shows several model-space views of one drawing.
Also does that, then goes further: panes may show different drawings. Named viewport configurations and preset 3/4 layouts are not implemented yet.
Maximize
VPMAX / VPMIN work on a layout viewport.
The names maximize and restore a Zephyr split pane instead; this is not paper-space MSPACE editing.
Model / layouts
Model/layout tabs plus full layout management.
MODEL, SHEET/LAYOUT, VIEW, NEXTVIEW, and PREVIOUSVIEW select imported views; layout creation/copy/rename is separate future work.
Order / float
Document-window behavior varies by version and workspace settings.
TABL, TABR, TABW, and TABD are Zephyr aliases, with drag-to-reorder and drag-out-to-float beside them.

Split layouts belong to the main window. Floated drawings are not split further, and split/float arrangements are session state rather than named configurations.

RIBBON · MENU BAR · LABELS

The ribbon is a LISP file, not a compiled layout.

Tabs, panels, buttons, flyouts, their order and their labels live in lisp/ribbon.lsp. Edit it, save, and the ribbon rebuilds in place — no build, no restart, and a definition that fails to parse leaves the previous one working. Every entry names a command, so your own c: routines go onto a button in one line.

THREE PRESENTATIONS
One control cycles them; the choice persists. Classic File / Edit / View menu bar, a labels‑only ribbon, or icons plus labels. Same definition, compressed to fit the screen you have.
LIVE STATE
Buttons know when they cannot run. (zr-enable (zr-sel 1)) greys Erase until something is selected, (zr-check (zr-var "GRIDMODE" 1)) latches Grid to the real toggle, and "Layer: %CLAYER%" follows the active layer.
DOCKED OR FLOATING
Drag it anywhere, like the panels. A docked ribbon resizes itself to the active presentation, so the canvas takes the space back the moment you collapse it. Position survives restarts.
DRAWN, NOT SHIPPED
No icon font, no bitmaps. 58 named icons are drawn as line art, so they stay crisp at any DPI and follow the theme — and an unknown icon name still renders a letter placeholder instead of an empty button.
Commands: RIBBON toggles it, RIBBONMODE switches presentation, and RIBBONRELOAD re-reads the file — though saving it is usually enough.
ribbon.lsp · reloads when you save
(defun zephyr-ribbon ()
  (zr-ribbon
    (zr-menubar
      (list (zr-menu "File"
              (list (zr-item "NEW"  "New"   nil)
                    (zr-item "OPEN" "Open..." nil)))))
    (zr-tabs
      (list (zr-tab "Home"
              (list (zr-panel "Modify"
                      (list (zr-big "ERASE" "Erase" "erase"
                              (list (zr-enable (zr-sel 1))))
                            (zr-small "GRID" "Grid: %GRIDMODE%" "grid"
                              (list (zr-check (zr-var "GRIDMODE" 1))))))))))))
06 · AUTOMATION

AutoLISP that runs everywhere. Yes, even on Mac.

A native AutoLISP engine with the full inventoried builtin set — verified against every documented example. Routines written for full AutoCAD run unmodified: entity creation and editing, selection sets, system variables, file I/O, dictionaries, layer states, and scripted (command …) calls.

Identical behavior on macOS, Windows, and Linux — the platform AutoCAD LT blocks LISP on is a first-class citizen here. Unsupported Tier‑2 calls report clean errors instead of failing silently.

It is not only drawing automation: the ribbon and its File / Edit / View menu bar are an AutoLISP file too. See how the ribbon is defined →

Browse the 305-function reference → commands: LOAD · EVAL · SCRIPT
red-circles.lsp · LOAD to run
;; Color all circles red
(setq ss (ssget "_X" '((0 . "CIRCLE"))))
(setq i 0)
(repeat (sslength ss)
  (setq e (entget (ssname ss i)))
  (entmod (if (assoc 62 e)
            (subst '(62 . 1) (assoc 62 e) e)
            (append e (list '(62 . 1)))))
  (setq i (1+ i)))
305
builtins inventoried
288
implemented today
3
commands: LOAD · EVAL · SCRIPT
3
platforms, identical behavior
07 · HOW WE COMPARE

You don't need a subscription. You don't need to compromise.

Honest table. We're not the right tool for every job — but for 2D drafting, here's the actual delta.

CAPABILITY
Zephyr
AutoCAD LT
FOSS Ecosystem
{{ row.label }}
{{ row.zephyr }}
{{ row.autocad }}
{{ row.qcad }}
Pricing as of June 2026 · Autodesk, QCAD, LibreCAD, FreeCAD, SolveSpace, and Open 2D Studio are properties of their respective projects and entities.
08 · FREE FOREVER

Open source. Always.

Zephyr is GPL v3. Free to use, free to fork, free to ship inside your shop. Paid support (priority bug fixes, technical help) comes later — the app itself never costs money.

LICENSE
GPL v3
SOURCE
github.com/joseph-montanez/zephyr
LANGUAGE
Swift · ~105k SLOC

Stop renting your CAD.

Free download. No account, no telemetry, no email gate. The .dxf files you author inside your open-source tools will open here perfectly.

Zephyr for macOS Zephyr for Windows · {{ dlArchLabel }} Zephyr for Linux · {{ dlArchLabel }}
Detected {{ dlSummary }} — buttons above default to your arch. Couldn't detect your system — x64 defaults shown, every build listed below.
ALL BUILDS · NIGHTLY
v0.1.0 · macOS 12+ (Apple silicon + Intel) · Windows 10+ (x64 + ARM64) · Linux (x64 + ARM64 + Snap) · SHA‑256 verified · 35–85 MB zips (Snap larger)
More on the nightly release page.