Table of contents

  1. Optimization Strategies
    1. Schema
    2. Properties
    3. Available Strategies
      1. MINIMIZE_HEIGHT
        1. Use Cases
        2. Behavior
        3. Example
      2. MAXIMIZE_DENSITY
        1. Use Cases
        2. Behavior
        3. Example
      3. MINIMIZE_SUPPORT
        1. Use Cases
        2. Behavior
        3. Example
    4. Weight Parameter
    5. Implementation Notes
    6. Example Scenarios
      1. High-Speed Production
      2. Quality-Focused Build
      3. Balanced Batch Production

Optimization Strategies

The optimization object defines how parts should be arranged when multiple valid solutions exist.

Schema

{
  "optimization": {
    "strategy": "MINIMIZE_HEIGHT",
    "weight": 1.0
  }
}

Properties

Property Type Description
strategy string Primary optimization goal
weight number Strategy importance (0-1)

Available Strategies

MINIMIZE_HEIGHT

Attempts to reduce the overall build height by prioritizing compact vertical arrangements.

Use Cases

  • Reducing build time
  • Minimizing material waste
  • Optimizing machine utilization

Behavior

  • Prefers wider, shorter arrangements
  • May spread parts horizontally
  • Considers part stacking where allowed

Example

{
  "optimization": {
    "strategy": "MINIMIZE_HEIGHT",
    "weight": 0.8
  }
}

MAXIMIZE_DENSITY

Attempts to pack parts as closely as possible while respecting spacing constraints.

Use Cases

  • Maximizing build capacity
  • Batch production
  • High-volume manufacturing

Behavior

  • Minimizes empty space between parts
  • May increase build height
  • Prioritizes efficient space utilization

Example

{
  "optimization": {
    "strategy": "MAXIMIZE_DENSITY",
    "weight": 1.0
  }
}

MINIMIZE_SUPPORT

Attempts to orient and position parts to minimize required support structures.

Use Cases

  • Reducing post-processing time
  • Improving surface quality
  • Minimizing material waste

Behavior

  • Prefers orientations with minimal overhangs
  • May increase spacing for support accessibility
  • Considers support removal access

Example

{
  "optimization": {
    "strategy": "MINIMIZE_SUPPORT",
    "weight": 0.9
  }
}

Weight Parameter

The weight parameter (0-1) determines how strongly to prioritize the chosen strategy:

  • 1.0: Maximum priority
    • Strictly follows optimization strategy
    • May sacrifice other considerations
    • Best theoretical optimization
  • 0.5: Balanced approach
    • Considers optimization alongside other factors
    • Balances multiple objectives
    • More flexible solutions
  • 0.0: Minimum priority
    • Minimal optimization influence
    • Focuses on constraint satisfaction
    • May result in suboptimal arrangements

Implementation Notes

  1. Priority Order
    • Part constraints take precedence over optimization
    • Global constraints must be satisfied
    • Optimization applies within remaining degrees of freedom
  2. Multiple Solutions
    • When multiple valid solutions exist, optimization breaks ties
    • Higher weights reduce solution variety
    • Lower weights allow more variation
  3. Performance Impact
    • Higher weights may increase computation time
    • More complex strategies (like MINIMIZE_SUPPORT) may take longer
    • Consider performance requirements when setting weights

Example Scenarios

High-Speed Production

{
  "optimization": {
    "strategy": "MINIMIZE_HEIGHT",
    "weight": 1.0
  }
}

Prioritizes fastest possible build time

Quality-Focused Build

{
  "optimization": {
    "strategy": "MINIMIZE_SUPPORT",
    "weight": 0.9
  }
}

Focuses on part quality and minimal post-processing

Balanced Batch Production

{
  "optimization": {
    "strategy": "MAXIMIZE_DENSITY",
    "weight": 0.7
  }
}

Balances density with other considerations