Moldflow API is a Python wrapper library for the Synergy API, designed to simplify interactions with Autodesk Moldflow Synergy. This library provides a clean, pythonic interface to Moldflow's simulation capabilities, making it easier to integrate Moldflow functionality into your Python applications.
Before you begin, ensure you have:
- Windows 10/11
- Python 3.10.x - 3.14.x
- Autodesk Moldflow Synergy 2026.0.1 or later
python -m pip install moldflowfrom moldflow import Synergy
# Initialize the API
synergy = Synergy()
# Example: Get version information
version = synergy.version
print(f"Moldflow Synergy version: {version}")See the full documentation for more in-depth examples.
git clone https://github.com/Autodesk/moldflow-api.gitcd moldflow-apipython -m pip install -r requirements.txt
pre-commit installpython run.py buildpython run.py build-docsThe documentation version switcher (switcher.json) is automatically generated from git tags during the build process. Only tagged versions are included by default to ensure all links work correctly.
Options:
--skip-build(-s): Skip building before generating docs--local(-l): Build documentation locally for a single version (skips multi-version build)--skip-switcher: Skip generating switcher.json (useful for offline builds or custom switcher configurations)--include-current: Include current working tree version from version.json in switcher (useful during development before tagging)--incremental: Only build versions that don't have existing output directories (speeds up development by skipping already-built versions)
Debug command: To manually generate switcher.json without building docs:
python run.py generate-switcherDevelopment workflow: When working on a version bump before tagging:
# Build docs including your current unreleased version
# This will:
# 1. Build all tagged versions via sphinx_multiversion
# 2. Build current working tree version via sphinx
# 3. Add current version to switcher.json as latest
python run.py build-docs --include-currentNote: By default, if version.json contains a version newer than the latest git tag, it will be validated but NOT added to the switcher (to prevent broken links). Use --include-current to build and include it during development, or create a git tag to include it permanently.
Fast development iteration:
# First build (builds all versions)
python run.py build-docs --include-current
# Subsequent builds (only rebuilds current version, skips existing tagged versions)
python run.py build-docs --include-current --incrementalHow --incremental works:
- Checks which version directories already exist in
docs/build/html/ - For missing tagged versions: checks out each tag, builds docs, then restores your branch
- For current version (with
--include-current): only builds if directory doesn't exist - Useful during development to avoid rebuilding all historical versions every time
The documentation can be accessed locally by serving the docs/build/html/ folder:
cd docs/build/html
python -m http.server 8000Then open http://localhost:8000 in your browser. The root automatically redirects to the latest version documentation.
Versioned Documentation:
- Each git tag creates a separate documentation version (e.g.,
/v26.0.5/) - A
/latest/directory points to the newest version - Root (
/) automatically redirects to/latest/ - Run
git fetch --tagsbefore building to ensure all version tags are available
python run.py formatOptions:
--check: Check the code formatting without making changes
python run.py lintOptions:
--skip-build(-s): Skip building before linting
python run.py test| Option | Alias | Description |
|---|---|---|
<tests>... |
- | Test files/directories path |
--marker |
-m |
Marker [unit, integration, core] |
--skip-build |
-s |
Skip building before testing |
--keep-files |
-k |
Don't remove the .coverage files after testing [for report generation] |
--unit |
- | Run Unit Tests |
--core |
- | Run Core Functionality Tests |
--integration |
- | Run Integration Tests |
--quiet |
q |
Simple test output |
| Flag Combination | Runs Unit | Runs Core | Runs Integration | Runs Custom Marker |
|---|---|---|---|---|
| Default (no flags) | ✅ | ✅ | ❌ | ❌ |
--unit |
✅ | ❌ | ❌ | ❌ |
--core |
❌ | ✅ | ❌ | ❌ |
--integration |
❌ | ❌ | ✅ | ❌ |
--unit --core |
✅ | ✅ | ❌ | ❌ |
--unit --integration |
✅ | ❌ | ✅ | ❌ |
--core --integration |
❌ | ✅ | ✅ | ❌ |
--unit --core --integration |
✅ | ✅ | ✅ | ❌ |
--all |
✅ | ✅ | ✅ | ❌ |
--marker foo |
❌ | ❌ | ❌ | ✅ (foo) |
--unit --marker bar |
✅ | ❌ | ❌ | ✅ (bar) |
--integration --marker baz |
❌ | ❌ | ✅ | ✅ (baz) |
python run.py test tests/api/unit_tests/test_unit_material_finder.pyFor detailed API documentation, please visit our online documentation.
Key modules include:
synergy: Main interface to Moldflow Synergystudy_doc: Study document managementmesh_editor: Mesh manipulation and analysismaterial_finder: Material database interactionsplot: Results visualization
We welcome contributions! Please see our Contributing Guide for details on how to contribute to this project. Here's a quick overview:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
python run.py test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
We use Semantic Versioning. For available versions, see the tags on this repository.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Documentation: Full documentation available online
- Issues: Report bugs and request features through GitHub Issues
- Security: For security issues, please see our Security Policy
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.