Sawhorse
Alpha v0.1.0-alpha.1

Sawhorse

Free, local-first, open-source SketchUp-style modeling for woodworkers and makers.

Draw a rectangle, push it up, type 3/4 and press Enter. The keys your hands already know, a cut list that lays out your sheets and boards, and files that print and cut.

Sawhorse with a bookshelf built from components: the tool rail on the left, the 3D view in the middle, the side panel on the right and the value box at the bottom.
The browser build: the same app as the desktop one.

What it does

Made for the shop.

Opens .skp, exports watertight

Bring SketchUp models in, with their groups, components and layers. Every STL and 3MF that leaves is a closed solid, ready for the slicer or the CNC.

Cut list and nesting built in

Parts, sizes, grain and board feet as you draw; sheets and boards laid out with your kerf, and cutting diagrams as SVG, DXF and PDF.

Offline, no account

Your models stay on your machine. No sign-up, no subscription, no tracking. The browser version uploads nothing, and the desktop app works with the network unplugged.

Download

Version 0.1.0-alpha.1, a pre-release. Or skip the install and try it in your browser.

Windows

Download for Windows 64-bit installer (.exe). Also as an .msi.

macOS (Apple Silicon)

Download for macOS Disk image (.dmg) for M1 and later Macs.

Linux

Download for Linux x86-64 AppImage. Also as a .deb or an .rpm.

The builds are unsigned for now, so your system warns before the first launch. Windows: in SmartScreen, choose More info, then Run anyway. macOS: open it once, then System Settings, Privacy & Security, Open Anyway. Every installer is built in the open by GitHub Actions; see the release page.

How it is built

The geometry kernel is Rust, compiled to WebAssembly: a solid modeler with exact push/pull and booleans, and a validator that checks the model after every operation. The interface is TypeScript, React and three.js, and the same build runs in a browser tab and in the desktop app.

Sawhorse is built with AI agents working under tests: unit and property tests, a fuzzer that runs thousands of random modeling sessions on every change and tens of thousands more each night, golden hashes that hold the WebAssembly kernel to the native one, and an independent review of every piece of work before it merges.

It is clean-room: no SketchUp code and no SketchUp SDK. SketchUp files are read by the MIT-licensed openskp library, on your machine.

maintained by @boardfoot

The Nesting section of the cut list: the bookshelf's parts laid out on five oak boards and one plywood sheet, with grain arrows in the model.
Cut list and nesting, worked out again after every edit.