Open-source 3D printer farm management and orchestration system designed for commercial print services, makerspaces, and manufacturing facilities.
Farm3D is a self-hosted, local-first farm orchestration platform that intelligently manages multiple 3D printers, optimizes job scheduling, and maximizes printer utilization. Unlike individual printer control interfaces (like Fluidd or Mainsail), Farm3D operates at the farm level, coordinating jobs across your entire printer fleet while working alongside your existing printer control software.
- Intelligent Scheduling: Constraint-based scheduling algorithm using OR-Tools achieves 30-50% improvement in printer utilization
- Material-Aware Job Assignment: Integration with Spoolman for automatic job-to-printer matching based on available materials
- Zero Licensing Costs: No per-printer fees - run unlimited printers without recurring costs
- Local-First Architecture: All data stays on your infrastructure, no cloud dependencies
- AI-Ready Infrastructure: Built-in support for AI-powered failure detection and optimization
- Open Source: MIT licensed, community-driven development
Farm3D is designed for organizations that need professional-grade printer farm management:
- Small to Medium Print Farms (10-50 printers): Businesses offering on-demand 3D printing services
- Large Print Farms (50-100+ printers): High-volume commercial printing operations
- Print Service Bureaus: Companies providing prototyping and manufacturing services
- University Makerspaces: Campus facilities managing shared printer resources
- Research Labs: Academic institutions with multiple printers for research projects
- Technical Schools: Educational facilities teaching additive manufacturing
- Manufacturing Facilities: Companies using 3D printing for prototyping or low-volume production
- Product Development Teams: Organizations requiring rapid iteration and testing
- Contract Manufacturers: Facilities offering 3D printing as part of their services
Traditional 3D printer farm management faces critical challenges:
- Manual Job Assignment: Operators manually assign jobs to printers, leading to inefficiencies and bottlenecks
- Material Mismatches: Jobs fail due to incorrect filament being loaded on assigned printers
- Expensive Commercial Solutions: Proprietary software charges $15-30 per printer per month (e.g., AutoFarm3D at $30/printer/month)
- Cloud Dependencies: Many solutions require internet connectivity and send data to external servers
- Poor Utilization: Without intelligent scheduling, printer utilization remains at 40-60% despite available capacity
- Vendor Lock-In: Commercial solutions often restrict usage to specific printer brands
Farm3D addresses these challenges through:
- OR-Tools Integration: Advanced constraint programming optimizes job assignment
- Multi-Factor Optimization: Considers material availability, printer capabilities, job priority, and estimated completion times
- Dynamic Rescheduling: Automatically adjusts assignments when printers fail or jobs complete early
- Expected Impact: 30-50% improvement in printer utilization
- Spoolman Integration: Real-time tracking of available materials across all printers
- Automatic Matching: Jobs are assigned only to printers with compatible materials loaded
- Material Tracking: Monitor filament usage and remaining spool capacity
- Expected Impact: 30-50% reduction in failed prints due to material mismatches
- No Per-Printer Licensing: Unlimited printers without recurring fees
- Self-Hosted: Run on your own infrastructure (cloud or on-premises)
- Open Source: MIT licensed, modify and extend as needed
- Expected Savings: $180-360/year per printer compared to AutoFarm3D
- Data Sovereignty: All print data, job history, and metadata stays on your servers
- Offline Capable: Core functionality works without internet connectivity
- Privacy Focused: No telemetry or data sharing with third parties
- Compliance Ready: Meets requirements for sensitive manufacturing environments
- Real-Time Updates: WebSocket-based live printer status and job progress
- Responsive UI: Built with Next.js 15 and HeroUI for excellent user experience
- High Performance: Go backend with PostgreSQL and Redis for scalability
- RESTful API: Complete API for integrations and automation
-
Printer Management
- Add/remove printers with Moonraker (Klipper) support
- Real-time status monitoring via WebSockets
- Printer capabilities tracking (heated bed, material compatibility, etc.)
- Grouping and organization
-
Job Queue Management
- Upload and queue print jobs
- Manual job assignment to printers
- Job status tracking (queued, printing, completed, failed)
- Priority-based job ordering
-
Material Tracking
- Spoolman integration for filament inventory
- Track active spool per printer
- Material requirements for jobs
-
Basic Scheduling
- FIFO (First In, First Out) scheduling
- Manual printer selection
- Material compatibility checking
- Constraint-based scheduling with OR-Tools
- Multi-factor optimization (material, capabilities, priority)
- What-if scenario analysis
- Estimated completion time calculations
- Printer groups with power management
- Auto-start delay configurations
- Queue holds and maintenance modes
- Job templates and saved configurations
- Computer vision-based failure detection
- Predictive maintenance alerts
- Historical analytics and insights
- Performance optimization recommendations
- Multi-user support with role-based access control
- API rate limiting and authentication
- Advanced reporting and dashboards
- Webhook integrations
- Framework: Next.js 15 (App Router with React Server Components)
- UI Library: HeroUI v2 (Next UI components)
- State Management: Zustand (vanilla stores for SSR compatibility)
- Styling: Tailwind CSS 4.1
- Language: TypeScript 5.6.3
- Real-Time: WebSocket client for live updates
- Language: Go 1.23+
- Framework: Fiber v2 (Express-like web framework)
- Database: PostgreSQL 16 + TimescaleDB (for time-series metrics)
- Cache: Redis 7+ (job queue, caching, pub/sub)
- ORM: GORM (Go ORM with PostgreSQL driver)
- Storage: MinIO (S3-compatible object storage for G-code files)
- Scheduler: OR-Tools (constraint programming for job optimization)
- Containerization: Docker & Docker Compose
- Reverse Proxy: Nginx (planned)
- Monitoring: Prometheus + Grafana (planned)
- Camera Streaming: WebRTC (planned)
- Node.js 18+ (for frontend development)
- npm or pnpm (package manager)
- Git (version control)
- Docker & Docker Compose (for running services)
- Go 1.23+ (for backend development - coming soon)
git clone https://github.com/Bunty9/farm_3d.git
cd farm3dcd frontend
npm install
npm run devThe frontend will be available at http://localhost:3000
The Go backend is currently under development. Check the backend/ directory for updates.
# Placeholder - backend setup instructions will be added
cd backend
# go mod download
# go run cmd/server/main.go# Using Docker Compose
docker-compose up -d postgres redis miniocd frontend
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run type-check # Run TypeScript type checkingfarm_3d/
├── frontend/ # Next.js frontend application
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ ├── stores/ # Zustand state management
│ ├── providers/ # React context providers
│ ├── types/ # TypeScript type definitions
│ └── config/ # Configuration files
├── backend/ # Go backend (coming soon)
├── docs/ # Documentation
│ ├── ideation/ # Design documents and specifications
│ └── frontend/ # Frontend-specific documentation
└── README.md # This file
We welcome contributions from the community! Farm3D is built by makers, for makers.
- Report Bugs: Open an issue describing the bug, steps to reproduce, and expected behavior
- Suggest Features: Open an issue with the "feature request" label describing your idea
- Submit Pull Requests: Fork the repo, create a feature branch, and submit a PR
- Improve Documentation: Help us improve docs, add examples, or fix typos
- Share Your Experience: Blog posts, tutorials, and case studies are valuable!
- Fork the repository on GitHub
- Clone your fork locally
git clone https://github.com/YOUR_USERNAME/farm3d.git cd farm3d - Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes and commit with clear messages
git commit -m "feat: add new scheduling algorithm" - Push to your fork
git push origin feature/your-feature-name
- Open a Pull Request against the
mainbranch
- Frontend: Follow the existing ESLint configuration, use TypeScript strictly
- Backend: Follow Go best practices, use
gofmtfor formatting - Commits: Use Conventional Commits format
- Testing: Add tests for new features (when testing infrastructure is in place)
- Documentation: Update relevant docs when adding features or changing behavior
- Backend Development: Help build the Go REST API and scheduler
- UI/UX Design: Improve the frontend interface and user experience
- Documentation: Write guides, tutorials, and API documentation
- Testing: Create unit tests, integration tests, and E2E tests
- DevOps: Docker configurations, CI/CD pipelines, deployment guides
- Integrations: Add support for more printer types (Marlin, RepRapFirmware, etc.)
- AI/ML: Failure detection models, optimization algorithms
- Translations: Internationalization support
- Frontend foundation with Next.js 15 and HeroUI
- Zustand state management setup
- TypeScript type definitions for all entities
- Basic component structure
- Go backend REST API
- PostgreSQL database schema
- Moonraker integration for printer control
- Basic job queue management
- Manual job assignment
Q1 2025: Phase 1 MVP Release
- Complete backend API implementation
- Printer registration and monitoring
- Job upload and basic queue management
- Spoolman integration for material tracking
Q2 2025: Phase 2 Intelligent Scheduling
- OR-Tools integration for constraint-based scheduling
- Automated job-to-printer assignment
- Material-aware scheduling
- What-if scenario analysis
Q3 2025: Phase 3 Advanced Management
- Printer groups and power management
- Queue holds and maintenance modes
- Improved UI/UX based on user feedback
- Performance optimizations
Q4 2025: Phase 4 AI & Analytics
- Computer vision failure detection
- Predictive maintenance
- Analytics dashboards
- Historical reporting
2026: Phase 5 Enterprise Features
- Multi-user support with RBAC
- Advanced API features
- Webhook integrations
- Third-party plugin system
Farm3D uses a modern, scalable architecture designed for reliability and performance:
- Frontend: Next.js 15 with Server-Side Rendering for fast initial loads
- API: RESTful API with WebSocket support for real-time updates
- Database: PostgreSQL for relational data, TimescaleDB for time-series metrics
- Cache/Queue: Redis for job queuing, caching, and pub/sub messaging
- Storage: MinIO for G-code file storage (S3-compatible)
- Scheduler: OR-Tools constraint programming for optimal job assignment
For detailed architecture documentation, see:
Farm3D differentiates itself from existing solutions:
| Feature | Farm3D | AutoFarm3D | SimplyPrint | FDM Monster | Bambu Farm |
|---|---|---|---|---|---|
| Pricing | Free (Open Source) | $30/printer/month | $7-15/printer/month | Free | Included with printers |
| Hosting | Self-hosted | Cloud | Cloud | Self-hosted | Cloud |
| Printer Limit | Unlimited | Unlimited | Unlimited | Unlimited | Bambu Lab only |
| Material-Aware Scheduling | Yes | No | No | No | Limited |
| AI Failure Detection | Planned | No | Yes | No | Yes |
| Open Source | MIT License | No | No | AGPLv3 | No |
| Constraint-Based Scheduling | Yes (OR-Tools) | No | No | No | Basic |
| API Access | Full REST API | Limited | Limited | Yes | Limited |
| Data Privacy | Local-first | Cloud-based | Cloud-based | Local-first | Cloud-based |
Organizations using Farm3D can expect:
- 30-50% improvement in printer utilization
- 30-50% reduction in failed prints due to material mismatches
- 200-300% increase in total print output (with intelligent scheduling)
- $180-360 annual savings per printer compared to AutoFarm3D
- Zero vendor lock-in - works with any Moonraker-compatible printer
- GitHub: https://github.com/Bunty9/farm_3d
- Issues: https://github.com/Bunty9/farm_3d/issues
- Discussions: https://github.com/Bunty9/farm_3d/discussions
Farm3D is licensed under the MIT License. See LICENSE for full details.
This means you can:
- Use Farm3D commercially without restrictions
- Modify and distribute your changes
- Use it privately without sharing modifications
- Sublicense your modifications
Farm3D builds upon the excellent work of:
- Klipper - High-performance 3D printer firmware
- Moonraker - API server for Klipper
- Spoolman - Filament inventory management
- Next.js - React framework for production
- HeroUI - Beautiful React component library
- OR-Tools - Google's optimization toolkit
Built with ❤️ by the 3D printing community
Farm3D is in active development. Star the repo to follow our progress!