Skip to main content

Modern filament winding planner, simulator, and G-code toolkit.

Project description

FiberPath

Plan, simulate, and manufacture composite parts with precision fiber winding.

Version License: AGPL-3.0 Backend CI GUI CI Docs

Python TypeScript React Tauri

Download · Documentation · Examples


Overview

FiberPath automates the complex process of filament winding—wrapping fiber-reinforced composites around mandrels to create lightweight, high-strength cylindrical parts like pressure vessels, pipes, and aerospace structures.

Design multi-layer winding patterns in a visual interface, simulate the full manufacturing process, and stream G-code directly to Marlin-based hardware. FiberPath handles the mathematics of geodesic paths, fiber tension calculations, and machine kinematics so you can focus on part design.

Features

  • Visual Layer Editor – Design winding patterns with real-time 3D preview
  • Geodesic Path Planning – Automatic computation of stable fiber trajectories
  • Hardware Simulation – Validate motion before manufacturing
  • Direct Machine Control – Stream G-code to Marlin controllers with pause/resume
  • Flexible Axis Mapping – Support for XAB rotational or XYZ linear axis configurations
  • Cross-Platform Desktop GUI – Native Windows, macOS, and Linux applications
  • Command-Line Tools – Scriptable workflows for automation and CI/CD
  • Comprehensive Documentation – Architecture guides, examples, and API reference

Quick Start

Option 1: Desktop GUI (Recommended)

Download the installer for your platform from the latest release:

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

Launch the application, load an example from the File menu, and explore the visual editor.

Option 2: Command-Line Interface

Install via pip or uv:

pip install fiberpath
# or
uv pip install fiberpath

Generate G-code from an example:

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

The plot command creates a 2D unwrapped visualization of the toolpath for quick inspection.

Installation

Desktop Application (Recommended)

📦 Download: github.com/CameronBrooks11/fiberpath/releases/latest

No Python installation required—the GUI is a fully self-contained native application with the FiberPath backend bundled inside. Just download, install, and run.

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

All desktop installers include the complete FiberPath toolchain for planning, simulation, and streaming.

Python Package

Requirements: Python 3.11+

# Install from PyPI
pip install fiberpath

# Install with optional dependencies
pip install fiberpath[cli]  # CLI tools
pip install fiberpath[api]  # FastAPI server
pip install fiberpath[dev]  # Development tools

Development Install:

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

💡 Using uv is recommended for faster installs, but standard pip works fine.

Usage Examples

Planning a Winding Pattern

# Generate G-code from a .wind configuration
fiberpath plan examples/simple_cylinder/input.wind -o output.gcode

# Specify axis format for your machine
fiberpath plan input.wind -o output.gcode --axis-format xab

Visualizing Toolpaths

# Create 2D unwrapped plot
fiberpath plot output.gcode --output preview.png --scale 0.8

# Interactive 3D simulation (GUI)
fiberpath simulate output.gcode

Streaming to Hardware

# Test streaming without hardware connection
fiberpath stream output.gcode --dry-run

# Connect and stream to Marlin controller
fiberpath stream output.gcode --port COM5 --baud-rate 250000

FiberPath automatically waits for Marlin's startup sequence (M92, M203, etc.) before streaming. Use Ctrl+C to pause—FiberPath issues M0 and resumes with M108.

Using the Desktop GUI

The GUI provides two main workflows:

Main Tab:

  • Visual layer editor with add/remove/reorder
  • Real-time 3D canvas preview
  • Parameter forms for mandrel, tow, and machine settings
  • Export to G-code or save as .wind project file

Stream Tab:

  • Serial port selection and connection management
  • Manual G-code command input for testing
  • File streaming with pause/resume/cancel controls
  • Real-time position tracking and status updates

Development Workflow

# Run GUI in development mode
cd fiberpath_gui
npm install
npm run tauri dev

# Run tests
pytest                           # Python tests
cd fiberpath_gui && npm test     # TypeScript tests

# Run API server
fiberpath-api --port 8000        # Requires fiberpath[api] install

Architecture

FiberPath consists of four coordinated components:

