|
1 | | - |
| 1 | +# OpenVCAD |
2 | 2 |
|
3 | | -DOI: [10.1016/j.addma.2023.103912](https://doi.org/10.1016/j.addma.2023.103912) |
| 3 | +> **Volumetric, Multi-Material, Programmable CAD for Additive Manufacturing** |
4 | 4 |
|
5 | | -A volumetric multi-material modeling language and compiler developed by the [Matter Assembly Computation Lab](https://www.matterassembly.org/) at the University of Colorado Boulder. OpenVCAD is an automatable volumetric design framework that can fully leverage multi-material fabrication. OpenVCAD provides a scriptable suite of constructive solid geometry and functional design methods that enable the representation of complex objects with hundreds of materials. OpenVCAD allows for full spatial control over the material composition of an object. Additionally, it provides functional grading and convolutional blending techniques to generate parts with dynamic mechanical characteristics. This research tool is intended to be used for the design and development of new meta-materials, digital allows, and compliant mechanisms. |
| 5 | + |
6 | 6 |
|
7 | | -# Documention |
8 | | -Please see the [wiki](https://github.com/MacCurdyLab/OpenVCAD-Public/wiki) for full documentation on how to use OpenVCAD. |
| 7 | +OpenVCAD is an open-source volumetric geometry compiler for the design and fabrication of **functionally graded, multi-material** objects. |
| 8 | +It brings advanced **implicit modeling** and **programmable parametric design** into the world of additive manufacturing, enabling designers to create objects with continuous material gradients, lattice structures, and simulation-informed material distributions. |
9 | 9 |
|
10 | | -## Gallery & Benchmarking |
11 | | - |
| 10 | +With OpenVCAD, you can: |
12 | 11 |
|
13 | | -a. shows a mesh node that is graded with two materials |
| 12 | +- Express geometry **and** multi-material composition using **implicit functions**. |
| 13 | +- Create complex gradients and digital alloys using **functional material nodes**. |
| 14 | +- Design **algorithmically** in Python using `pyvcad` — integrate with NumPy, SciPy, optimization, or simulation workflows. |
| 15 | +- Compile directly for **inkjet, FFF, and other AM processes**, with export to slicing and simulation-ready formats. |
| 16 | +- Work in a GUI-based IDE — **OpenVCAD Studio** — for code editing, preview, and export. |
14 | 17 |
|
15 | | -b. shows a screwdriver that consists of a mesh node and graded with three materials |
| 18 | +--- |
16 | 19 |
|
17 | | -c. shows a soft actuator that consists of a functional geometry node and graded with three materials |
| 20 | +## 📚 Publications |
18 | 21 |
|
19 | | -d. shows a mug that is designed using multiple functional geometry nodes and boolean operations |
| 22 | +OpenVCAD is an active research project developed by the [Matter Assembly Computation Lab](https://www.colorado.edu/lab/matterassembly/) at CU Boulder. |
20 | 23 |
|
21 | | -> See [Gallery and Results page](https://github.com/MacCurdyLab/OpenVCAD-Public/wiki/Gallery) for more info. |
| 24 | +1. **Wade et al., 2024** — [OpenVCAD: An open source volumetric multi-material geometry compiler](https://matterassembly.org/assets/pdf/preprints/2024_OpenVCAD.pdf) |
| 25 | + *Introduces the original OpenVCAD framework for implicit, volumetric multi-material design, with a focus on inkjet 3D printing.* |
22 | 26 |
|
23 | | -# Download |
24 | | -## Pre-compiled OpenVCAD binaries |
25 | | -Pre-compiled binaries of the OpenVCAD compiler can be found in [releases](https://github.com/MacCurdyLab/OpenVCAD/releases). These include two versions: |
26 | | -1. IDE-like program with UI and OpenGL-based rendering preview |
27 | | -2. Standalone command-line application that compiles `.VCAD` scripts into PNG stacks, [OpenVDB](https://www.openvdb.org/) grids, or binary voxel files. |
| 27 | +2. **Wade et al., 2025** — [Implicit Toolpath Generation for Functionally Graded Additive Manufacturing via Implicit Modeling](https://arxiv.org/abs/2505.08093) *(preprint)* |
| 28 | + *Extends OpenVCAD to toolpath-based 3D printing systems with gradient-aware slicing methods for filament mixing and process parameter grading.* |
28 | 29 |
|
29 | | -# Contributing |
30 | | -We welcome contributions to OpenVCAD from the community! Below outlines the process for contributing to the project. |
| 30 | +--- |
31 | 31 |
|
32 | | -### Getting the Code/ Open Source Contributions |
33 | | -The OpenVCAD code is open-source under a [non-comercial license](https://github.com/MacCurdyLab/OpenVCAD-Public/blob/main/LICENSE). As such, we encourage contributions from the community. |
| 32 | +## 🛠 Installation |
| 33 | +OpenVCAD can be used in two main ways: |
34 | 34 |
|
35 | | -The code is hosted on a private GitHub repository that you can request access to by using this form: [https://forms.gle/MAjCmG66xZ6p1JcE9](https://forms.gle/MAjCmG66xZ6p1JcE9) |
| 35 | +### 1. **OpenVCAD Studio** (GUI IDE) |
| 36 | +> Best place to start |
| 37 | +- A standalone IDE for creating, previewing, and exporting designs with `pyvcad`. |
| 38 | +- Ships with `pyvcad` built-in — no separate Python install needed. |
| 39 | +- Available for **Windows** and **macOS (Apple Silicon)**. |
| 40 | +- Download the latest release from the [Releases page](https://github.com/MacCurdyLab/OpenVCAD-Public/releases). |
36 | 41 |
|
| 42 | +### 2. **pyvcad** (Python library) |
| 43 | +> For advanced users |
| 44 | +- Python bindings to the OpenVCAD C++ kernel. |
| 45 | +- Installable via PyPI: |
| 46 | + ```bash |
| 47 | + pip install OpenVCAD |
| 48 | + ``` |
| 49 | +- Best for algorithmic workflows, integration with simulation, or headless rendering. |
| 50 | +- Runs on Windows and macOS. |
| 51 | + |
| 52 | +--- |
| 53 | + |
| 54 | +## 📥 Getting the Code |
| 55 | + |
| 56 | +The OpenVCAD source code is open-source under a **non-commercial license**. |
| 57 | +You can request access to the private GitHub repository here: |
| 58 | + |
| 59 | +➡ **[Request Access Form](https://forms.gle/MAjCmG66xZ6p1JcE9)** |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +## 🖼 Gallery |
| 64 | + |
| 65 | +Here are a few examples of what OpenVCAD can produce: |
| 66 | + |
| 67 | +### Functionally graded lattice |
| 68 | + |
| 69 | +*Multi-material graded lattice structure made with soft, rigid, and non-curing liquid.* |
| 70 | + |
| 71 | +### Multi-material Stanford Bunny |
| 72 | + |
| 73 | +*(a) OpenVCAD software render of the multi-material lattice-filled Stanford Bunny; (b) physical artifact printed on a Stratasys J750 printer; and (c) close-up view detailing graded internal lattice structures. Strut color is a function of strut length. The bunny is comprised of 3,289 unique struts. * |
| 74 | + |
| 75 | +### Inkjet 3D Printed Medical Scan |
| 76 | + |
| 77 | +*Real world patient scan ata processed with OpenVCAD and printed on Inkjet 3D Printer* |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## 📄 License |
| 82 | + |
| 83 | +OpenVCAD is released under a **non-commercial open-source license**. |
| 84 | +See the [LICENSE](LICENSE) file for details. |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +## 🗣 Citing OpenVCAD |
| 89 | +If you use OpenVCAD in your research, please cite: |
| 90 | + |
| 91 | +```bibtex |
| 92 | +@article{wade2024openvcad, |
| 93 | + title={OpenVCAD: An open source volumetric multi-material geometry compiler}, |
| 94 | + author={Wade, Charles and Williams, Graham and Connelly, Sean and Kopec, Braden and MacCurdy, Robert}, |
| 95 | + journal={Additive Manufacturing}, |
| 96 | + volume={79}, |
| 97 | + pages={103912}, |
| 98 | + year={2024}, |
| 99 | + publisher={Elsevier} |
| 100 | +} |
| 101 | +``` |
| 102 | + |
| 103 | +```bibtex |
| 104 | +@article{wade2025gradedtoolpath, |
| 105 | + title={Implicit Toolpath Generation for Functionally Graded Additive Manufacturing via Gradient-Aware Slicing}, |
| 106 | + author={Wade, Charles and Beck, Devon and MacCurdy, Robert}, |
| 107 | + journal={arXiv preprint arXiv:2505.08093}, |
| 108 | + year={2025} |
| 109 | +} |
| 110 | +``` |
0 commit comments