Metadata-Version: 2.3
Name: pymfcad
Version: 0.1.4
Summary: Python package for designing and slicing custom microfluidic devices.
Keywords: microfluidics,3d printing,slicing,computational geometry
Author: Dallin Miner, Greg Nordin
Author-email: Dallin Miner <keyofd.miner@gmail.com>, Greg Nordin <nordin@byu.edu>
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Dist: freetype-py>=2.5.1
Requires-Dist: flask>=3.0.0
Requires-Dist: manifold3d>=3.3.2
Requires-Dist: numba>=0.63.1
Requires-Dist: numpy>=2.2.6
Requires-Dist: opencv-python>=4.12.0.88
Requires-Dist: pillow>=12.1.0
Requires-Dist: rtree>=1.4.1
Requires-Dist: scipy>=1.15.3
Requires-Dist: shapely>=2.1.2
Requires-Dist: trimesh>=4.11.0
Requires-Dist: networkx>=3.4.2
Requires-Dist: black>=24.9.1 ; extra == 'dev'
Requires-Dist: pytest>=8.3.3 ; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0 ; extra == 'dev'
Requires-Dist: matplotlib>=3.10.8 ; extra == 'dev'
Requires-Dist: mkdocs>=1.6.1 ; extra == 'dev'
Requires-Dist: pymdown-extensions>=10.20 ; extra == 'dev'
Requires-Dist: mkdocstrings-python>=2.0.1 ; extra == 'dev'
Maintainer: Dallin Miner
Maintainer-email: Dallin Miner <keyofd.miner@gmail.com>
Requires-Python: >=3.10
Project-URL: repository, https://github.com/3D-Printing-for-Microfluidics/pymfcad
Project-URL: documentation, https://pymfcad.readthedocs.io
Provides-Extra: dev
Description-Content-Type: text/markdown

# PyMFCAD

PyMFCAD is a Python package for rapid design and prototyping of 3D-printed microfluidic devices. It provides a component-based workflow for building reusable parts, assembling devices, routing connections, visualizing results, and generating printer-ready slices.

## Key features

- **Component-based design:** Build devices from reusable components and subcomponents.
- **Flexible geometry:** Create primitives, complex shapes, polychannels, and Bézier curves.
- **Pixel/layer precision:** Work at printer resolution for high-fidelity fabrication.
- **Automatic routing:** Connect ports with manual or fully automatic routing tools.
- **Visualization + rendering:** Preview designs in 3D before slicing.
- **Slicing support:** Export printer-ready slices (for custom printers only).
- **Extensible:** Add your own component libraries and reusable features.

## Typical workflow

1. Define components (bulk material + negative feature)
2. Assemble devices (position and combine components)
3. Route connections (ports + routing tools)
4. Visualize and render (inspect in 3D)
5. Slice and export (generate print files)

## Installation

```bash
pip install pymfcad
```

## Quick start

See the documentation for a full, step-by-step tutorial and API reference:

- Documentation: https://pymfcad.readthedocs.io
- Repository: https://github.com/3D-Printing-for-Microfluidics/pymfcad

## Who is this for?

PyMFCAD is ideal for researchers, engineers, and educators working on microfluidics, lab-on-a-chip devices, and rapid prototyping with high-resolution 3D printers.
