Skip to main content

OpenVCAD

PyPI version License

Volumetric, Multi-Material, Programmable CAD for Additive Manufacturing

Hero Image

OpenVCAD is an open-source volumetric geometry compiler for the design and fabrication of functionally graded, multi-material objects. It brings advanced implicit modeling and programmable parametric design into the world of additive manufacturing.

[!WARNING] OpenVCAD 3.0 Update We have recently moved to a non-backwards compatible version 3.0 that introduces attribute modeling. If you are migrating from an older version, please read the migration guide.

Quick Start

pip install OpenVCAD
import pyvcad as pv
import pyvcad_metamaterials as mm
import pyvcad_rendering as viz

# Define a 30x30x30 mm block
block = 30.0

# Create a cell map for a 3x3x3 lattice
cell_map = mm.rectangular_cell_map(
    (
        pv.Vec3(-block / 2.0, -block / 2.0, -block / 2.0),
        pv.Vec3(block / 2.0, block / 2.0, block / 2.0),
    ),
    cells=(3, 3, 3),
)

# Build a bcc strut lattice
root = mm.graph_lattice(cell_map, "bcc", beam_radius=1.0)

# Apply a modulus gradient in MPa from 10 MPa (soft) to 2000 MPa (stiff)
# mapped across the Z axis from -15 to +15.
modulus_expr = "10.0 + (z + 15.0) * (2000.0 - 10.0) / 30.0"
modulus = pv.FloatAttribute(modulus_expr)
root.set_attribute(pv.DefaultAttributes.MODULUS, modulus)

viz.Render(root)

Example Output

Resources

Documentation matterassembly.org/OpenVCAD-Docs
Project Website matterassembly.org/openvcad
Examples examples/ in this repo
Bug Reports Issues
Community Discussions
Source Code Access Request Form

Examples

Clone this repo to get runnable example scripts:

git clone https://github.com/MacCurdyLab/OpenVCAD-Public.git
cd OpenVCAD-Public/examples

See the Getting Started tutorial in the documentation for a walkthrough.

License

OpenVCAD is released under a non-commercial open-source license. See the LICENSE file for details.

Citing OpenVCAD

If you use OpenVCAD in your research, please cite:

