Programming Language Tools and Techniques for Computational Fabrication

dc.contributor.advisorGrossman, Dan DJG
dc.contributor.advisorTatlock, Zachary ZLT
dc.contributor.authorNandi, Chandrakana
dc.date.accessioned2021-10-29T16:20:06Z
dc.date.available2021-10-29T16:20:06Z
dc.date.issued2021-10-29
dc.date.submitted2021
dc.descriptionThesis (Ph.D.)--University of Washington, 2021
dc.description.abstractRecent 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.
dc.embargo.termsOpen Access
dc.format.mimetypeapplication/pdf
dc.identifier.otherNandi_washington_0250E_23423.pdf
dc.identifier.urihttp://hdl.handle.net/1773/47996
dc.language.isoen_US
dc.rightsCC BY
dc.subjectCAD/CAM
dc.subjectCompilers
dc.subjectFormal Semantics
dc.subjectProgram Synthesis
dc.subjectProgramming Languages
dc.subjectRewrite Rules
dc.subjectComputer science
dc.subject.otherComputer science and engineering
dc.titleProgramming Language Tools and Techniques for Computational Fabrication
dc.typeThesis

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Nandi_washington_0250E_23423.pdf
Size:
19.45 MB
Format:
Adobe Portable Document Format