Metadata-Version: 2.2
Name: OpenVCAD
Version: 2.3.6
Summary: Python bindings for OpenVCAD (pyvcad, pyvcad_compilers, pyvcad_rendering)
Keywords: 3D printing,CAD,multi-material,volumetric,CSG,geometry,3D,functionaly graded materials
Author-Email: Charles Wade <charles.wade@colorado.edu>, Robert MacCurdy <maccurdy@colorado.edu>
License: Copyright © 2025 The Regents of the University of Colorado, a body corporate.
         All Rights Reserved. Contact charles.wade@colorado.edu with any questions or
         comments.
         -------------------------------------------------------------------------------
         
         The Program is the property of The Regents of the University of Colorado, a
         body corporate, (CU or the University). CU hereby reserves all rights in the
         Program (defined below) not expressly granted herein. In addition to being
         subject to copyright protection, the use of this Program is covered by a
         pending patent application. Any use, copy, publication, distribution, display,
         modification, or transmission of the Program in whole or in part in any form or
         by any means outside the rights expressly granted in this Notice without the
         written permission of CU is strictly prohibited.
         
         The Program consists of the computer software code known as “Systems and
         Processes for Volumetric Multi-Material 3D Models” also known as “OpenVCAD”,
         “VCAD” or similar, and the associated documentation, for making volumetric
         multi-material 3D models.
         
         You (the user or recipient of the Program) desire to acquire a license to use
         the Program in accordance with the terms set forth in this Notice.
         
         BY DOWNLOADING AND USING THIS PROGRAM, IN WHOLE OR IN PART, YOU AGREE TO COMPLY
         WITH AND BE BOUND BY ALL TERMS IN THIS NOTICE. THE TERMS OF THIS NOTICE ALSO
         APPLY TO ALL YOUR CONTRIBUTIONS (DEFINED BELOW). IN RETURN, THE UNIVERSITY
         AGREES THAT IT SHALL NOT USE YOUR CONTRIBUTIONS IN A WAY THAT THE UNIVERSITY
         BELIEVES IS CONTRARY TO THE PUBLIC BENEFIT. IF YOU DO NOT WISH TO COMPLY WITH
         OR BE BOUND WITH THE TERMS OF THIS NOTICE YOU MUST IMMEDIATELY CEASE USE OF THE
         PROGRAM AND DELETE ALL COPIES OR MODIFICATIONS OF THE PROGRAM COMPLETELY. If
         You agree to these terms on behalf of an organization, You hereby represent to
         CU that You are authorized to accept these terms on its behalf.
         
         1.	Definitions:
             “Contributor” means the copyright owner or legal entity authorized by the
             copyright owner of any Contribution (defined below) submitted to the
             University. For legal entities, the entity making a Contribution and all
             other entities that control, are controlled by, or are under common control
             with that entity are considered to be a single Contributor. For the
             purposes of this definition, "control" means (i) the power, direct or
             indirect, to cause the direction or management of such entity, whether by
             contract or otherwise, or (ii) ownership of fifty percent (50%) or more of
             the outstanding shares, or (iii) beneficial ownership of such entity.
         
             “Contribution” means any original work of authorship, including any
             modifications or additions to the Program, that is intentionally submitted
             to the University for inclusion in, or documentation of, the Program. For
             the purposes of this definition, “submitted” means any form of electronic,
             verbal, or written communication sent to the University or its
             representatives, including but not limited to communication on electronic
             mailing lists, source code control systems, and issue tracking systems that
             are managed by, or on behalf of, the University for the purpose of
             discussing and improving the Program, but excluding communication that is
             conspicuously marked and designated in writing as “Not a Contribution”.
         
         2.	Grant of Copyright License for the Program: Subject to the terms and
             conditions of this Notice, CU hereby grants to You a non-exclusive license
             under CU’s copyright in the Program to use the Program for Your own
             noncommercial academic or personal research.
         
         3.	Grant of Patent License for the Program: Subject to the terms and
             conditions of this Notice, CU hereby grants to You a non-exclusive license
             under CU’s patent rights covering the Program to make, have made, use
             import, and otherwise transfer the Program to Your collaborators for Your
             own noncommercial academic or personal research, provided that the
             foregoing patent license is granted under only those patent claims that are
             necessarily infringed by Your Contribution(s). . If You institute patent
             litigation against any third party (including a cross-claim or counterclaim
             in a lawsuit) alleging that the Program or a Contribution incorporated
             within the Program constitutes direct or contributory patent infringement,
             then any patent licenses granted to You under this Notice for the Program
             and Your Contributions shall terminate as of the date such litigation is
             filed.
         
         4.	Terms of Use of the Program. You may only use this Program for Your
             noncommercial research and development efforts on behalf of a nonprofit
             organization, or noncommercial research within and on behalf of a nonprofit
             organization, or your own personal noncommercial activities. You may make
             derivative works or modifications to the Programs, but only for Your
             noncommercial research and development efforts within or on behalf of a
             nonprofit academic or research organization, or your own personal
             noncommercial activities. You may not remove or modify the copyright,
             trademarks, or other proprietary notices and disclaimers as they appear in
             the Program. You may distribute or publish the Program or any derivative
             works of the Program made by You, provided that You must limit any further
             use of the Program or derivative works to only noncommercial research and
             development on behalf of a nonprofit academic or research organization, or
             personal noncommercial activities. You shall not use the Program, any
             portion thereof or any derivative works of the Program for any commercial
             purposes. Commercial purposes for the purpose of this Notice include, but
             are not limited to, providing services for others, distributing larger
             programs that contain this Program and exchanging this Program or
             derivative works of the Program in any manner for any form of compensation,
             in-kind or otherwise. To the extent that You publish any results from the
             use of the Program or derivative works of the Program, You must properly
             acknowledge the Program as developed by the Matter Assembly Computation Lab
             at the University of Colorado Boulder, and cite the published reference(s).
             The recommended reference citation(s) for the Program is/are provided in
             the Program documentation. This Notice is limited to the rights of The
             Regents of the University of Colorado in the Program and does not include
             any rights to other intellectual property. Your rights under this Notice
             will terminate immediately and automatically if You fail to comply with any
             of the terms and conditions of this Notice. Immediately upon termination,
             You must cease all use of the Program and any derivative works of the
             Program, destroy all copies of the Program and any derivative works of the
             Program in Your possession or control. Termination of this Notice will not
             limit any of CU’s rights or remedies at law or in equity. You acknowledge
             that the Program is subject to U.S. export jurisdiction. You agree to
             comply with all applicable international and national laws that apply to
             the Program, including the U.S. Export Administration Regulations, as well
             as end-user, end-use, and destination restrictions issued by U.S. and other
             governments. The Program is distributed “as-is”, and CU has no obligation
             to provide any maintenance, updates, additional documentation or services.
         
         5.	Grant of Copyright License to Your Contributions. By submitting
             Contributions to CU, Contributor grants to CU a non-exclusive, royalty free
             license under Contributor’s copyright in the Contribution to use, reproduce,
             modify, distribute, transmit, create derivative works from, publicly display
             and publicly perform the Contribution for any purpose. CU may, in its sole
             discretion, include your Contribution when licensing the Program under these or
             any other license terms. To the extent that CU distributes or publishes a
             Contribution or incorporates the Contribution into the Program, CU agrees to
             give appropriate attribution to Contributor as prescribed by Contributor.
             However, nothing in this Notice obligates CU to incorporate any Contribution
             into the Program, and CU may elect not to publish or distribute a Contribution
             in its sole discretion.
         
         6.	With respect to any of Your Contributions, You represent that you are legally
             entitled to grant the above license to such Contributions. You represent that
             each of Your Contributions is Your original creation (see Section 8 for
             submissions on behalf of others). You represent that Your Contribution
             submissions include complete details of any third-party license or other
             restriction (including, but not limited to, related patents and trademarks)
             of which You are aware and which are associated with any part of Your
             Contributions. You represent and warrant that You will not submit any
             materials to University that You know or believe to have components that
             are malicious or harmful. You represent that, with regard to all
             representations in Section 6, You will perform a reasonable amount of due
             diligence in order to be properly informed of third party licenses,
             infringing materials or harmful content associated with any part of Your
             Contribution.
         
         7.	You are not expected to provide support for Your Contributions, except to
             the extent You desire to provide support. You may provide support for free,
             for a fee, or not at all.
         
         8.	Should You wish to submit work that is not Your original creation, You may
             submit it to the University separately from any Contribution, identifying
             the complete details of its source and of any license or other restriction
             (including, but not limited to, related patents, trademarks, and license
             agreements) of which You are personally aware, and conspicuously marking
             the work as "Submitted on behalf of a third-party: [named here]".
         
         9.	You agree to notify the University of any facts or circumstances of which
             You become aware that would make Your representations inaccurate in any
             respect. You agree to notify the University of any administrative or court
             proceeding that involve Your Contributions.
         
         10.	CU DISCLAIMS, ANY AND ALL OTHER WARRANTIES, CONDITIONS, OR REPRESENTATIONS
             (EXPRESS OR IMPLIED, ORAL OR WRITTEN), WITH RESPECT TO THE PROGRAM OR ANY
             PART THEREOF, INCLUDING ANY AND ALL IMPLIED WARRANTIES OR CONDITIONS OF
             TITLE, NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS OR SUITABILITY FOR ANY
             PURPOSE (WHETHER OR NOT CU KNOWS, HAS REASON TO KNOW, HAS BEEN ADVISED, OR
             IS OTHERWISE IN FACT AWARE OF ANY SUCH PURPOSE), WHETHER ALLEGED TO ARISE
             BY LAW, BY REASON OF CUSTOM OR USAGE IN THE TRADE, OR BY COURSE OF DEALING.
         
         11.	You are solely responsible for any and all losses or expenses arising from
             or otherwise in respect of Your use of the Program or derivative works of
             the Program.
         
         12.	You agree that this Notice, will be governed and construed in accordance
             with the laws of the State of Colorado.
         
         13.	You acknowledge and agree that nothing contained in this Notice shall be
             construed as an express or implied waiver of any immunity of the
             University, either sovereign or governmental under the Colorado
             Governmental Immunity Act.
         
         14.	You agree that Your Contribution shall not contain any item(s) that are
             either export-controlled under the International Traffic in Arms
             Regulations, or that appear on the Commerce Control List (except as
             EAR99) of the Export Administration Regulations.
         
         15.	The invalidity, illegality, or unenforceability of any one or more phrases,
             sentences, clauses, or sections in this Notice does not affect the remaining
             portions of this Notice.
