
CutStock
Verschnitt minimieren. Jedes Brett, jede Stange, jede Platte optimal nutzen.
Teile eingeben, Material wählen, optimieren — CutStock berechnet in Sekunden den besten Schnittplan. Für Platten und Stangen, mit Maserungsrichtung und Sägeblattbreite. Als Desktop-App (macOS, Windows) und selbst gehostete Web-App (Docker) — kein Internet nötig.
Platten zuschneiden
26 Zuschnitte für einen Kleiderschrank, verteilt auf Spanplatten von 2800 × 2070 mm? CutStock berechnet den Schnittplan in Sekunden — farbkodiert, mit nummerierter Schnittfolge zum Nachsägen. Sägeblattbreite, Besäumung und Maserungsrichtung sind eingerechnet, gedrehte Teile tragen ein „R".

Stangen ablängen
Leisten, Kanthölzer, Rohre, Aluprofile: Für Stangen rechnet CutStock die Aufteilung exakt als ganzzahliges Optimierungsproblem (ILP) — so werden möglichst wenige Stangen angeschnitten. Pro Stange stehen die Teile von lang nach kurz, der verbleibende Rest wird mit seiner Länge angezeigt.

Fehlt Material? CutStock erstellt die Einkaufsliste.
Nicht genug Platten im Lager? CutStock zeigt sofort, welche Teile fehlen und wie viele Platten oder Stangen du dafür brauchst. Ein Klick auf „Ins Lager" bucht den Bedarf ein — so kaufst du genau das, was du brauchst.

