A web application that helps you discover what colors you can create by mixing your 3D printing filaments. Built specifically for use with filament color mixing systems from MakerWorld models 460079, 912395, and 1079318.
- Forward-focused approach: See what colors you CAN make from your filament inventory
- Multiple mixing modes: 2-way, 3-way, and 4-way color combinations
- Scientifically accurate: Uses Kubelka-Munk theory via spectral.js for realistic subtractive color mixing
- 2D Color Map: Interactive HSL color space projection with density heatmap
- 3D Color Space: Immersive 3D visualization with rotating color point cloud
- Grid View: Traditional swatch grid for quick browsing
- Real filament data: Integration with FilamentColors.xyz API (3000+ real filament colors)
- Target color search: Find recipes to match a specific color you want
- Interactive recipes: Adjust mixing percentages in real-time with sliders
- Alternative suggestions: Discover similar colors with different recipes
- Persistent storage: Your filament inventory is saved locally
- Modern, dark UI: Beautiful gradient-based design with smooth animations
- Responsive: Works on desktop, tablet, and mobile devices
- Fast: Client-side processing for instant results
- No backend required: Runs entirely in your browser
3D printer filament mixing uses subtractive color mixing (like paint), not additive RGB mixing (like light). This app uses the Kubelka-Munk theory to accurately predict how pigments blend when printed together.
- Add your available filaments (search real filaments or enter manually)
- The app generates ALL possible color combinations
- Visualize achievable colors in 2D/3D color space
- Click any color to see the exact recipe
- Adjust mixing percentages to fine-tune colors
This app is designed for use with filament mixer models from MakerWorld:
- Model 460079 (jetpad): 2-4 color uniform mixing
- Model 912395 (Molodos): Multi-color filament creator
- Model 1079318 (fmod): Comprehensive mixing and multi-color system
When you print these models and set your mixing ratios, this app helps you know exactly what color you'll get!
- Clone this repository
- Open
index.htmlin a modern web browser - No build process or server required!
- Click "Load Sample Set" to add 10 sample filaments
- Explore ~500+ possible color combinations
- Click colors to see recipes
- Click "Add Filament"
- Search FilamentColors.xyz or enter manually
- See your achievable color space update in real-time
- Search: Type brand/color (e.g., "Bambu Lab Blue") to search real filament database
- Manual: Enter brand, material, color name, and hex code manually
- Samples: Load 10 pre-configured sample filaments
- 2D Map: Shows achievable colors in Hue Γ Saturation space
- Adjust lightness slider to explore different brightness levels
- Point size/density indicates number of recipes for that color
- 3D Space: Rotate and zoom through full HSL cylinder
- Drag to rotate, scroll to zoom
- Each point is a unique achievable color
- Grid View: Traditional color swatches for quick browsing
- Click any color in the visualization
- Recipe panel opens showing exact percentages
- Adjust sliders to modify ratios in real-time
- See color preview update instantly
- View alternative recipes for similar colors
- Toggle 2-way, 3-way, 4-way mixes on/off
- Uncheck filaments to exclude them from combinations
- Filter by lightness in 2D view
- Click the π― button in bottom-right
- Pick or enter your target color
- See top 10 closest matches with similarity scores
- Click any match to view its recipe
- Vanilla JavaScript - No frameworks, just clean ES6+
- spectral.js - Kubelka-Munk color mixing implementation
- Three.js - 3D visualization
- FilamentColors.xyz API - Real filament color database
- HTML5 Canvas - 2D color space rendering
- LocalStorage - Persistent data storage
- Modern browser with ES6+ support (Chrome, Firefox, Safari, Edge)
- Canvas 2D API support
- WebGL support (for 3D view)
- LocalStorage enabled
- 4 filaments: ~330 combinations (instant)
- 10 filaments: ~23,500 combinations (~500ms)
- Optimized canvas rendering for smooth 60fps
The app uses a hierarchical mixing approach:
- 2-way: Direct spectral.js mixing at various ratios
- 3-way: Mix first two colors, then mix result with third
- 4-way: Mix pairs, then mix the two results
This approximates physical pigment mixing while keeping calculations fast.
/
βββ index.html # Main HTML file
βββ css/
β βββ styles.css # Styling with modern dark theme
βββ js/
β βββ app.js # Main application orchestrator
β βββ filament-manager.js # Filament inventory CRUD
β βββ api-client.js # FilamentColors.xyz API
β βββ color-mixer.js # Color mixing engine
β βββ color-visualizer.js # 2D/3D/grid visualization
β βββ storage.js # LocalStorage wrapper
βββ README.md # This file
Contributions welcome! Some ideas:
- Additional visualization modes
- Export recipes to PDF/JSON
- Import/export filament inventory
- Color naming algorithm
- Suggest filaments to expand color range
- Integration with other filament databases
- spectral.js by rvanwijnen - Kubelka-Munk color mixing
- FilamentColors.xyz - Real filament color database
- Three.js - 3D graphics library
- 460079: Multi Color Filament Mixer by jetpad
- 912395: Multicolor filament V2 by Molodos
- 1079318: Multi Color Filament 80g by fmod
MIT License - feel free to use, modify, and distribute
Built with creativity and attention to detail for the 3D printing community.
Happy mixing! π¨π¨οΈ