Project-URL: Homepage, https://matterassembly.org/openvcad
Project-URL: Documentation, https://matterassembly.org/OpenVCAD-Docs/
Requires-Python: >=3.11
Requires-Dist: pyvcad-rendering>=1.0.7
Description-Content-Type: text/markdown

# OpenVCAD

[![PyPI version](https://img.shields.io/pypi/v/OpenVCAD)](https://pypi.org/project/OpenVCAD/)
[![License](https://img.shields.io/badge/license-non--commercial-blue)](LICENSE)

> **Volumetric, Multi-Material, Programmable CAD for Additive Manufacturing**

![Hero Image](images/hero.png)

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

```bash
pip install OpenVCAD
```

```python
import pyvcad as pv
import pyvcad_rendering as viz

materials = pv.default_materials
root = pv.RectPrism(pv.Vec3(0,0,0), pv.Vec3(10,10,10), materials.id("red"))
viz.Render(root, materials)
```

## Resources

| | |
|---|---|
| **Documentation** | [matterassembly.org/OpenVCAD-Docs](https://matterassembly.org/OpenVCAD-Docs/) |
| **Project Website** | [matterassembly.org/openvcad](https://matterassembly.org/openvcad) |
| **Examples** | [`examples/`](examples/) in this repo |
| **Bug Reports** | [Issues](https://github.com/MacCurdyLab/OpenVCAD-Public/issues) |
| **Community** | [Discussions](https://github.com/MacCurdyLab/OpenVCAD-Public/discussions) |
| **Source Code Access** | [Request Form](https://forms.gle/MAjCmG66xZ6p1JcE9) |

## Examples

Clone this repo to get runnable example scripts:

```bash
git clone https://github.com/MacCurdyLab/OpenVCAD-Public.git
cd OpenVCAD-Public/examples
```

See the [Getting Started](https://matterassembly.org/OpenVCAD-Docs/v2/getting-started/) tutorial in the documentation for a walkthrough.

## License

OpenVCAD is released under a **non-commercial open-source license**.
See the [LICENSE](LICENSE) file for details.

## Citing OpenVCAD

If you use OpenVCAD in your research, please cite:

```bibtex
@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}
}
```

```bibtex
@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},
}
```

```bibtex
@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](https://matterassembly.org/OpenVCAD-Docs/v2/papers/) for additional citations.
