PrintGen exists to close the gap between imagination and physical object.
Describe what you want, see it in 3D, refine it through conversation, and hold it in your hands -- whether you own a printer or not.
🎬 Watch the 1080p version · built with Remotion, source in remotion/
Cloud mode (working): Generate 3D models from text or images using AI, preview them in an interactive 3D viewer, export as STL/OBJ/GLB, browse and share designs on the marketplace, follow creators, and discover trending models.
Local mode (working): Connect to your Bambu A1 Mini over LAN, auto-slice .3mf files, and print with a 2-step GUI wizard. Lives in the printer/ package.
Coming next: Smart parametric parts (dimension overlay, parameter editing), web-to-printer bridge, and a two-sided print marketplace connecting designers with printer owners.
| Phase | Status |
|---|---|
| Phase 1: Core Loop (generate, view, save, export) | Complete |
| Phase 2: Marketplace & Discovery (browse, search, like, profiles, follow) | Complete |
| Phase 2.5: Smart Primitives (parametric parts, templates, tolerances) | In Progress |
| Phase 3: Local Printer Pipeline (connect, slice, print via LAN) | Complete (web bridge planned) |
| Phase 4: Print Marketplace (two-sided, makers + buyers) | Planned |
| Phase 5: Platform Revenue (subscriptions, Stripe Connect) | Planned |
See docs/MILESTONES.md for detailed milestone tracking.
git clone <repo-url>
cd printgen
./scripts/setup.sh
# Add your API keys to .env.local (or get from a teammate)
./scripts/start.shOpen http://localhost:3000.
Requires a Bambu Lab printer on your LAN (tested with A1 Mini).
cd printer
npm install
npm run setup # Interactive wizard: enter printer IP, access code, serial number
npm run gui # Opens local web UI at http://localhost:3001Other commands:
npm run status-- live printer status (temps, layer, progress)npm run print-- send a file to the printer from CLI
Config is saved to .printgen/config.json. The entire .printgen/ directory is gitignored because it holds your printer's LAN credentials and access code — never commit it.
| Component | Technology |
|---|---|
| Frontend | Next.js 14, TypeScript, Tailwind, Three.js |
| Backend | Supabase (PostgreSQL + Auth + Storage) |
| AI Generation | Tripo, HuggingFace (fallback chain) |
| Local Printer | Node.js/TypeScript, MQTT (port 8883), FTPS (port 990) |
| Hosting | Vercel |
Full details: docs/STACK.md
| Doc | What's In It |
|---|---|
| docs/ROADMAP.md | What to build next, phase plans, priorities (source of truth) |
| docs/STACK.md | Tech stack, architecture, DB schema, API routes |
| docs/ENV.md | Environment variables, CLI tools, MCP config, onboarding |
| docs/FEATURES.md | Every feature with acceptance criteria and status |
| docs/MILESTONES.md | Progress tracker (milestone-level) |
| docs/HIBERNATE.md | Halt + resume runbook (what to pause to stop billing, how to bring it back) |
| CONTRIBUTING.md | How to contribute, code standards, PR process |
git clone <repo-url>
# Get .env.local from a teammate
npm install
npm run devSee CONTRIBUTING.md for branch strategy, code standards, and PR process.
MIT
