A web application for designing custom 3D-printable cookie cutters from vector images or raster graphics.
π Live Demo
- File Support: Upload SVG, PNG, or JPG files
- Auto-Vectorization: Automatically converts raster images to vector paths
- 3D Preview: Real-time 3D visualization with Three.js
- Customizable Parameters:
- Wall thickness (0.8-2.0mm)
- Cutting height (8-25mm)
- Total height (15-40mm)
- Taper angle (0-15Β°)
- Scale adjustment
- Handle Styles: Round, chamfered, rectangular, flat, or no handle
- Embossing/Stamping: Optional raised or indented designs
- STL Export: Download 3D-printable STL files (binary format)
- Printability Validation: Real-time warnings and recommendations
Powered by Gemini 2.5 Flash with your free API key:
- Image Generation: Create cookie cutter designs from text descriptions (NEW!)
- Smart Suggestions: AI-powered design improvement recommendations
- SVG Analysis: Get optimization recommendations for complex paths
- Design Variations: Generate creative alternatives from descriptions
π How to set up AI features π§ Technical Documentation (for developers)
- Frontend Framework: Svelte 5 + TypeScript
- Build Tool: Vite
- 3D Rendering: Three.js
- Image Vectorization: imagetracer
- Package Manager: pnpm
- Node.js 18+
- pnpm (or npm/yarn)
# Install dependencies
pnpm install
# Start development server
pnpm run dev
# Build for production
pnpm run build
# Preview production build
pnpm run previewThe application will be available at http://localhost:5173/
-
Upload a Design
- Drag and drop or click to browse
- Supported formats: SVG, PNG, JPG (max 10MB)
- Or try the test circle to get started
-
Adjust Parameters
- Use the parameter panel to customize your cookie cutter
- See real-time 3D preview of changes
- Check warnings and recommendations for 3D printing
-
Export STL
- Click "Download STL File" to export
- File will be in binary STL format (smaller file size)
- Ready for slicing and 3D printing!
- PLA (Natural/Undyed): Best for cookie cutters
- PETG: More durable, food-safe
- Layer Height: 0.2mm (0.15mm for detailed stamps)
- Infill: 20%
- Wall Lines: 2-3 perimeters
- Orientation: Print upside down (cutting edge facing up)
- Supports: Generally not needed
- Minimum wall thickness: 0.8mm (recommended 1.0mm)
- Cutting height: 10-15mm for standard cookies
- Taper angle: 5-10Β° for easy cookie removal
- Hand wash only (no dishwasher)
- Store in cool, dry place away from direct sunlight
src/
βββ lib/
β βββ components/
β β βββ ui/
β β β βββ FileUpload.svelte
β β β βββ ParameterPanel.svelte
β β β βββ PrintabilityInfo.svelte
β β βββ viewer/
β β βββ ThreeViewer.svelte
β βββ stores/
β β βββ cookieCutterStore.ts
β βββ types/
β β βββ CookieCutter.ts
β βββ utils/
β βββ cookieCutterGenerator.ts
β βββ imageProcessor.ts
β βββ stlExporter.ts
βββ App.svelte
βββ main.ts
- Advanced path editing tools
- Multi-layer cutters
- Custom text embossing
- Path offsetting with Clipper.js for precise wall control
- Web Workers for heavy computation
- Cloud storage for user designs
- Slicer profile export
- Material cost estimation
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for personal or commercial purposes.
- Based on research into existing cookie cutter design tools
- Inspired by CookieCAD, Cookie Design Lab, and BuildBee
- Built with modern web technologies for optimal performance
For issues or questions, please open an issue on GitHub.
Made with Svelte, Three.js, and passion for 3D printing!