
CutStock
Minimize waste. Maximize every board, bar, and panel.
CutStock is a cut optimization tool that helps woodworkers, makers, and small workshops get the most out of their material. Available as a desktop app (macOS, Windows, Linux) and a self-hosted web app (Docker) — same design, same optimization core.
Optimal Cut Planning
Whether you're cutting panels for a shelf or bars for a frame — CutStock calculates the optimal cutting layout and shows color-coded cut plans. The numbered cutting sequence walks you through the sawing step by step, saw kerf already accounted for.

Features
🪵 1D + 2D Optimization
Bars (1D bin packing) and panels (2D guillotine packing) with configurable kerf. All remnants stay clean rectangles.
🧬 Three Algorithms
Fast (greedy), Nested Guillotine (smart split direction), Thorough (genetic algorithm, ~95% utilization).
📊 Grain Direction
Respects wood grain per material and part — lengthwise, crosswise, or any.
📄 PDF Export
Compact multi-page layout with color-coded cutting diagrams — in both flavors.
📋 Cutting Sequence
Numbered step list per cut plan — true to size, kerf included. On screen and in the PDF.
🏷️ Labels
Printable labels for parts and remnants — A4 sheets (Avery 3475/L7160) or Dymo/Brother label printers.
🐳 Web-App & Docker
Self-hosted on your own network — reachable from any browser or tablet in the workshop. Ready-made Docker image, no internet connection required.
📦 Stock Management
Track inventory, auto-deduct used pieces, auto-book usable remnants back into stock.
⌨️ Keyboard Shortcuts
Fully keyboard-driven. Remappable in the web app — click a key, press the new one.
🌍 Multi-language
Deutsch, English, Français, Italiano. SAP Horizon design in light and dark. macOS, Windows, Linux, and Docker.
🔨 Workshop Mode
Full-screen view for a tablet at the saw: big touch targets, progress, tick off pieces as you cut — stock is updated live.
📥 CSV Import
Import part lists from Excel & friends straight into a project — delimiter and columns are detected automatically.
Materials & Stock
Manage materials with thickness, cross-section, grain direction, and edge trim. Stock shows all pieces of the selected material.

Projects
Organize parts by project. Each part has a label, type, material, dimensions, quantity, and grain direction. Progress shows what has already been cut.

Bar Optimization
1D bin packing for bar profiles. Pick a project, material, and algorithm — the optimizer calculates the best cutting layout.

Workshop Mode
Put a tablet next to the saw and switch on workshop mode: one panel per page, big touch targets, overall progress, and an “up next” marker. Every ticked piece updates progress and stock immediately.

Web App via Docker
The web app brings the same optimization core to any browser on your network — ideal for a NAS, home server, or Raspberry Pi (amd64 + arm64). All assets are bundled in the image; no internet connection is needed at runtime.
services:
cutstock:
image: ghcr.io/orohde/cutstock:latest
container_name: cutstock
restart: unless-stopped
ports:
- "8420:8000"
volumes:
- ./data:/data
environment:
- CUTSTOCK_DB=/data/cutstock.db
docker compose up -d — then CutStock is up at http://localhost:8420. Details in the guide on GitHub.

Why Guillotine Cuts?
All CutStock algorithms use guillotine cuts — every cut runs completely from edge to edge. This is a deliberate choice:
| Approach | Material utilization | Remnants | Tools |
|---|---|---|---|
| Guillotine (CutStock) | ~85–95% | Always rectangular | Table saw, circular saw |
| Free-Cut | ~93–98% | L-shaped, T-shaped | CNC router required |
Guillotine cuts can be made with any standard saw. The remnants are always clean rectangles that can be stored and reused.
Technology
- Python 3.12+ — application logic
- pywebview — desktop app (native window)
- FastAPI + Uvicorn — web backend
- SQLite — local database (no server)
- SAP Fundamental Styles — Horizon design
- reportlab — PDF generation
- Docker — web app image (amd64/arm64)
- PyInstaller — standalone apps · iCloud sync
Download
Desktop app for macOS and Windows, web app as a Docker image (ghcr.io/orohde/cutstock). Open source under CC BY-NC-SA 4.0 — free for private, non-commercial use.
Would you like to use CutStock in your business — in a joinery, cabinet shop, or workshop? A commercial license is available on request — contact details in the imprint.
Note: The desktop builds are not code-signed. macOS: right-click → Open. Windows: “More info” → “Run anyway”.