@article{wade2024openvcad,
  title={OpenVCAD: An open source volumetric multi-material geometry compiler},
  author={Wade, Charles and Williams, Graham and Connelly, Sean and Kopec, Braden and MacCurdy, Robert},
  journal={Additive Manufacturing},
  volume={79},
  pages={103912},
  year={2024},
  publisher={Elsevier}
}
@article{wade2025toolpaths,
  title = {Implicit Toolpath Generation for Functionally Graded Additive Manufacturing via Gradient-Aware Slicing},
  author = {Wade, Charles and Beck, Devon and MacCurdy, Robert},
  journal = {Additive Manufacturing},
  year = {2025},
  doi = {https://doi.org/10.1016/j.addma.2025.104963},
}
@article{wade2025pyvcad,
  title = {Implicit Modeling for 3D-printed Multi-material Computational Object Design via Python},
  author = {Wade, Charles and Beck, Devon and MacCurdy, Robert},
  journal = {Proceedings of the 10th ACM Symposium on Computational Fabrication},
  year = {2025},
  doi = {https://doi.org/10.48550/arXiv.2509.15562},
}

See the full list of publications for additional citations.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

openvcad-3.0.1-cp314-cp314-win_amd64.whl (54.6 MB view details)

Uploaded CPython 3.14Windows x86-64

openvcad-3.0.1-cp314-cp314-manylinux_2_39_x86_64.whl (69.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ x86-64

openvcad-3.0.1-cp314-cp314-macosx_26_0_arm64.whl (85.6 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

openvcad-3.0.1-cp313-cp313-win_amd64.whl (53.2 MB view details)

Uploaded CPython 3.13Windows x86-64

openvcad-3.0.1-cp313-cp313-manylinux_2_39_x86_64.whl (69.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

openvcad-3.0.1-cp313-cp313-macosx_26_0_arm64.whl (85.6 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

openvcad-3.0.1-cp312-cp312-win_amd64.whl (53.2 MB view details)

Uploaded CPython 3.12Windows x86-64

openvcad-3.0.1-cp312-cp312-manylinux_2_39_x86_64.whl (69.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

openvcad-3.0.1-cp312-cp312-macosx_26_0_arm64.whl (85.6 MB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

File details

Details for the file openvcad-3.0.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: openvcad-3.0.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 54.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for openvcad-3.0.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 95d35cba53c61a5945d0f4d0c4305f1b15783f2f8f21988f335e625475a5045c
MD5 9a64a760cc01c264a96b6ce6587427d1
BLAKE2b-256 d893d0776463a2f4f5fb314669351dc2152c1afbf78d7fe368db8af9293c0e80

See more details on using hashes here.

File details

Details for the file openvcad-3.0.1-cp314-cp314-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for openvcad-3.0.1-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 cf27715b48710ae6b6176c38a9420a8c278615167868152139e1360cd45c089d
MD5 42e036759ac36c843befb49ae8b3ee99
BLAKE2b-256 3b40ff412ed4447518db9141dbe07dd0d80f1830f2b873378373cd901b5f3844

See more details on using hashes here.

File details

Details for the file openvcad-3.0.1-cp314-cp314-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for openvcad-3.0.1-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 6497372abc5f93fea1d243dd58e56886e52b9440668bf52a02017777a9d920b9
MD5 3ccc1931d343bdef3e7a044621dbf484
BLAKE2b-256 bbd160540e2ee02cad1bb152883a215db6e33407faee443ff47d5f7c11da08f3

See more details on using hashes here.

File details

Details for the file openvcad-3.0.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: openvcad-3.0.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 53.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for openvcad-3.0.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 15c1b3031791bfa0673d62fae5696e10ba99b84fd9fdd9b8dfa5673859f56b35
MD5 89f892ef807e348d20154b437b836c75
BLAKE2b-256 6441291b9e0b0ae1232b2401125162ad9cfd908f0502ea61568af1dc6f9c99c2

See more details on using hashes here.

File details

Details for the file openvcad-3.0.1-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for openvcad-3.0.1-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 8a982d7fdad3b8a1d7550a59f2bdca6a5529309f85f7a5e9d3d8127404197dcb
MD5 885decc144bfb9ee7631444711b4221b
BLAKE2b-256 8371f7b91d45bbc55f682f12104c57ed08fc0dd4f67fb8f53f6e0c056ad4771c

See more details on using hashes here.

File details

Details for the file openvcad-3.0.1-cp313-cp313-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for openvcad-3.0.1-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 c5ee4100f01aa16d0f48fa3199f620e077713f34b53a73d0c49fe5421e715bd0
MD5 5f4aed33d7265ed3b5a649b842f51c6b
BLAKE2b-256 110db31c7dcba81db7562fcd73d4cd69dc4e0ba15282a02ff7e6aa98cef2c49e

See more details on using hashes here.

File details

Details for the file openvcad-3.0.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: openvcad-3.0.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 53.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for openvcad-3.0.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 96ee09b487361968b7a4a4294d455e37e4ac4dcef9012488ee4f8733cc7e7558
MD5 dd56da241f0ce6c3364b6a3e1de729d4
BLAKE2b-256 7e418500b9f5f1f69ea33cdc943988454b10aa882fed26b0189044edf090dd2e

See more details on using hashes here.

File details

Details for the file openvcad-3.0.1-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for openvcad-3.0.1-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 8d74a1057ebd88657691f34da6b256a61c1206aec739b091e19291d40fdbee18
MD5 6429a7749742bfe1b8fad414708c1b17
BLAKE2b-256 1d2dcae5f9330a68a671c868c33d0ee600e3172b7a1c07c9f4997d55e517a4d2

See more details on using hashes here.

File details

Details for the file openvcad-3.0.1-cp312-cp312-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for openvcad-3.0.1-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 d60003836eb5cb7a1f8faeb0d47ce33901f8fc22cf481d50b00c652773a91bae
MD5 a6a83d329ae0f97f96febac3df941c1f
BLAKE2b-256 81fc249115dcf000c5ab16f621863667f72990780f210038845ae47b974173de

See more details on using hashes here.

Release history Release notifications | RSS feed

3.0.2

9 files

This release

3.0.1 This release

9 files

3.0.0

9 files

2.3.8

12 files

2.3.7

16 files

2.3.6

16 files

2.3.5

12 files

2.3.4

16 files

2.3.3

12 files

2.3.2

12 files

2.3.1

12 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page