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.
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
|