Computed Axial Lithography: Computational Print Prediction
Working on the Computed Axial Lithography team (CAL) has been the most cutting-edge technology that I've been involved with. I've been following 3D printing for long enough to see several new technologies come out - HP's Multi Jet Fusion, Markforged's continuous fiber printing, Desktop Metal's hybrid inkjet-metal printing, and more - and CAL is just as exciting of an innovation, so it's surreal to be on the ground floor of a technology like this.
What is CAL?
CAL is a semi-volumetric 3D printing process. This means that parts can be printed exponentially faster than with traditional Vat Photopolymerization. A detailed explanation of CAL can be read in this paper. Essentially, the printing process takes place angle by angle rather than layer by layer, allowing for curing to take place in 3 dimensions from any given angle. This is why print times are so much faster with CAL - more resin is being exposed at any given time.
A: A visualization of the CAL printing process. B: An example projection. C: A 3D part forming in the print vial.
1: A visualization of the Radon transform algorithm.
2: An example of what an example projection of a cone vs. a cylinder. Since both 3D shapes are axisymmetric, the projections are the same from any angle. The cylinder has progressively less depth to cure in the part as the y-axis goes up, which is why the intensity of light decreases accordingly.
The fundamental model for this process is based around the Radon transform. Using it, the slicing algorithm creates a 2D image for each angle with higher intensity at points which contain more area of the part parallel to the projection. For example, printing a cylinder would require uniform intensity, but printing a cone would require lower intensity at the top of the cone than the bottom. The algorithm used is the inverse of that used for CAT scans: CAT scans take angle by angle images and convert them to point clouds, and CAL (essentially) takes a point cloud (from a .stl) and turns it into images.
All of the projections are summed up (superimposed) to create the final 3D part. CAL's unique process has the benefit of using a wider variety of materials (because there are no stresses on the part during printing, softer materials can be used) and printing much faster.
The start to finish slicing and printing procedure can be thought of as follows:
A .stl model is converted into DLP slice images.
The slices are used to generate a video using an inverted CAT scan algorithm. This video will be looped for the printing procedure.
A vial of photocurable resin is attached to the fixed-speed rotating stand. The speed of the stand needs to be exactly lined up with the video for the process to work.
The rotating stand is fixed to the machine and the print begins.
Using visual cues (change of refractive index of cured material), the user determines when the print is finished and stops the projections.
The lack of confidence in the last step brings about the need for some sort of computational prediction to determine the optimal print time.
Computational Print Prediction
Part of the algorithm creates this video - effectively, this shows what a typical layer-by-layer printing process would have to project in order to recreate the same doses throughout the part.
The angular slicing algorithm could benefit from further development, such as material kinetics and automatic print duration calculation. However, CAL is a long ways away from being an integrated commercial 3D printing solution. So the next best thing is to have an algorithm which takes the projections as an input and effectively simulates the printing process to the most ideal print completion time.
Currently, the algorithm creates a 3D dose matrix from the projection data. This dose matrix is first split into layers to create the graphic above. Then the range of doses is divided into 100 intervals and iterates through these values, creating a point cloud of all of the points with doses that exceed the threshold. So far, I have added a visualization of the extent of curing, by taking into account the amount which the dose exceeds the threshold. This creates images like those shown on the left below:
This figure is a section view of the algorithm run on a Gyroid - shown in 3D on the top right and as horizontal slices on the bottom right. This is an extremely difficult object for any printing process to create - making it a great test object. With such fine features, it's easy to begin overcuring the part, making fine-tuning print time very difficult. In this graphic, the blue regions have just passed the threshold and would be predicted to be cured while the red regions are more solidified. While watching printing, this pattern of curing is replicated: the red regions are the first to be visible.
The print prediction algorithm still has a long way to go and there are a lot of features which we would like to add:
Print time implementation. To implement this, we will need to redesign the thresholds to be based on projector intensity and time of exposure.
Material kinetics. The propagation of photopolymerization throughout the build volume is more extreme in the CAL printing process than in DLP printing processes, where only a single layer is exposed to light at any given time. Using the true material kinetics of CAL resins would be extremely challenging, so my current plan is to use a simplified model and a DOE to fine-tune parameters of the model.
True intensity. The Radon transform used in the slicing algorithm assumes that intensity along a path stays consistent. Ideally, the program would take into account absorption and the inverse-square law in order to compensate for intensity. To implement this, I plan on creating an adjusted radon transform and inverse radon transform algorithm which uses a gradient running parallel to the projection. This will amplify the intensity of pixels further away from the projector, effectively compensating for intensity decay.
Lastly, I plan to integrate all of the systems of CAL into one program, like a true firmware-software solution. Ultimately, I hope to have a particle simulation of the printing process, similar to the FDM printing visualizations used in those slicers.
Machine Learning-Based Print Time Prediction
Another project I am working on with the CAL team is creating a tool for print time prediction - a problem that had been crippling CAL research since the start. With such a complicated method of exposing the resin, there was no clear computational method to predict print times. We could only use visual cues to guess when a print was done. The model for strict simulation of light exposure and photopolymerization diffusion is still in progress, and likely not practical as a real-time solution for prediction in its current state. However, I plan to train a genetic algorithm to predict print times. The idea is to plug various parameters from the ‘slicing’ algorithm into a polynomial with coefficients and powers determined by the genetic algorithm and use the difference in predicted print time and actual print time as a cost function. Unfortunately, creating a comprehensive version of this model would take hundreds of prints - testing for a variety of resins, vial sizes, geometry orientations, etc. I plan on using this method as a proof of concept - recording the print times and slicing parameters for ~10 geometries to generate the 'print prediction polynomial' which will be tested to predict print times for several new geometries. Much of the leg work for this research has been finished and I will be testing the effectiveness of this method in the Spring 2020 semester.