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.0.tar.gz (42.9 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.0-py3-none-any.whl (45.6 kB view details)

Uploaded Python 3

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

Hashes for supportsage-0.6.0.tar.gz
Algorithm Hash digest
SHA256 c132d5eede6ba198043d8b2fe63a7b16704929a93766117f185e285696bfe04b
MD5 26931bc1799811ca10de76587a99d076
BLAKE2b-256 dc21f339491c1d28336d502d4b699859f9d5b4425e7ea691b786630c75242cb1

See more details on using hashes here.

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

Hashes for supportsage-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f5cb94a1d36943a3ed2619d3871bc6e317d83b4240cd2092b8bbddd30c272ea7
MD5 90d2487809b8f8b18ec875a38dd87266
BLAKE2b-256 f243c2c8dbe15ceac8a3f0cb7d8e17a1a83eef0fbcba910ea7d3d379081ea290

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