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

Uploaded CPython 3.14Windows x86-64

openvcad-3.0.2-cp314-cp314-manylinux_2_39_x86_64.whl (72.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ x86-64

openvcad-3.0.2-cp314-cp314-macosx_26_0_arm64.whl (72.7 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

openvcad-3.0.2-cp313-cp313-win_amd64.whl (55.0 MB view details)

Uploaded CPython 3.13Windows x86-64

openvcad-3.0.2-cp313-cp313-manylinux_2_39_x86_64.whl (72.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

openvcad-3.0.2-cp313-cp313-macosx_26_0_arm64.whl (72.7 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

openvcad-3.0.2-cp312-cp312-win_amd64.whl (55.0 MB view details)

Uploaded CPython 3.12Windows x86-64

openvcad-3.0.2-cp312-cp312-manylinux_2_39_x86_64.whl (72.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

openvcad-3.0.2-cp312-cp312-macosx_26_0_arm64.whl (72.7 MB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

File details

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

File metadata

  • Download URL: openvcad-3.0.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 56.4 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 41d9f9b3276459342cba2e3f47338fd2b761075fe436001fdc8f3ea6926a63a5
MD5 e0e71443f08799de8f59f26cac03ccd4
BLAKE2b-256 03c2cb10a695056ecd7e3c447797e101a517ad68229b99b1d2e0341956a2f208

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.2-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 a97b786983b43f0e7ed9441fb78d842480243763e9ceef4961611e5ec704b2cc
MD5 fe5a4f8c237b1feaf6348f9c150bd8e5
BLAKE2b-256 95ecbc28591e228d49ed9826b24b37d8f039fe1f206330192ab3e9815bb7b3b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.2-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 06f282361cb1d59333d434094d4dc6132762e0440910f8a56abddbe383684a0b
MD5 c70266b80be86b6a0464373b86d98ae6
BLAKE2b-256 51640ea5fe268baa7d5949fb2d28bd25de85b319280cc62328fc335b04e20230

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openvcad-3.0.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 55.0 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 04441b70ba5ca5baf839ed4698890231925e7c2338f627c934ac9c4b95aee09e
MD5 8dbc3f792661abdf5fb831423fd819d4
BLAKE2b-256 01cd6249cec71f5b56dac51d466a3fb8195b61910cf9d2a6b742c7d984026ec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.2-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 5fce75a874d639ccdf9d0062c20cd8789b1fdf2badee2e033eb17f8916659bab
MD5 88031a9112a0e36082a6fcb89215b060
BLAKE2b-256 c56c940f659ca56e53bbeea5e18a343211b2f33b9118dcfd670f10aed452ff9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.2-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 7fe6df06cab62b0e51575ed3a26124a723df4d2fde50e4fa269be6c64734230e
MD5 35b5e0a89149c53c6376eff4cc950a95
BLAKE2b-256 e921c73f4f6179fa3c04aabb823137c4728a314cb1112b4475c6e7b78550e873

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openvcad-3.0.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 55.0 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9539de6982dcdda126393af23f6c1cc53dba5979cb74c29ba46a71b5236fce9d
MD5 02f67442d2bd1da3e1a716ea53883fe2
BLAKE2b-256 fe43db9985de480ecc6fc7e3838022dfe65a075cccd35fa0742fca623deb287b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.2-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 3caadebdbcf72782cf0b48427c9c3c97036a017aafed6ce1e7fb8abb792b7737
MD5 beedcfde638ae862c9175866830b83a8
BLAKE2b-256 fd4f1154c25d3c1776ef5ff0f32f5fb816faca85b31f7239e67582804184f85d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvcad-3.0.2-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 b8a63dcbbd8309d9273b665fc1ee321ea2ba7439b067d58331273fdb832ed6e7
MD5 bcd22b7099c55c5d365876a3e3c3ff45
BLAKE2b-256 066d73b16dfb618b158b16de92d9fe1ddb02c65cb92e26bd45d0032c34e26a5a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.0.2 This release

9 files

3.0.1

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