Programming Language Tools and Techniques for Computational Fabrication

Loading...
Thumbnail Image

Authors

Nandi, Chandrakana

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Recent democratization of fabrication techniques has revolutionized manufacturing. Desktop versions of devices like 3D printers, laser cutters, and CNC mills are now available at affordable prices making them increasingly common among end-users, hobbyists, and non-experts. While the reduced hardware cost of manufacturing devices has created new opportunity for casual makers to innovate and explore, the corresponding software pipeline has not advanced as dramatically. Design tools, mesh editing software, and CAD frameworks are developed primarily for trained experts and thus pose a steep learning curve for beginners. Even with crowd-sourced solutions, working with pre-existing models requires substantial expertise. Together with the fact that the fabrication process (typically multi-stage) itself is slow and hard to debug, these design level challenges frequently lead to delayed results, failed prints, wasted resources, and frustration. This thesis focuses on some of these challenges by viewing the entire computational fabrication pipeline as a compiler. First, it provide formal semantics to commonly used representations for 3D modeling. This formal foundation aids the development of a decompiler that automatically reverse engineers high-level computer-aided designs from low-level representations by recovering latent structure. An equality saturation based second decompilation phase discovers even high-level representations using dynamic rewrites and inverse transformations. A second application of dynamic rewrites in the domain of carpentry shows wider applicability of this approach for developing optimizing compilers for different kinds of fabrication techniques. Both these equality saturation based approaches require manually writing the rewrites which itself is tedious and error-prone. A novel framework for automatically inferring rewrites shows how the entire pipeline can be automated, and be applied to more traditional compilers.

Description

Thesis (Ph.D.)--University of Washington, 2021

Citation

DOI