Tracefinity is een applicatie waarmee gebruikers automatisch op maat gemaakte opbergsystemen kunnen genereren voor het open-source Gridfinity-raster.
Hoe het werkt
Het proces begint met een foto van gereedschap op een standaard papierformaat. Via AI-gestuurde tracing worden de omtrekken van het gereedschap gedetecteerd en omgezet in bewerkbare polygonen. Gebruikers kunnen deze tools opslaan in een bibliotheek, ze groeperen in projecten en vervolgens een optimale indeling voor hun bakken bepalen voordat ze de STL- of 3MF-bestanden exporteren voor 3D-printen.
Technische Implementatie
De tool is breed toegankelijk en kan worden gebruikt via de webinterface of zelf gehost worden via Docker en Kubernetes. Er zijn drie tracing-modi beschikbaar:
- Lokale modellen: Gebruik van IS-Net, BiRefNet Lite of InSPyReNet (geen API-sleutel nodig).
- Gemini API: Voor hogere nauwkeurigheid bij complexe of reflecterende objecten.
- Handmatige upload: Voor gebruikers die maskers via de Gemini-webinterface willen genereren.
Belangrijkste Functies
- AI-Tracing & Editor: Automatische silhouetten met mogelijkheden om vertices aan te passen en curves te versoepelen.
- Bin Builder: Een drag-and-drop systeem met snap-to-grid en configureerbare toleranties (cutout clearance).
- Geavanceerde opties: Toevoegen van vingergrepen, tekstlabels, contrast-inlays en automatische bed-splitting voor grote prints.
- Gridfinity-standaard: Volledige compatibiliteit met het 42mm modulaire systeem van Zack Freedman.
Tracefinity: Maak op maat gemaakte Gridfinity-bakken met AI vanuit foto's van je gereedschap
Hoe het werkt
Het proces verloopt via de volgende stappen:
- Plaats het gereedschap op papier in formaat A4, Letter, A3 of Tabloid (het gereedschap mag over de randen heen steken).
- Maak een foto van bovenaf.
- Upload de foto en pas de hoeken van het papier aan voor schaalcalibratie.
- De AI traceert automatisch de omtrekken van het gereedschap.
- Sla de getraceerde gereedschappen op in je bibliotheek.
- Gropeer gereedschappen in projecten bij het plannen van een lade of werkruimte.
- Maak bakken van de projectgereedschappen en bepaal de indeling.
- Download de STL/3MF-bestanden voor 3D-printen.
De applicatie bevat een Dashboard, een Tool Editor en een Bin Editor.
Snelstart
Je kunt de tool gebruiken via tracefinity.net zonder iets te installeren, of zelf hosten via de volgende methoden:
Docker
Lokaal model (geen API-sleutel nodig):
docker run -p 3000:3000 -v ./data:/app/storage ghcr.io/tracefinity/tracefinity
Met Gemini API:
docker run -p 3000:3000 -v ./data:/app/storage -e GOOGLE_API_KEY=your-key ghcr.io/tracefinity/tracefinity
Remote saliency via fal.ai:
docker run -p 3000:3000 -v ./data:/app/storage -e FAL_KEY=your-key ghcr.io/tracefinity/tracefinity
Remote saliency via Replicate:
docker run -p 3000:3000 -v ./data:/app/storage -e REPLICATE_API_TOKEN=your-token ghcr.io/tracefinity/tracefinity
Uitvoeren als host-gebruiker (zodat bestanden in ./data eigendom zijn van de gebruiker en niet van root):
docker run -p 3000:3000 -v ./data:/app/storage --user "$(id -u):$(id -g)" ghcr.io/tracefinity/tracefinity
Opmerking over privacy: Bij gebruik van een remote provider wordt de gecorrigeerde uitsnede van het papier naar die provider gestuurd voor masking. Bij fal wordt sync_mode gebruikt, zodat het resultaat niet in de geschiedenis wordt bewaard. Voorspellingen van de Replicate API (inclusief de invoerfoto) worden na ongeveer een uur automatisch verwijderd.
De Docker-image ondersteunt linux/amd64 en linux/arm64. Apple Silicon Macs draaien arm64 native via Docker Desktop. ARM-apparaten hebben minimaal 2GB RAM nodig (voor U2-Net papierdetectie); een Raspberry Pi 4/5 met 4GB+ is geschikt.
Na installatie is de applicatie bereikbaar via http://localhost:3000. Bij het eerste bezoek word je gevraagd een administrator-account aan te maken.
Omgevingsvariabelen
Standaard gebruikt Tracefinity IS-Net voor lokale tracing. Je kunt de volgende variabelen configureren:
| Variabele | Standaard | Beschrijving |
GOOGLEAPIKEY | - | Gemini API-sleutel. Gebruikt Gemini in plaats van lokale modellen. |
TRACERS | auto-detected | Commagescheiden lijst van beschikbare tracers, bijv. gemini,birefnet-lite,isnet. |
MAXUPLOADMB | 20 | Maximale gecomprimeerde uploadgrootte in megabytes. |
MAXIMAGEPIXELS | 64000000 | Maximale gedecodeerde pixels voordat er wordt gedownscaled. |
STLGENERATIONCONCURRENCY | unlimited | Maximaal aantal gelijktijdige STL-generatiejobs. |
STLRETENTIONHOURS | 24 | Aantal uren dat STL/3MF/zip exports worden bewaard. 0 bewaart ze permanent. |
TRACEFINITYONNXPROVIDER | auto | Lokale ONNX provider: auto, cuda, of cpu. |
GEMINIIMAGEMODEL | gemini-3.1-flash-image-preview | Gemini-model voor mask-generatie. |
TOOLLABELPROVIDER | none | Optionele automatische naamgeving. Zet op ollama voor lokale vision naming. |
SHOWAPPVERSION | true | Toont de actuele versie in de instellingen. |
AUTH_MODE | native | Authenticatiemodus: native (cookie login), proxy (trusted reverse proxy), of open (geen authenticatie). |
AUTH_SECRET | auto-generated | Versleutelt 2FA-secrets. Wordt automatisch gegenereerd in het storage-volume. |
AUTHCOOKIESECURE | false | Zet op true bij gebruik van TLS. |
AUTHCOOKIEDOMAIN | host-only | Auth-cookie domein voor subdomain-topologieën. |
PROXY_SECRET | - | Gedeeld geheim voor een vertrouwde multi-user reverse proxy. |
Docker Compose
services:
tracefinity:
image: ghcr.io/tracefinity/tracefinity
ports:
- "3000:3000"
volumes:
- ./data:/app/storage
environment:
GOOGLE_API_KEY: your-key # optioneel
restart: unless-stopped
Start met: docker compose up -d en open http://localhost:3000.
Kubernetes (Helm)
helm registry login ghcr.io --username <your-github-username> --password <your-github-token>
helm install tracefinity oci://ghcr.io/tracefinity/charts/tracefinity \
--namespace tracefinity \
--create-namespace \
--set persistence.enabled=true \
--set persistence.size=5Gi
Om Gemini te gebruiken, voeg je --set env.GOOGLEAPIKEY=your-key toe aan het commando of gebruik een values.yaml.
Let op: Lokale tracing-modellen laden bij opstarten en vereisen minimaal 2GB geheugen.
Installatie vanuit broncode
Vereisten: Python 3.11+, Node.js 20+, pnpm.
git clone https://github.com/tracefinity/tracefinity
cd tracefinity
# Backend setup
cd backend && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt
# Frontend setup
cd ../frontend && pnpm install
cd ..
# Uitvoeren (backend op :8000, frontend op :4001)
make dev
Open http://localhost:4001.
Tracingsmodi
Tracefinity ondersteunt drie methoden om omtrekken van gereedschap te detecteren. Alle drie resulteren in zwart-wit mask-afbeeldingen die via OpenCV contour-extractie worden omgezet in bewerkbare polygonen.
Lokale modellen (standaard)
Zonder API-sleutel draait Tracefinity een lokaal model voor salient object detection. Dit is gratis en vereist geen netwerktoegang.
| Model | Snelheid (CPU) | Min. RAM | Kwaliteit | Notities |
| IS-Net (standaard) | ~0.8s | 2GB | Goed | Snelst, laagste geheugengebruik |
| BiRefNet Lite | ~3.6s | 8GB | Beste | Goed bij reflecties en glimmende oppervlakken |
| InSPyReNet | ~2.8s | 6GB | Goed | Ondersteuning voor Apple Silicon (MPS) |
Papierdetectie gebruikt U2-Net Portable naast de tracer. Alle lokale modellen vereisen ONNX Runtime met AVX CPU-instructies. Op CPU's zonder AVX wordt U2-Net overgeslagen (terugval op minder accurate OpenCV-detectie) en zijn lokale tracers niet beschikbaar.
NVIDIA CUDA versnelling (Optioneel): Voor snellere inferentie op NVIDIA GPU's:
- Installeer GPU-vereisten:
pip install -r backend/requirements.txt -r backend/requirements-gpu.txt.
- Zet
TRACERS=birefnet-general,birefnet-lite,isnet.
- Zet
TRACEFINITYONNXPROVIDER=cuda.
Automatische toolnamen
Door TOOLLABELPROVIDER=ollama in te stellen, kan een lokaal Ollama-visionmodel suggesties doen voor de namen van de getraceerde polygonen.
Gemini API
Stel GOOGLEAPIKEY in voor Google's Gemini-modellen. Dit biedt over het algemeen een hogere nauwkeurigheid, vooral bij complexe of reflecterende gereedschappen.
| Model | Voordelen | Nadelen |
| gemini-3.1-flash-image-preview | Snel, goede mask-kwaliteit | Preview-model |
| gemini-3-pro-image-preview | Beste kwaliteit, pixel-nauwkeurig | Langzamer, preview-model |
| gemini-2.5-flash-image | Snelste, goedkoopste, GA | Willekeurige dimensies, vereist uitlijning achteraf |
Handmatige mask-upload
Als je geen API-sleutel hebt en lokale modellen niet wilt gebruiken:
- Upload je foto en stel de papierhoeken in.
- Klik op "Manual" en download de gecorrigeerde afbeelding.
- Open de Gemini-webinterface en plak de afbeelding met de meegeleverde prompt.
- Download het gegenereerde mask (zwarte tools op witte achtergrond).
- Upload het mask terug naar Tracefinity.
Functies
- AI-gestuurde tracing: Accurate silhouetten via lokale modellen of Gemini.
- Handmatige mask-upload: Gebruik de Gemini-webinterface zonder API-sleutel.
- Selectief opslaan: Kies welke omtrekken bewaard moeten worden in de bibliotheek.
- Tool-bibliotheek: Sla gereedschappen op en hergebruik ze in meerdere bakken.
- Bin-projecten: Plan groepen gereedschappen en bakken samen.
- Tool editor: Roteer tools, pas vertices aan en gebruik snap-to-grid.
- Smooth or accurate: Schakel Chaikin-subdivisie in voor vloeiende curves of behoud de ruwe trace.
- Vingergrepen: Voeg cirkelvormige, vierkante of rechthoekige uitsparingen toe voor makkelijke verwijdering.
- Interieurringen: Correcte tracing van holle gereedschappen (bijv. steeksleutels).
- Bin builder: Sleep-and-drop indeling met snap-to-grid en automatische maatvoering.
- Cutout clearance: Configureerbare tolerantie zodat tools passen zonder te spellen.
- Cutout chamfer: Afgeschuinde bovenranden voor makkelijker inbrengen van gereedschap.
- Contrast-inlays: Genereer een aparte STL om silhouetten in een andere kleur te printen.
- Tekstlabels: Verdiepte of verhoogde tekst op de bakken.
- Gridfinity compatibel: Correct basisprofiel, magneethalen en stapelrand.
- Live 3D-preview: Bekijk de bak in three.js voor het printen.
- STL en 3MF export: 3MF ondersteunt multi-color printing voor tekst.
- SVG export: Individuele tool-omtrekken als SVG.
- Bed splitting: Grote bakken worden automatisch gesplitst in printbare delen.
- Oriëntatiedetectie: Automatische detectie van liggend of staand papier.
- Single-container Docker: Frontend en backend in één image.
Wat is Gridfinity?
Gridfinity is een modulair opbergsysteem ontworpen door Zack Freedman. Bakken klikken vast in basisplaten op een raster van 42mm, waardoor het eenvoudig is om gereedschap, componenten en benodigdheden te organiseren. Het systeem is open source en zeer populair in de 3D-printgemeenschap.
Bijdragen en Licentie
Tracefinity heeft een bewust gefocuste productafbakening. Raadpleeg de product constitution voordat je substantiële functies voorstelt. Zie CONTRIBUTING.md voor de workflow en DESIGN.md voor de engineeringprincipes.
De software is gelicenseerd onder de MIT-licentie.
Tracefinity: Maak op maat gemaakte Gridfinity-bakken met AI vanuit foto's van je gereedschap
Hoe het werkt
Het proces verloopt via de volgende stappen:
- Plaats het gereedschap op papier in formaat A4, Letter, A3 of Tabloid (het gereedschap mag over de randen heen steken).
- Maak een foto van bovenaf.
- Upload de foto en pas de hoeken van het papier aan voor schaalcalibratie.
- De AI traceert automatisch de omtrekken van het gereedschap.
- Sla de getraceerde gereedschappen op in je bibliotheek.
- Gropeer gereedschappen in projecten bij het plannen van een lade of werkruimte.
- Maak bakken van de projectgereedschappen en bepaal de indeling.
- Download de STL/3MF-bestanden voor 3D-printen.
De applicatie bevat een Dashboard, een Tool Editor en een Bin Editor.
Snelstart
Je kunt de tool gebruiken via tracefinity.net zonder iets te installeren, of zelf hosten via de volgende methoden:
Docker
Lokaal model (geen API-sleutel nodig):
docker run -p 3000:3000 -v ./data:/app/storage ghcr.io/tracefinity/tracefinity
Met Gemini API:
docker run -p 3000:3000 -v ./data:/app/storage -e GOOGLE_API_KEY=your-key ghcr.io/tracefinity/tracefinity
Remote saliency via fal.ai:
docker run -p 3000:3000 -v ./data:/app/storage -e FAL_KEY=your-key ghcr.io/tracefinity/tracefinity
Remote saliency via Replicate:
docker run -p 3000:3000 -v ./data:/app/storage -e REPLICATE_API_TOKEN=your-token ghcr.io/tracefinity/tracefinity
Uitvoeren als host-gebruiker (zodat bestanden in ./data eigendom zijn van de gebruiker en niet van root):
docker run -p 3000:3000 -v ./data:/app/storage --user "$(id -u):$(id -g)" ghcr.io/tracefinity/tracefinity
Opmerking over privacy: Bij gebruik van een remote provider wordt de gecorrigeerde uitsnede van het papier naar die provider gestuurd voor masking. Bij fal wordt sync_mode gebruikt, zodat het resultaat niet in de geschiedenis wordt bewaard. Voorspellingen van de Replicate API (inclusief de invoerfoto) worden na ongeveer een uur automatisch verwijderd.
De Docker-image ondersteunt linux/amd64 en linux/arm64. Apple Silicon Macs draaien arm64 native via Docker Desktop. ARM-apparaten hebben minimaal 2GB RAM nodig (voor U2-Net papierdetectie); een Raspberry Pi 4/5 met 4GB+ is geschikt.
Na installatie is de applicatie bereikbaar via http://localhost:3000. Bij het eerste bezoek word je gevraagd een administrator-account aan te maken.
Omgevingsvariabelen
Standaard gebruikt Tracefinity IS-Net voor lokale tracing. Je kunt de volgende variabelen configureren:
| Variabele | Standaard | Beschrijving |
GOOGLEAPIKEY | - | Gemini API-sleutel. Gebruikt Gemini in plaats van lokale modellen. |
TRACERS | auto-detected | Commagescheiden lijst van beschikbare tracers, bijv. gemini,birefnet-lite,isnet. |
MAXUPLOADMB | 20 | Maximale gecomprimeerde uploadgrootte in megabytes. |
MAXIMAGEPIXELS | 64000000 | Maximale gedecodeerde pixels voordat er wordt gedownscaled. |
STLGENERATIONCONCURRENCY | unlimited | Maximaal aantal gelijktijdige STL-generatiejobs. |
STLRETENTIONHOURS | 24 | Aantal uren dat STL/3MF/zip exports worden bewaard. 0 bewaart ze permanent. |
TRACEFINITYONNXPROVIDER | auto | Lokale ONNX provider: auto, cuda, of cpu. |
GEMINIIMAGEMODEL | gemini-3.1-flash-image-preview | Gemini-model voor mask-generatie. |
TOOLLABELPROVIDER | none | Optionele automatische naamgeving. Zet op ollama voor lokale vision naming. |
SHOWAPPVERSION | true | Toont de actuele versie in de instellingen. |
AUTH_MODE | native | Authenticatiemodus: native (cookie login), proxy (trusted reverse proxy), of open (geen authenticatie). |
AUTH_SECRET | auto-generated | Versleutelt 2FA-secrets. Wordt automatisch gegenereerd in het storage-volume. |
AUTHCOOKIESECURE | false | Zet op true bij gebruik van TLS. |
AUTHCOOKIEDOMAIN | host-only | Auth-cookie domein voor subdomain-topologieën. |
PROXY_SECRET | - | Gedeeld geheim voor een vertrouwde multi-user reverse proxy. |
Docker Compose
services:
tracefinity:
image: ghcr.io/tracefinity/tracefinity
ports:
- "3000:3000"
volumes:
- ./data:/app/storage
environment:
GOOGLE_API_KEY: your-key # optioneel
restart: unless-stopped
Start met: docker compose up -d en open http://localhost:3000.
Kubernetes (Helm)
helm registry login ghcr.io --username <your-github-username> --password <your-github-token>
helm install tracefinity oci://ghcr.io/tracefinity/charts/tracefinity \
--namespace tracefinity \
--create-namespace \
--set persistence.enabled=true \
--set persistence.size=5Gi
Om Gemini te gebruiken, voeg je --set env.GOOGLEAPIKEY=your-key toe aan het commando of gebruik een values.yaml.
Let op: Lokale tracing-modellen laden bij opstarten en vereisen minimaal 2GB geheugen.
Installatie vanuit broncode
Vereisten: Python 3.11+, Node.js 20+, pnpm.
git clone https://github.com/tracefinity/tracefinity
cd tracefinity
# Backend setup
cd backend && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt
# Frontend setup
cd ../frontend && pnpm install
cd ..
# Uitvoeren (backend op :8000, frontend op :4001)
make dev
Open http://localhost:4001.
Tracingsmodi
Tracefinity ondersteunt drie methoden om omtrekken van gereedschap te detecteren. Alle drie resulteren in zwart-wit mask-afbeeldingen die via OpenCV contour-extractie worden omgezet in bewerkbare polygonen.
Lokale modellen (standaard)
Zonder API-sleutel draait Tracefinity een lokaal model voor salient object detection. Dit is gratis en vereist geen netwerktoegang.
| Model | Snelheid (CPU) | Min. RAM | Kwaliteit | Notities |
| IS-Net (standaard) | ~0.8s | 2GB | Goed | Snelst, laagste geheugengebruik |
| BiRefNet Lite | ~3.6s | 8GB | Beste | Goed bij reflecties en glimmende oppervlakken |
| InSPyReNet | ~2.8s | 6GB | Goed | Ondersteuning voor Apple Silicon (MPS) |
Papierdetectie gebruikt U2-Net Portable naast de tracer. Alle lokale modellen vereisen ONNX Runtime met AVX CPU-instructies. Op CPU's zonder AVX wordt U2-Net overgeslagen (terugval op minder accurate OpenCV-detectie) en zijn lokale tracers niet beschikbaar.
NVIDIA CUDA versnelling (Optioneel): Voor snellere inferentie op NVIDIA GPU's:
- Installeer GPU-vereisten:
pip install -r backend/requirements.txt -r backend/requirements-gpu.txt.
- Zet
TRACERS=birefnet-general,birefnet-lite,isnet.
- Zet
TRACEFINITYONNXPROVIDER=cuda.
Automatische toolnamen
Door TOOLLABELPROVIDER=ollama in te stellen, kan een lokaal Ollama-visionmodel suggesties doen voor de namen van de getraceerde polygonen.
Gemini API
Stel GOOGLEAPIKEY in voor Google's Gemini-modellen. Dit biedt over het algemeen een hogere nauwkeurigheid, vooral bij complexe of reflecterende gereedschappen.
| Model | Voordelen | Nadelen |
| gemini-3.1-flash-image-preview | Snel, goede mask-kwaliteit | Preview-model |
| gemini-3-pro-image-preview | Beste kwaliteit, pixel-nauwkeurig | Langzamer, preview-model |
| gemini-2.5-flash-image | Snelste, goedkoopste, GA | Willekeurige dimensies, vereist uitlijning achteraf |
Handmatige mask-upload
Als je geen API-sleutel hebt en lokale modellen niet wilt gebruiken:
- Upload je foto en stel de papierhoeken in.
- Klik op "Manual" en download de gecorrigeerde afbeelding.
- Open de Gemini-webinterface en plak de afbeelding met de meegeleverde prompt.
- Download het gegenereerde mask (zwarte tools op witte achtergrond).
- Upload het mask terug naar Tracefinity.
Functies
- AI-gestuurde tracing: Accurate silhouetten via lokale modellen of Gemini.
- Handmatige mask-upload: Gebruik de Gemini-webinterface zonder API-sleutel.
- Selectief opslaan: Kies welke omtrekken bewaard moeten worden in de bibliotheek.
- Tool-bibliotheek: Sla gereedschappen op en hergebruik ze in meerdere bakken.
- Bin-projecten: Plan groepen gereedschappen en bakken samen.
- Tool editor: Roteer tools, pas vertices aan en gebruik snap-to-grid.
- Smooth or accurate: Schakel Chaikin-subdivisie in voor vloeiende curves of behoud de ruwe trace.
- Vingergrepen: Voeg cirkelvormige, vierkante of rechthoekige uitsparingen toe voor makkelijke verwijdering.
- Interieurringen: Correcte tracing van holle gereedschappen (bijv. steeksleutels).
- Bin builder: Sleep-and-drop indeling met snap-to-grid en automatische maatvoering.
- Cutout clearance: Configureerbare tolerantie zodat tools passen zonder te spellen.
- Cutout chamfer: Afgeschuinde bovenranden voor makkelijker inbrengen van gereedschap.
- Contrast-inlays: Genereer een aparte STL om silhouetten in een andere kleur te printen.
- Tekstlabels: Verdiepte of verhoogde tekst op de bakken.
- Gridfinity compatibel: Correct basisprofiel, magneethalen en stapelrand.
- Live 3D-preview: Bekijk de bak in three.js voor het printen.
- STL en 3MF export: 3MF ondersteunt multi-color printing voor tekst.
- SVG export: Individuele tool-omtrekken als SVG.
- Bed splitting: Grote bakken worden automatisch gesplitst in printbare delen.
- Oriëntatiedetectie: Automatische detectie van liggend of staand papier.
- Single-container Docker: Frontend en backend in één image.
Wat is Gridfinity?
Gridfinity is een modulair opbergsysteem ontworpen door Zack Freedman. Bakken klikken vast in basisplaten op een raster van 42mm, waardoor het eenvoudig is om gereedschap, componenten en benodigdheden te organiseren. Het systeem is open source en zeer populair in de 3D-printgemeenschap.
Bijdragen en Licentie
Tracefinity heeft een bewust gefocuste productafbakening. Raadpleeg de product constitution voordat je substantiële functies voorstelt. Zie CONTRIBUTING.md voor de workflow en DESIGN.md voor de engineeringprincipes.
De software is gelicenseerd onder de MIT-licentie.