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.0-cp314-cp314-win_amd64.whl (54.2 MB view details)

Uploaded CPython 3.14Windows x86-64

openvcad-3.0.0-cp314-cp314-manylinux_2_39_x86_64.whl (68.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ x86-64

openvcad-3.0.0-cp314-cp314-macosx_26_0_arm64.whl (85.4 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

openvcad-3.0.0-cp313-cp313-win_amd64.whl (52.8 MB view details)

Uploaded CPython 3.13Windows x86-64

openvcad-3.0.0-cp313-cp313-manylinux_2_39_x86_64.whl (68.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

openvcad-3.0.0-cp313-cp313-macosx_26_0_arm64.whl (85.4 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

openvcad-3.0.0-cp312-cp312-win_amd64.whl (52.8 MB view details)

Uploaded CPython 3.12Windows x86-64

openvcad-3.0.0-cp312-cp312-manylinux_2_39_x86_64.whl (68.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

openvcad-3.0.0-cp312-cp312-macosx_26_0_arm64.whl (85.4 MB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

File details

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

File metadata

  • Download URL: openvcad-3.0.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 54.2 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.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cf29b0b69822ab3dfb5cc1ed35023544c70ae62502593ca19dcf5e8accc6249c
MD5 553dc707ce14dd58cd7226b16f0da28f
BLAKE2b-256 02ea1a653af60b2e6c2d1d0cc45df78b02fefa0e876c53b7edd65d30229bdc11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.0-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 6ad4dd574950116465ffa95d83f9614f8d9aeb7e09f139c8e6c6845f3438bc8d
MD5 f5ddb73289e21b6cd9f40488af4e6ab3
BLAKE2b-256 7bc4c14be7a42745db0a1aeb8e22f00a44308866bae71df04a5805342f37ada1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.0-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 89f4ff4135b698585185f360d0b499ea9fa8db93293e554ff90c6494594195ed
MD5 bacec2f62ee03f516a92016569d74420
BLAKE2b-256 bc8aacecba2172eb32c8587a458dd6c74ad7c05d0866a7f95b2bb4387b171145

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openvcad-3.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 52.8 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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b5f3448fb4237dd3c1f6ab609a4371137e914ce1ec2af09486b9be65c54bb5ac
MD5 a5a99ab101d5aab5359f51be60e757ce
BLAKE2b-256 4703d00e4e236f230dd8ebe953698cbd6760db820139389a31a32941700dca3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.0-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 8f376f33a2ab9feba03995352780421675ca73e89f5d2c8d2477e13d161cedae
MD5 b95fee229011a56dd9129e306c494de2
BLAKE2b-256 d2af2f4ef4f6ce4840657559299a2872519e7e915c55ce43f84d9afcbc150dc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.0-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 fb8b3a0f1523694c56023470e59f0973757312f18f2f57ffeaa5fd1d577fad25
MD5 ccbe42b2fbab54ec97f92d16e02b5002
BLAKE2b-256 8f264e51daae874067ffc576ae9a5c57e75d64903db1baf55dc1657f73e849ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openvcad-3.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 52.8 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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f2e122827c842156876cc1735329f9f371011d5a6a6f3527f49b77731dc35344
MD5 974c5a49d065c7fbeebe38f8996de320
BLAKE2b-256 b1afe0cb7b0e1d9eebf402a6e7d2ab7aa355626ca5ed5dcc23cf05ff6d121e3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.0-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 21f347e631f2e57e951935b27273f0324b8a831a2f06fc562678c65379cf0797
MD5 72cea46c93b4e63075ec92ba5fe43865
BLAKE2b-256 df7d83663ac0af10785dca92f08947f0c62d35bb70c2dc12774c401be1550830

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.0-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 8d2de9e9afe9db42eb84f1ffdbdacea7b4751b1af4c6035c6d6d6f48ac7af25d
MD5 6f86a3352c819ae5aca2ede14ca9e0a2
BLAKE2b-256 2f51c35213148e90e68253618a71337a07a06e3e293c92d36c9b24a3168ccb5d

See more details on using hashes here.

Release history Release notifications | RSS feed

3.0.2

9 files

3.0.1

9 files

This release

3.0.0 This release

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