Skip to main content

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

  1. I Built an AI That Slices Your Support Waste by 40%
  2. How Tree Support Generation Actually Works
  3. We Benchmarked SupportSage: Here's the Data
  4. Browser-Based 3D Print Overhang Analyzer
  5. 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

supportsage-0.6.3.tar.gz (50.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

supportsage-0.6.3-py3-none-any.whl (45.9 kB view details)

Uploaded Python 3

File details

Details for the file supportsage-0.6.3.tar.gz.

File metadata

  • Download URL: supportsage-0.6.3.tar.gz
  • Upload date:
  • Size: 50.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for supportsage-0.6.3.tar.gz
Algorithm Hash digest
SHA256 0885e890c646855855f4f1ad7350feca32f2032a7f3a268e0a8177b8d2e9a34d
MD5 14e8aed590e9c1e1914deaa6e1dc7fd6
BLAKE2b-256 bc231c7b93da86035c641b6aa5a713dfa0872c2d02711f29ba7d77b4678a129f

See more details on using hashes here.

File details

Details for the file supportsage-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: supportsage-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 45.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for supportsage-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8dc5f8562308d351c78125c9c6cd66941c08d487dc11fe318caedb33c81fd05a
MD5 035af83f4a48b171254ecd9f22d602a2
BLAKE2b-256 d1f47477010460315ece3b2f4712f07e9e2c79f7800f6beb785d43638a70d898

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page