OpenVCAD

Charles Wade, Graham Williams, Sean Connelly, Braden Kopec, Robert MacCurdy
Matter Assembly Computation Lab | University of Colorado Boulder

Read the full publication

This research, published in Additive Manufacturing (DOI:10.1016/j.addma.2023.103912), introduces OpenVCAD, an open-source volumetric multi-material geometry compiler that bridges the gap between modern multi-material 3D printing capabilities and computer-aided design (CAD) tools. OpenVCAD offers a novel workflow for designing objects with complex material distributions, enabling applications in fields like lattices, meta-material, medical image printing, and robotics.


Highlights

  • Implicit Material Design: OpenVCAD enables volumetric, position-specific material distributions, overcoming the limitations of traditional boundary representation (b-rep) methods. Unlike existing methods, OpenVCAD does not rely on voxels to represent objects. This allows it to scale effectively for large-scale inkjet systems.
  • Scriptable Design: The compiler uses a scripting language to define hierarchical tree structures for geometry and material distributions, enabling high levels of customization and optimization. This facilitates both forward and reverse integration with finite element workflows.
  • Applications in Inkjet 3D Printing: Leverages the precision of inkjet 3D printers for creating objects with functionally graded materials and mechanical property gradients.

How OpenVCAD Works

OpenVCAD integrates a parametric modeling language with a compiler to articulate and generate volumetric designs. Its core workflow involves the following steps:

  1. Modeling: Designers use OpenVCAD’s scripting language to create models defined as a hierarchical tree structure of geometry and material nodes.
  2. Compilation: The model scripts are processed by the OpenVCAD compiler, which generates volumetric output formats.
  3. Export: The output can be exported to formats like PNG stacks for Inkjet 3D printing, or FEA meshes for simulation, allowing for seamless integration.

The hierarchical tree structure enables efficient and complex designs, supporting features like:

  • Material Transitions: Gradual transitions between different material properties within the same object.
  • Fully Implicit Representation: Both geometry and material can be represented implicitly, enabling OpenVCAD to scale to printing systems that require the definition of hundreds of billions of voxels.
  • Digital Alloying: Combining materials a low level for intricate compositions.
  • Blending: Blend (via convolution) across complex multi-material interfaces to create smooth gradations.
  • Image-Based Processing: Using image inputs for spatial material distributions (medical image processing).
OpenVCAD Workflow: Modeling, compiling, and exporting volumetric designs.

The OpenVCAD Modeling Language

The OpenVCAD modeling language enables efficient articulation of geometric forms and material configurations. Files adopt a node-centric structure resembling abstract syntax trees (ASTs) or constructive solid geometry (CSG). This allows designers to generate multi-material designs using minimal code.

OpenVCAD Modeling Language: Simplifying complex multi-material design through a hierarchical, script-based approach.

Supported Inputs in OpenVCAD

OpenVCAD is designed to handle a wide range of input types, enabling versatile workflows for complex multi-material designs. The following table summarizes the supported input formats:

Category Supported Inputs
Geometry - Meshes
  - .STEP CAD files
  - FEA Simulation Results
  - DICOM Medical Scans
  - Implicit Surfaces
  - Voxels (OpenVDB and NanoVDB)
Materials - Math expressions
  - Custom C++ or Python functions
  - Blending
  - DICOM Medical Scans
  - Voxels (OpenVDB and NanoVDB)

Supported Design Outputs in OpenVCAD

OpenVCAD provides a variety of output formats tailored for different workflows, ranging from 3D printing to simulation and rendering. The table below summarizes the supported design outputs:

Category Output Types
3D Printing - PNG stacks (suitable for inkjet systems)
Simulation Preparation - FEA Simulation Input Files with material assignments (compatible with ABAQUS)
Voxel-based Outputs - Voxel Grids (OpenVDB and NanoVDB)
Visualization - Rendering/Preview (supports both surface and volumetric representations)

Core Applications

Printed Multi-material Objects

OpenVCAD supports the creation of visually and mechanically sophisticated multi-material objects. Examples include:

Radial Gradient Gear: Smooth radial color transition highlighting precision in color grading.
Utah Teapot: A three-component gradient teapot showcasing intricate designs.
Gradient Screwdriver: Custom color gradients emphasizing functional aesthetics.
3D Printed Brain Model: Transforming scan data into detailed models for medical applications.

Multi-material Lattice Grading

OpenVCAD uniquely supports grading multi-material lattices, offering capabilities that extend beyond commercial tools. Two examples are highlighted below:

Lattice A: A BCC lattice where each unit cell is functionally graded with stiff (green) and soft (cyan) materials. The soft and compliant regions are located where the unit cells meet, demonstrating local functional grading.
Lattice B: Grading stiffness and hardness across the entire object, showcasing a global mechanical gradient.
Lattice B (continued): White material represents stiff regions, and cyan represents soft areas.

Triply Periodic Minimal Surfaces (TPMS)

OpenVCAD also supports advanced geometries like TPMS, enabling designs with complex functional gradients:

Graded Gyroid Airplane Wing: Featuring a gyroid structure with a gradient and size variations.
OpenVCAD Logo: TPMS structure with color gradients integrated in text mesh.

Medical Image Processing for Pre-Surgical Planning

A notable application of OpenVCAD lies in medical image processing, particularly for pre-surgical planning. Leveraging OpenVCAD’s capabilities, volumetric scan data (e.g., MRI or CT scans) can be transformed into detailed, multi-material 3D models. This enables the creation of realistic and highly accurate anatomical representations for surgical planning.

OpenVCAD processes DICOM image stacks, applies functional grading or material assignments, and exports the results as bitmap stacks ready for inkjet 3D printing. This workflow bridges the gap between raw medical imaging data and tangible 3D-printed models, offering enhanced visualization and planning capabilities for medical professionals.

3D-Printed Anatomical Model: Derived from MRI scan data and printed.

Try OpenVCAD

OpenVCAD is freely available for academic, research, and hobbyist use under a non-commercial license. Download OpenVCAD and explore its capabilities in transforming multi-material design.

If you are a commercial entity interested in using (or trying out) OpenVCAD, please contact Charles Wade (charles.wade@colorado.edu) for a demo and licensing information.

OpenVCAD Studio IDE

The easiest way to start with OpenVCAD is by using OpenVCAD Studio, an integrated development environment (IDE) that includes:

  • A built-in text editor for scripting designs.
  • A render preview window for immediate visualization of designs.
  • Export options for Inkjet 3D printing workflows.

Check out our getting started series on YouTube.

OpenVCAD Studio IDE: A user-friendly interface for scripting and visualizing designs.

Library Support and Open Source Access

OpenVCAD is also available as C++ and Python libraries for integration into existing projects and codebases. Please request Open Source access or contact us for more information.

Contact

Charles Wade at charles.wade@colorado.edu