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 matching the vX.Y.Z format 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 matching
vX.Y.Zcreates 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 - If no version tags matching
vX.Y.Zare found in the repository, the build automatically falls back to a single-version Sphinx build instead of attempting the multi-version build
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.