Features
🪵 Platten und Stangen — ein Klick
Egal ob Spanplatten für den Schrank oder Kanthölzer für das Regal — CutStock findet den besten Schnittplan. Reste bleiben immer saubere Rechtecke bzw. gerade Abschnitte.
🧬 Bis zu 95 % Materialausnutzung
Für Platten drei Stufen: Schnell für den Überblick, Nested Guillotine für kluge Schnittrichtung, Gründlich (genetischer Algorithmus) für maximale Ausnutzung. Stangen werden exakt per ILP optimiert.
📊 Maserungsrichtung
Berücksichtigt Holzmaserung pro Material und Teil — längs, quer oder egal.
🔍 Defekte umgehen
Astlöcher, Risse, Verfärbungen pro Brett erfassen — der Optimierer plant drum herum, im Schnittplan erscheinen sie rot schraffiert.
📄 PDF-Export
Schnittpläne mit Stückliste und Schnittfolge als PDF — drucken und an die Säge hängen.
📋 Schnittfolge
Nummerierte Schrittliste pro Platte oder Stange — maßgenau, Sägeblattbreite eingerechnet. Beim Überfahren wird der Schnitt im Plan hervorgehoben.
🏷️ Etiketten
Druckbare Etiketten für Teile und Lagerstücke — A4-Bögen (Avery 3475/L7160) oder Dymo/Brother-Etikettendrucker.
🛒 Einkaufsliste auf Knopfdruck
Lager reicht nicht? CutStock zeigt sofort, was fehlt — Material, Menge, Maße. Per Klick wandert der Bedarf direkt ins Lager.
🖼️ Materialbilder
Ein Foto pro Material — als Vorschaubild in der Materialliste, mit Zoom beim Überfahren. So findest du das richtige Holz auf einen Blick.
🐳 Überall in der Werkstatt
Auf dem NAS oder Homeserver installieren — dann ist CutStock von jedem Gerät erreichbar. Tablet an der Säge, Laptop in der Planung, alles synchron. Kein Internet nötig.
📦 Immer wissen, was im Lager liegt
Bestand pflegen, verbrauchte Stücke automatisch austragen, verwertbare Reste wieder einbuchen — sobald du ein Teil als gesägt markierst.
🔢 Einzelstück-Nummerierung
Bei 50 gleichen Brettern weißt du genau, welches den Defekt hat: aufklappbare Stückliste (#1, #2 …) im Lagerbestand, Stücknummer im Schnittplan.
📂 Projekte duplizieren & teilen
Projekte klonen, Teile in andere Projekte kopieren, als JSON exportieren und importieren — fehlende Materialien legt CutStock beim Import selbst an.
⌨️ Tastenkürzel
Neu, Bearbeiten, Löschen, Lager und Optimieren per Taste — frei belegbar: Taste anklicken, neue Taste drücken.
🌍 Mehrsprachig
Deutsch, English, Français, Italiano. SAP-Horizon-Design in Hell und Dunkel. macOS, Windows und Docker.
🔨 Tablet an die Säge, lossägen
Werkstatt-Modus: Vollbild, große Touch-Buttons, ein Teil nach dem anderen abhaken. Jeder Haken aktualisiert Fortschritt und Lagerbestand — kein Zettelchaos mehr.
📥 CSV-Import
Teilelisten aus Excel & Co. direkt ins Projekt importieren — Trennzeichen und Spalten werden automatisch erkannt.
🔌 REST API
Vollständige API für Automatisierung, Skripte und Integrationen — optional per API-Key (Bearer Token) abgesichert.
Material & Lagerverwaltung
Alle Materialien mit Bild, Maßen, Maserung und Lagerbestand im Blick. Verbrauchte Stücke bucht CutStock beim Sägen automatisch aus, verwertbare Reste wieder ein. Bei mehreren gleichen Brettern zeigt die aufklappbare Stückliste, welches Brett welchen Defekt hat.

Defekte umgehen
Astloch auf Brett #1? Einmal erfasst, plant CutStock drum herum: Der Defekt erscheint rot schraffiert im Schnittplan, kein Teil landet darauf. Die Stücknummer im Plan-Kopf zeigt, welches Brett du aus dem Lager holen musst.

Projektverwaltung
Teile nach Projekten organisieren — mit Label, Material, Maßen, Stückzahl und Maserung. Projekte lassen sich duplizieren, Teile in andere Projekte kopieren und Listen per CSV oder JSON importieren. Der Fortschritt zeigt, was schon gesägt ist.

Werkstatt-Modus
Tablet neben die Säge, Werkstatt-Modus an: eine Platte pro Seite, große Touch-Ziele, Gesamtfortschritt und „Als Nächstes"-Markierung. Jedes abgehakte Teil aktualisiert Fortschritt und Lagerbestand sofort.

Web-App per Docker
Die Web-App bringt denselben Optimierungskern auf jeden Browser im Heimnetz — ideal für NAS, Homeserver oder Raspberry Pi (amd64 + arm64). Alle Assets sind im Image gebündelt, zur Laufzeit ist keine Internetverbindung nötig.
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 — danach läuft CutStock unter http://localhost:8420. Details in der Anleitung auf GitHub.

REST API
Die Web-App stellt eine vollständige REST API unter /api/ bereit. Alle Endpunkte liefern und erwarten JSON. Ist ein API-Key gesetzt, senden externe Programme ihn als Bearer-Token mit — die Web-Oberfläche und Zugriffe vom selben Rechner brauchen keinen Key.
Endpunkte (Auszug)
| Bereich | Endpunkte |
|---|---|
| Materialien | GET/POST/PUT/DELETE /api/materials |
| Lagerbestand | GET/POST/PUT/DELETE /api/stock, Einzelstücke, Defekte |
| Projekte & Teile | GET/POST/PUT/DELETE /api/projects, /api/parts |
| Optimierung | POST /api/optimize, /api/optimize/confirm |
| Export | POST /api/pdf, POST /api/labels |
| System | GET /api/version, /api/settings, Backup/Restore |
Die vollständige Endpunkt-Liste mit Beispielen steht in der API-Dokumentation auf GitHub.
Warum Guillotine-Schnitte?
Alle CutStock-Algorithmen verwenden Guillotine-Schnitte — jeder Schnitt geht komplett von Kante zu Kante. Das ist eine bewusste Entscheidung:
| Verfahren | Materialausnutzung | Reste | Werkzeug |
|---|---|---|---|
| Guillotine (CutStock) | ~85–95% | Immer rechteckig | Tischkreissäge, Handkreissäge |
| Free-Cut | ~93–98% | L-förmig, T-förmig | CNC-Fräse nötig |
Guillotine-Schnitte kann man mit jeder handelsüblichen Säge ausführen. Die Reste sind immer saubere Rechtecke, die gelagert und wiederverwendet werden können.
Technologie
CutStock setzt bewusst auf wenige, bewährte Open-Source-Bausteine. Alles läuft lokal — zur Laufzeit wird keine Internetverbindung benötigt.
| Bibliothek / Werkzeug | Einsatz in CutStock |
|---|---|
| Python 3.12+ | Anwendungslogik und eigene Optimierungsalgorithmen (Guillotine, Nested Guillotine, genetischer Algorithmus) |
| FastAPI · Uvicorn · Pydantic | Web-Backend, REST-API und Datenvalidierung |
| SciPy (milp / HiGHS) | Exakte Stangenoptimierung als ganzzahliges lineares Programm (ILP) |
| reportlab | PDF-Erzeugung: Schnittpläne, Stücklisten, Etiketten |
| cryptography | Ed25519-signierte Lizenzschlüssel |
| python-multipart | Datei-Uploads: Materialbilder, Import, Backup-Wiederherstellung |
| SQLite | Lokale Datenbank als einzelne Datei — kein Datenbankserver; auf macOS per iCloud Drive synchronisiert |
| SAP Fundamental Styles | Horizon-Design (hell/dunkel) mit der Schrift „72", vollständig offline gebündelt |
| Vanilla JavaScript · HTML5 Canvas | Oberfläche ohne Framework, Schnittpläne als Canvas-Zeichnung |
| PyInstaller | Eigenständige Desktop-Apps für macOS und Windows — sie öffnen CutStock im Standard-Browser |
| Docker | Web-App-Image für amd64 und arm64 (ghcr.io/orohde/cutstock) |
| pytest | Automatische Tests für den Optimierungskern |
Download
Desktop-App für macOS und Windows, Web-App als Docker-Image (ghcr.io/orohde/cutstock). Quellcode offen einsehbar, lizenziert unter PolyForm Noncommercial 1.0.0 — kostenlos für den privaten, nicht-kommerziellen Einsatz.
Sie möchten CutStock im Betrieb einsetzen — in der Schreinerei, Tischlerei oder Werkstatt? Eine kommerzielle Lizenz ist auf Anfrage erhältlich, Kontakt über das Impressum.
Hinweis: Die Desktop-Builds sind nicht code-signiert. macOS: Rechtsklick → Öffnen. Windows: „Weitere Informationen" → „Trotzdem ausführen".
Kommerzielle Lizenz anfragen
Sie möchten CutStock in Ihrem Betrieb einsetzen? Füllen Sie das Formular aus und wir melden uns mit einem Angebot.