┌─────────────────────────────────────────────────┐
│              Desktop GUI (Tauri + React)        │
│  • Visual layer editor                          │
│  • 3D canvas preview                            │
│  • Serial communication controls                │
└───────────────┬─────────────────────────────────┘
                │ IPC calls
                ▼
┌─────────────────────────────────────────────────┐
│           CLI (Typer + Python)                  │
│  • plan   • plot   • simulate   • stream        │
└───────────────┬─────────────────────────────────┘
                │ imports
                ▼
┌─────────────────────────────────────────────────┐
│           Core Engine (Python)                  │
│  • Geodesic path planning                       │
│  • Layer strategies                             │
│  • G-code generation                            │
│  • Geometry utilities                           │
└─────────────────────────────────────────────────┘
                ▲
                │ imports
┌───────────────┴─────────────────────────────────┐
│           API Server (FastAPI)                  │
│  • RESTful planning endpoints                   │
│  • JSON input/output                            │
│  • Optional deployment for web integration      │
└─────────────────────────────────────────────────┘

Design Principles:

  • CLI and API are parallel interfaces to the same Core Engine
  • GUI calls CLI via IPC for offline operation (no server required)
  • Core is deterministic and thoroughly tested (113 passing tests)
  • Modular architecture allows using components independently

See Architecture Documentation for detailed design rationale.

Axis Configuration

FiberPath supports two axis mapping formats:

XAB (Rotational) - Default:

  • X = Carriage position (linear, mm)
  • A = Mandrel rotation (rotational, degrees)
  • B = Delivery head rotation (rotational, degrees)

XYZ (Legacy):

  • X = Carriage position (linear, mm)
  • Y = Mandrel rotation (treated as linear, degrees)
  • Z = Delivery head rotation (treated as linear, degrees)

Use --axis-format xab (default) for new projects. The XYZ format maintains compatibility with legacy systems like Cyclone.

Documentation

Comprehensive documentation is available at cameronbrooks11.github.io/fiberpath:

Contributing

Contributions are welcome! FiberPath is actively developed and maintained.

Before contributing:

  1. Read the Contributing Guide
  2. Check existing issues and pull requests
  3. Open an issue to discuss major changes before implementing

Development setup:

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

cd fiberpath_gui
npm install
npm test

Code standards:

  • Python code follows PEP 8 (enforced by CI)
  • TypeScript/React follows project ESLint configuration
  • All new features require tests and documentation
  • Commit messages use conventional commits format

See Development Documentation for tooling, CI/CD, and release process details.

License

FiberPath is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

This means:

  • ✅ Free to use, modify, and distribute
  • ✅ Source code must be made available to users
  • ⚠️ Network use (e.g., hosting as a service) triggers copyleft

See LICENSE for full terms.


Questions? Open an issue or check the documentation.

Found a bug? Report it on GitHub Issues with steps to reproduce.

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

fiberpath-0.5.1.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

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

fiberpath-0.5.1-py3-none-any.whl (70.1 kB view details)

Uploaded Python 3

File details

Details for the file fiberpath-0.5.1.tar.gz.

File metadata

  • Download URL: fiberpath-0.5.1.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fiberpath-0.5.1.tar.gz
Algorithm Hash digest
SHA256 2c4e1a92481b485896d455041ddfed94d24c81bb4bdb5879378c2490c395a920
MD5 6bde7fc0c1b4ca1a7ef35dc1863428ff
BLAKE2b-256 a9159699b1ab301ec7bef7a01ebd2b22576d3f0c6eef910fe60997eb5ae512fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiberpath-0.5.1.tar.gz:

Publisher: release.yml on CameronBrooks11/fiberpath

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fiberpath-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: fiberpath-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 70.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fiberpath-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f2e1744146705e5e495767c47ca4cd3b938f99970d7000c0d9a371e01cea2cbd
MD5 4804e76e5b8710120cc7e46d322b6f01
BLAKE2b-256 643687aa5151ded45cc3077d1581291776837fbf462592190e6c39a4c29da9f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiberpath-0.5.1-py3-none-any.whl:

Publisher: release.yml on CameronBrooks11/fiberpath

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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