OpenVCAD
Volumetric, Multi-Material, Programmable CAD for Additive Manufacturing
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.
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)
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.
Metadata
Release files for OpenVCAD 3.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| openvcad-3.1.0-cp314-cp314-win_amd64.whl | CPython 3.14 | CPython 3.14 | Windows x86-64 | Details |
| openvcad-3.1.0-cp314-cp314-manylinux_2_39_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.39+ x86-64 | Details |
| openvcad-3.1.0-cp314-cp314-macosx_26_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 26.0+ ARM64 | Details |
| openvcad-3.1.0-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
| openvcad-3.1.0-cp313-cp313-manylinux_2_39_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.39+ x86-64 | Details |
| openvcad-3.1.0-cp313-cp313-macosx_26_0_arm64.whl | CPython 3.13 | CPython 3.13 | macOS 26.0+ ARM64 | Details |
| openvcad-3.1.0-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| openvcad-3.1.0-cp312-cp312-manylinux_2_39_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.39+ x86-64 | Details |
| openvcad-3.1.0-cp312-cp312-macosx_26_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 26.0+ ARM64 | Details |
Total release size: 601.6 MB
Release files / openvcad-3.1.0-cp314-cp314-win_amd64.whl
| Download URL | openvcad-3.1.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 56.5 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0753712906e554f774c5888f3a9a57d71a9f83cbeda5e9b2eeeea73ea24d29e5
|
|
BLAKE2b-256 checksum How to use checksums |
95fcf474cf2c895de3b17624585ce9c44e9e66cd97edb621f8bbd03357a5a1d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openvcad-3.1.0-cp314-cp314-manylinux_2_39_x86_64.whl
| Download URL | openvcad-3.1.0-cp314-cp314-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 72.1 MB |
| Tags | CPython 3.14 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
5c6a183f1d0760e2094f1bfef6d3370a9e29bfaa129b640f3aa1599ef29f34f8
|
|
BLAKE2b-256 checksum How to use checksums |
139fba2c6e17ef098daca4afb91cb4956fe5f20bbe4c43d95012d6cd25092e6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openvcad-3.1.0-cp314-cp314-macosx_26_0_arm64.whl
| Download URL | openvcad-3.1.0-cp314-cp314-macosx_26_0_arm64.whl |
|---|---|
| Size | 72.8 MB |
| Tags | CPython 3.14 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f1a9bac6df46da5fce9d564e5d8a3c3bc28b3389fb732996908625781e3787c5
|
|
BLAKE2b-256 checksum How to use checksums |
64126d51538b7231ced8fdc8994a31fb8f43de91d441fc150bdc15e9bbf87459
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openvcad-3.1.0-cp313-cp313-win_amd64.whl
| Download URL | openvcad-3.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 55.1 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
78a1cf1e3004af449e7b579f68ff40376f98c2872e1208634f97b6b2f1cc6d16
|
|
BLAKE2b-256 checksum How to use checksums |
60d920ef7f155b2bfc8172545758c649440adddcb5398f5c2f5d4db21337b999
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openvcad-3.1.0-cp313-cp313-manylinux_2_39_x86_64.whl
| Download URL | openvcad-3.1.0-cp313-cp313-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 72.1 MB |
| Tags | CPython 3.13 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
a5359b6d55ce04fd339284e7e44d6d3e54984bb8ef832fb263cd0ef1bed8b2dd
|
|
BLAKE2b-256 checksum How to use checksums |
5d010b43f7f88c22b270117ccc5206c9b57416ed28b3940d144b41b594858be3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openvcad-3.1.0-cp313-cp313-macosx_26_0_arm64.whl
| Download URL | openvcad-3.1.0-cp313-cp313-macosx_26_0_arm64.whl |
|---|---|
| Size | 72.8 MB |
| Tags | CPython 3.13 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
028ec23fe441d8bf655d9ac10906f3bf5ceabaf80faef93f865c383a6a9b1f0a
|
|
BLAKE2b-256 checksum How to use checksums |
f5300f7a4c7183d0cf26f0c68249db2843cd6719cb31d616797a5ed5a6e044f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openvcad-3.1.0-cp312-cp312-win_amd64.whl
| Download URL | openvcad-3.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 55.1 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
531a35a6c67804d9048a7b087178f6b9154407abf499107de6fbfe1ac4c9569a
|
|
BLAKE2b-256 checksum How to use checksums |
46669ea523caeef5dd14069ae072bec4c92d9d47c6d1b58b8116ea77624e2572
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openvcad-3.1.0-cp312-cp312-manylinux_2_39_x86_64.whl
| Download URL | openvcad-3.1.0-cp312-cp312-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 72.1 MB |
| Tags | CPython 3.12 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
8b2ac9e22b7b7114da8979f280107b07ad6a87f2600e40db8353f9b4da360d90
|
|
BLAKE2b-256 checksum How to use checksums |
4f6472539897e565622838b9b35685d941cdb72deb44fcf7aa73446e166e4ff1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openvcad-3.1.0-cp312-cp312-macosx_26_0_arm64.whl
| Download URL | openvcad-3.1.0-cp312-cp312-macosx_26_0_arm64.whl |
|---|---|
| Size | 72.8 MB |
| Tags | CPython 3.12 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5ec89b7961900927b392832b1970439d36ae5c4890cfd42538bf5a274137c2d6
|
|
BLAKE2b-256 checksum How to use checksums |
360bd71263da97499d19d7e16bb910f4e4f0f367fd7639cd49331605bff9cf02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Security for OpenVCAD 3.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.