PySprueFinder

Nie wieder Teil A12 suchen

Gepostet von oxi am Dienstag, 27. Oktober 2026

Wer Warhammer-Bausätze zusammenbaut, kennt das: Die Anleitung sagt “Teil 42”, und man sucht minutenlang auf drei verschiedenen Gussrahmen nach dieser winzigen, eingegossenen Zahl. Bei grossen Kits mit Rahmen A bis P wird das schnell mühsam. Darum habe ich PySprueFinder gebaut.

Die Idee: Jeder Gussrahmen (Sprue) wird einmal fotografiert. Eine Texterkennung findet die Teilenummern, die in den Rahmen eingegossen sind, und speichert ihre Position. Danach tippt man einfach A12, P197 oder nur 42 ein, und die passende Stelle wird direkt auf dem Foto markiert. Die Bausätze werden als Projekte mit beliebig vielen Rahmen verwaltet.

Die eigentliche Herausforderung war die Texterkennung. Die Nummern sind klein, oft dünn und haben kaum Kontrast zum Plastik. PySprueFinder verwendet RapidOCR und macht zuerst einen groben Durchgang, um die Grösse der Beschriftungen zu bestimmen. Danach wird das Bild in Kacheln aufgeteilt und so vergrössert, dass die Zahlen etwa 100 Pixel hoch sind. Damit findet es auf einem guten Foto (flach von oben, gleichmässig beleuchtet, heller Hintergrund) rund 95% der Nummern. Was fehlt oder falsch erkannt wurde, kann man im Editor von Hand korrigieren oder ergänzen.

Die Web-App läuft als Docker-Container (amd64 und arm64) mit SQLite und ist für das Heimnetz gedacht: Suchen geht ohne Login, nur zum Bearbeiten braucht es ein Admin-Passwort. Ins Internet sollte man sie aber nicht stellen. Die Verarbeitung eines Fotos dauert je nach CPU 10 bis 30 Sekunden.

Den Code gibt es auf GitHub (MIT-Lizenz). Funktioniert übrigens nicht nur mit Warhammer, sondern mit allen Plastikmodellbausätzen, deren Teile nummeriert sind.