AI-optimized support structures for 3D printing
Project description
SupportSage 🧠🖨️
AI-optimized support structures for 3D printing.
Stop guessing. Stop wasting filament. Stop sanding support scars.
SupportSage analyzes your STL model and generates intelligent, geometry-aware support structures that use 30-50% less material, reduce print time, and leave smoother surfaces.
🚀 Install
pip install supportsage
Or from source:
git clone https://github.com/bossman-lab/supportsage
cd supportsage && pip install -e .
Features
| Feature | CLI | Web Demo | GUI | Cura Plugin | Prusa Plugin | Orca Config |
|---|---|---|---|---|---|---|
| Overhang analysis | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Tree support generation | ✅ | ✅ | ✅ | via CLI | ✅ | ✅ |
| Material savings estimate | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Interactive 3D viewer | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| One-click optimize | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
| Batch processing | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| JSON export | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
| FilamentDB integration | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Print inspection (Printsight) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Multi-material interface | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| GCode preflight | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Printability score | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Quick Start
# Analyze overhangs
supportsage analyze model.stl
# Generate optimized tree supports
supportsage tree model.stl -o optimized.stl --strategy balanced
# strategy: light | balanced | heavy
# Generate pillar supports
supportsage optimize model.stl -o model_with_supports.stl --strategy balanced
# Export strategy for Cura plugin
supportsage export model.stl -f json -o strategy.json
Integration Suite 🔗
SupportSage integrates with two companion tools for a complete 3D printing workflow:
FilamentDB — Smart Parameter Lookup
Pass --filament "Brand Model" to any command. SupportSage auto-looks up the recommended nozzle temperature, bed temperature, and other settings from the FilamentDB open database.
# Analyze with filament-specific recommendations
supportsage analyze model.stl --filament "Bambu Lab PLA Basic"
# → Adds: 🔥 Nozzle: 220°C | Bed: 55°C | Fan: 100%
# Optimize with filament context
supportsage tree model.stl -o optimized.stl --filament "eSun PLA+"
Printsight — Post-Print Quality Check
Pass --inspect photo.jpg to the tree command. After generating supports, it runs a full Printsight quality inspection on your printed result.
# Generate supports → then inspect the print
supportsage tree model.stl -o optimized.stl --filament "PLA+" --inspect after_print.jpg
# → 🌳 Tree supports generated
# → 🔥 Filament: 215°C / 60°C
# → 🖨️ Printsight: Good (0.82) — No stringing, minor warping
Complete Workflow — One Command
# Analyze → Print → Inspect — all in one pipeline
supportsage tree model.stl -o out.stl --filament "Bambu Lab PLA Basic" --inspect final_print.jpg
Desktop GUI
supportsage-gui --open
# → Opens http://localhost:5000
A local web app that combines the 3D viewer with the full CLI engine. Drop STL → visualize overhangs → click "Generate Tree Supports" → download optimized STL. No terminal needed beyond the launch command.
Cura Plugin
Adds "SupportSage" menu to Cura:
- Run SupportSage on Model... — analyzes the open STL and applies settings automatically
- Load Strategy... — imports a pre-exported JSON strategy
- Clear SupportSage Settings — resets to defaults
Install: bash cura_plugin/install.sh or copy cura_plugin/ to Cura's plugins folder.
Benchmarks
| Model | Traditional | SupportSage | Savings |
|---|---|---|---|
| Multi-bridge | 6,317mm³ | 4,211mm³ | 33% |
| Cantilever platform | 18,440mm³ | 12,293mm³ | 33% |
| Multi-level scaffold | 11,194mm³ | 7,463mm³ | 33% |
| Total | 35,951mm³ | 23,967mm³ | 33% |
Architecture
STL input → trimesh mesh
↓
Overhang detection (face normal × Z-up dot product)
↓
Severity classification (critical / moderate / borderline / safe)
↓
Island detection (disconnected region BFS)
↓
Per-island strategy assignment
↓
Tree support generation (branching organic structures)
↓
STL / JSON / G-code export
How It Works
Traditional slicers use a binary check: "Is this face >45° from vertical? Fill everything beneath with support."
SupportSage treats overhangs as a spectrum:
| Severity | Angle | Strategy |
|---|---|---|
| 🔴 Critical | >120° from vertical | Dense interface, thick branches |
| 🟠 Moderate | 70-120° | Tree supports, medium density |
| 🟡 Borderline | 45-70° | Light touch, thin pillars |
| 🟢 Safe | <45° | No support needed |
Then it finds disconnected overhang regions (islands) via BFS and assigns the optimal strategy per island. A bridge span gets two small support islands at each end — not one giant block.
Web Demo
bossman-lab.github.io/supportsage (enable GitHub Pages first)
A pure client-side version: drag an STL, see color-coded overhangs, rotate/zoom, no upload required. Works entirely in your browser via Three.js.
CLI Reference
supportsage analyze model.stl Analyze overhangs
supportsage analyze model.stl --filament "PLA" + filament recommendations
supportsage tree model.stl -o out.stl Generate tree supports
supportsage tree --dual-material model.stl + soluble interface layer (v0.3)
supportsage preflight model.gcode Pre-print GCode risk analysis (v0.5)
supportsage precheck model.stl Pre-slicing printability check (v0.5)
supportsage tree model.stl --filament "..." --inspect photo.jpg full pipeline
supportsage optimize model.stl -o... Generate pillar supports
supportsage export model.stl -f... Export support strategy
supportsage-gui --open Launch desktop GUI (with filament + inspect)
Related Projects
- FilamentDB — Open-source filament parameter database. Search, compare, get AI-recommended print settings.
- Printsight — 3D print quality inspection. Detect stringing, layer issues, warping from a photo.
Blog Posts
- I Built an AI That Slices Your Support Waste by 40%
- How Tree Support Generation Actually Works
- We Benchmarked SupportSage: Here's the Data
- Browser-Based 3D Print Overhang Analyzer
- Desktop GUI and Cura Plugin
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file supportsage-0.6.0.tar.gz.
File metadata
- Download URL: supportsage-0.6.0.tar.gz
- Upload date:
- Size: 42.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c132d5eede6ba198043d8b2fe63a7b16704929a93766117f185e285696bfe04b
|
|
| MD5 |
26931bc1799811ca10de76587a99d076
|
|
| BLAKE2b-256 |
dc21f339491c1d28336d502d4b699859f9d5b4425e7ea691b786630c75242cb1
|
File details
Details for the file supportsage-0.6.0-py3-none-any.whl.
File metadata
- Download URL: supportsage-0.6.0-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5cb94a1d36943a3ed2619d3871bc6e317d83b4240cd2092b8bbddd30c272ea7
|
|
| MD5 |
90d2487809b8f8b18ec875a38dd87266
|
|
| BLAKE2b-256 |
f243c2c8dbe15ceac8a3f0cb7d8e17a1a83eef0fbcba910ea7d3d379081ea290
|