PL Tools and Techniques for 3D Printing

Our research aims at improving desktop-class manufacturing processes such as 3D-printing, with the goal to make these process more accurate, fast, reliable, and accessible to end-users. We focus on three major areas where 3D-printing can benefit from programming language tools: design synthesis, optimizing compilation, and runtime monitoring.

We have developed a system for compiling and decompiling CAD programs. Our tools are available as artifacts for ICFP 2018, and now you can try too. See the documentation page for specifics, check out the examples page for inspiration, or dive right in to the IDE and give it a go!


ICFP 2018
Chandrakana Nandi, James R. Wilcox, Pavel Panchekha, Taylor Blau, Dan Grossman, Zachary Tatlock. Functional Programming for Compiling and Decompiling Computer-Aided Design. pdf artifact
SNAPL 2017
Chandrakana Nandi, Anat Caspi, Dan Grossman, Zachary Tatlock. Programming Language Tools and Techniques for 3D Printing. pdf


Adobe Research Fellowship
November 21, 2018

Congratulations to Chandrakana for winning the 2019 Adobe Research Fellowship!

Grant Secured
June 11, 2018

Zach and Dan won an NSF grant. Congratulations!

ICFP 2018
May 18, 2018

Our paper on Functional Programming for Compiling and Decompiling CAD is accepted to ICFP 2018!