Programming Language Tools and Techniques for Computational Fabrication
Loading...
Date
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
