Musings from Carbon’s Engineers


By the Carbon Computational Geometry Team, July 20, 2018

Foam Lattice Banner.jpg

We are working on software that solves the problem of generating lattice designs that match user-defined mechanical responses while satisfying explicit design constraints.

Carbon’s lattice software relies on the advanced computational geometry and mechanics techniques to design, analyze and tune lattice structures. Given the input geometry and the desired mechanical response, the module generates lattices that adhere to the requirements through minimizing a prescribed cost function. Furthermore, the module analyzes the designed lattices to assess their manufacturability via Carbon’s manufacturing process, Digital Light Synthesis™ (DLS).


The software team at Carbon has developed nonlinear finite element (FE) code to model and predict the mechanical behavior of lattice structures and materials. The code is capable of meshing and analyzing complex geometric and material nonlinearities. The FE analyses are based on nonlinear beam, 2D, and 3D continuum mechanics models, with the ability to capture post-buckling, snapping, and contact within the structures.

We exploit geometric and materials nonlinearities to design structures with desired properties. Such a process for lattice structures and architected materials often includes tuning the design parameters to reach desired elastic, yield, hardness, impact, vibration, and other properties with an acceptable tolerance, while additional functional, geometrical, and performance limitations are respected. Starting from an initial guess, we model the mechanical response and evaluate its sensitivity to the design properties. In an iterative process, we gradually change the design parameters, aka geometric parameters, such as unit cell size and shape of the lattice, to fine-tune its properties. In case fine matching with the golden properties is required, gradient-based and stochastic optimization techniques are used in this process. We have also used our simulation technology to develop an exhaustive library of lattices and geometries with varying mechanical properties, which can be used to choose a reasonable initial design that minimizes the computational costs.

The above figure shows that by varying the geometric structure we can achieve widely different mechanical response (measure experimentally), from the same resin and the same volume of the CAD primitive.

The following sketch summarizes the software workflow:

The following example demonstrates how, given a load vs. compression (displacement) curve for an expected mechanical response, our software finds lattice parameters that match well within the simulation space as well as when the part is printed and measured on an Instron machine.

The following screenshots show the non-linear frame simulations:

Carbon is also working on combining multiple lattice patterns within a part to enable, for example, variable response across a single part.


As far as lattice design and part optimization is involved, computational geometry is front and center. Our tools are capable of generating conformal/periodic lattice geometries with optimal cell size and strut thickness. The volume lattice and surface lattice can be treated independently, and the surface may be covered with solid skin if needed. Behind the scenes, this involves polyhedral/polygonal space packing, voxel-based modeling, vector fields, coordinate mapping and all sorts of fun stuff. Volumetric discretization (i.e., polyhedral space packing) is the basis for our lattice generation process; each polyhedron acts as a cell that can populated with an appropriate beam structure. For example, we use an adaptively refined automatic tetrahedral mesh generation algorithm to generate a volume discretization, and we populate the lattice based on that tetrahedral mesh.