Skip to content

Getting Started with FiberPath

This guide walks you through installing FiberPath and creating your first filament winding pattern.

Installation

Download installers from the latest release:

  • Windows: .msi or .exe installer
  • macOS: .dmg installer
  • Linux: .deb or .AppImage

No Python installation required. The desktop GUI is fully self-contained with the FiberPath backend bundled inside. Simply download, install, and start designing winding patterns.

The GUI provides an intuitive interface for planning, visualization, and streaming to hardware—no command-line experience needed.

Python CLI & API (For Developers and Automation)

If you need command-line access or want to integrate FiberPath into your own tools, install via pip or uv:

pip install fiberpath

or with uv for faster, deterministic installs:

uv pip install fiberpath

Verify installation:

fiberpath --version

Note: The desktop GUI already includes everything\u2014you only need this if you want standalone CLI access or are developing with the API.

Development Setup

Clone the repository and install with development dependencies:

git clone https://github.com/CameronBrooks11/fiberpath.git
cd fiberpath
uv pip install -e .[dev,cli,api]

See Contributing for detailed development setup.

Basic Workflow

FiberPath follows a simple workflow: Plan → Visualize → Stream

1. Plan: Generate G-code

Create a .wind file defining your winding pattern or use an example:

fiberpath plan examples/simple_cylinder/input.wind -o simple.gcode

The planner generates G-code from your wind definition, validating parameters and calculating toolpaths.

2. Visualize: Preview the Pattern

Preview the generated toolpath before streaming to hardware:

fiberpath plot simple.gcode --output simple.png --scale 0.8

The plot command creates an unwrapped mandrel view showing fiber placement. The scale parameter (0-1) adjusts image size.

3. Stream: Execute on Hardware (Optional)

Stream G-code to Marlin-compatible hardware:

CLI:

fiberpath stream simple.gcode --port COM3 --baud 115200

GUI: Open the Stream tab (Alt+2) and use the visual interface for connection management and file streaming.

Your First Wind Definition

Create a file named my_first_wind.wind:

{
  "schemaVersion": "1.0",
  "mandrelParameters": {
    "diameter": 100,
    "windLength": 200
  },
  "towParameters": {
    "width": 12,
    "thickness": 0.25
  },
  "defaultFeedRate": 2000,
  "layers": [
    {
      "windType": "hoop",
      "terminal": false
    },
    {
      "windType": "helical",
      "windAngle": 45,
      "patternNumber": 3,
      "skipIndex": 1,
      "lockDegrees": 10,
      "leadInMM": 10,
      "leadOutDegrees": 10
    },
    {
      "windType": "hoop",
      "terminal": true
    }
  ]
}

This defines a simple 3-layer pattern: hoop → helical (45°) → hoop.

Generate G-code:

fiberpath plan my_first_wind.wind -o my_first.gcode

Common Commands

Planning

# Basic plan with default XAB axes
fiberpath plan input.wind -o output.gcode

# Plan with legacy XYZ axes for compatibility
fiberpath plan input.wind -o output.gcode --axis-format xyz

# Verbose output with layer details
fiberpath plan input.wind -o output.gcode --verbose

Visualization

# Generate preview plot
fiberpath plot output.gcode --output preview.png

# Smaller image for quick preview
fiberpath plot output.gcode --output preview.png --scale 0.5

Simulation

# Estimate time and material usage
fiberpath simulate output.gcode

Validation

# Validate wind definition without generating G-code
fiberpath validate input.wind

Streaming

# Stream with dry-run (no hardware required)
fiberpath stream output.gcode --dry-run

# Stream to hardware
fiberpath stream output.gcode --port COM3 --baud-rate 115200

Next Steps

  • Learn the Wind Format: See Wind Format Guide for complete schema documentation
  • Understand Axis Mapping: Read Axis Mapping Guide to choose XAB vs XYZ
  • Stream to Hardware: Follow Marlin Streaming Guide for connection and control
  • Explore Examples: Check examples/ directory for sample wind definitions (simple cylinder, multi-layer, sized cylinder)

Troubleshooting

ImportError: No module named 'fiberpath':

  • Ensure you've installed the package: pip install fiberpath or uv pip install fiberpath
  • For development: uv pip install -e .

Command not found: fiberpath:

  • Ensure your virtual environment is activated
  • Verify installation with python -m fiberpath_cli.main --help

Validation errors in .wind file:

  • Check JSON syntax is valid
  • Ensure all required fields are present
  • Verify camelCase property names (e.g., windAngle not wind_angle)
  • See Wind Format Guide for schema details

Serial port not detected:

  • Verify hardware is connected and powered
  • Check drivers are installed (Windows may need CH340/FTDI drivers)
  • Try different USB ports
  • On Linux, ensure user is in dialout group: sudo usermod -a -G dialout $USER
  • See Troubleshooting Guide for platform-specific serial port issues