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:

  1. Plaats het gereedschap op papier in formaat A4, Letter, A3 of Tabloid (het gereedschap mag over de randen heen steken).
  2. Maak een foto van bovenaf.
  3. Upload de foto en pas de hoeken van het papier aan voor schaalcalibratie.
  4. De AI traceert automatisch de omtrekken van het gereedschap.
  5. Sla de getraceerde gereedschappen op in je bibliotheek.
  6. Gropeer gereedschappen in projecten bij het plannen van een lade of werkruimte.
  7. Maak bakken van de projectgereedschappen en bepaal de indeling.
  8. 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:

VariabeleStandaardBeschrijving
GOOGLEAPIKEY-Gemini API-sleutel. Gebruikt Gemini in plaats van lokale modellen.
TRACERSauto-detectedCommagescheiden lijst van beschikbare tracers, bijv. gemini,birefnet-lite,isnet.
MAXUPLOADMB20Maximale gecomprimeerde uploadgrootte in megabytes.
MAXIMAGEPIXELS64000000Maximale gedecodeerde pixels voordat er wordt gedownscaled.
STLGENERATIONCONCURRENCYunlimitedMaximaal aantal gelijktijdige STL-generatiejobs.
STLRETENTIONHOURS24Aantal uren dat STL/3MF/zip exports worden bewaard. 0 bewaart ze permanent.
TRACEFINITYONNXPROVIDERautoLokale ONNX provider: auto, cuda, of cpu.
GEMINIIMAGEMODELgemini-3.1-flash-image-previewGemini-model voor mask-generatie.
TOOLLABELPROVIDERnoneOptionele automatische naamgeving. Zet op ollama voor lokale vision naming.
SHOWAPPVERSIONtrueToont de actuele versie in de instellingen.
AUTH_MODEnativeAuthenticatiemodus: native (cookie login), proxy (trusted reverse proxy), of open (geen authenticatie).
AUTH_SECRETauto-generatedVersleutelt 2FA-secrets. Wordt automatisch gegenereerd in het storage-volume.
AUTHCOOKIESECUREfalseZet op true bij gebruik van TLS.
AUTHCOOKIEDOMAINhost-onlyAuth-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.

ModelSnelheid (CPU)Min. RAMKwaliteitNotities
IS-Net (standaard)~0.8s2GBGoedSnelst, laagste geheugengebruik
BiRefNet Lite~3.6s8GBBesteGoed bij reflecties en glimmende oppervlakken
InSPyReNet~2.8s6GBGoedOndersteuning 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:

  1. Installeer GPU-vereisten: pip install -r backend/requirements.txt -r backend/requirements-gpu.txt.
  2. Zet TRACERS=birefnet-general,birefnet-lite,isnet.
  3. 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.

ModelVoordelenNadelen
gemini-3.1-flash-image-previewSnel, goede mask-kwaliteitPreview-model
gemini-3-pro-image-previewBeste kwaliteit, pixel-nauwkeurigLangzamer, preview-model
gemini-2.5-flash-imageSnelste, goedkoopste, GAWillekeurige dimensies, vereist uitlijning achteraf

Handmatige mask-upload

Als je geen API-sleutel hebt en lokale modellen niet wilt gebruiken:

  1. Upload je foto en stel de papierhoeken in.
  2. Klik op "Manual" en download de gecorrigeerde afbeelding.
  3. Open de Gemini-webinterface en plak de afbeelding met de meegeleverde prompt.
  4. Download het gegenereerde mask (zwarte tools op witte achtergrond).
  5. 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.