SwarmForge is a sophisticated decentralized 3D printing system that enables distributed manufacturing by splitting large 3D models into parts and distributing them across a network of certified printers for parallel production and faster delivery.
- API Gateway (Go) - Entry point, authentication, rate limiting
- Job Orchestrator (Go) - Job distribution, printer matching, workflow coordination
- Printer Service (Go) - Printer registration, certification, capability tracking
- QA Service (Node.js/TypeScript) - Quality verification, photo analysis, dimensional checks
- Model Processor (Go) - 3D model slicing, part optimization, STL processing
- WebSocket Server (Node.js) - Real-time updates, printer status, job progress
- Frontend (Next.js/TypeScript) - User interface, dashboard, admin panel
- Backend: Go (performance-critical services), Node.js/TypeScript (real-time, QA)
- Frontend: Next.js, React, TypeScript, TailwindCSS
- Database: PostgreSQL (relational data), Redis (caching, queues)
- Message Queue: RabbitMQ or NATS
- Storage: MinIO (S3-compatible) for 3D models and QA photos
- Container Orchestration: Docker, Kubernetes
-
Tier Classification
- Platinum: Industrial (Bambu X1C, Prusa XL, etc.)
- Gold: Prosumer (Bambu P1S, Prusa MK4)
- Silver: Consumer (Ender 3 V3, etc.)
-
Calibration Verification
- Automated test prints (dimensional accuracy tests)
- Photo verification of calibration cubes
- Tolerance measurements (±0.1mm, ±0.05mm, etc.)
- Material compatibility verification
-
Reputation System
- Success rate tracking
- QA pass rates
- Delivery time compliance
- User ratings
1. Analyze 3D model complexity
2. Partition into optimal parts (size, orientation, support)
3. Match parts to printer capabilities:
- Print volume
- Material availability
- Quality tier requirements
- Geographic proximity (shipping optimization)
4. Assign parts with redundancy (1.2x for critical parts)
- Model validation (manifold, printability)
- Slicer settings review
- Material compatibility check
-
Photo Verification
- Multi-angle photos required
- AI-powered defect detection
- Surface quality assessment
-
Dimensional Verification
- Caliper measurements for critical dimensions
- Comparison against CAD model
- Tolerance validation
-
Functional Testing (when applicable)
- Fit testing with mating parts
- Stress testing for structural parts
-
Final Assembly Verification
- All parts fit together
- No warping or dimensional drift
- Acceptance by requester
Photo Upload → AI Analysis → Pass/Flag
↓
Manual Review (if flagged)
↓
Dimensional Check
↓
Accept/Reject/Request Reprint
↓
Payment/Reputation Update
- Requesters: Submit models, receive assembled products
- Printers: Register machines, accept jobs, submit QA
- QA Reviewers: Manual verification, dispute resolution
- Admins: System oversight, certification approval
- Go 1.21+
- Node.js 20+
- Docker & Docker Compose
- PostgreSQL 15+
- Redis 7+
# Clone repository
git clone <repo-url>
cd swarmforge
# Install dependencies
make install
# Setup environment
cp .env.example .env
# Start services
docker-compose up -d
# Run migrations
make migrate
# Start development
make devPOST /api/v1/jobs- Submit new print jobGET /api/v1/jobs/:id- Get job statusGET /api/v1/jobs/:id/parts- List job parts
POST /api/v1/printers- Register printerPOST /api/v1/printers/:id/certify- Submit certification testGET /api/v1/printers/available- Find available printers
The gateway forwards printer registration and discovery to the printer network service at PRINTER_SERVICE_URL (Docker default: http://printer-service:8083). A printer agent or adapter can use:
POST /v1/printerswithid,name,ip,port,model, andmaterialsGET /v1/printers/:idto inspect connection state and capabilitiesGET /v1/printersto list registered printersPOST /v1/printers/:id/heartbeatwithstatusand optionalcurrent_job_idPOST /v1/printers/:id/jobswithjob_id,part_id, andartifact_url
Dispatch returns the printer IP target and marks the printer as printing. Production deployment must add authenticated printer identities, TLS, network ACLs, signed job payloads, and an adapter for each vendor protocol; the registry does not send unauthenticated commands directly to hardware.
POST /api/v1/qa/submit- Submit QA photos/measurementsPOST /api/v1/qa/review/:id- Review QA submissionGET /api/v1/qa/pending- Get pending QA items
See docs/schema.md for detailed database design.
See CONTRIBUTING.md
MIT