Peek, NadyaTran O'Leary, Jasper2024-09-092024-09-092024-09-092024TranOLeary_washington_0250E_26692.pdfhttps://hdl.handle.net/1773/51868Thesis (Ph.D.)--University of Washington, 2024While digital fabrication technology—using computer-controlled machines to create physical artifacts—has existed for over half a century in factories and machine shops, desktop-class tools have made it accessible to new practitioners across diverse domains. Pioneering practitioners in science, art, and engineering are developing experimental, domain-specific manufacturing workflows that differ from conventional fabrication practice. However, today’s software tools prioritize conventional workflows and delay the development of new ones. Despite the “digital” in digital fabrication, experimental fabricators do not benefit from the affordances of writing code, namely, the ability to reason about, experiment with, and reproduce the work of others. In this dissertation, I argue for elevating the subordinate status of code in digital fabrication by framing novel workflow development as full-fledged programming, not just as program execution. In this physical-digital programming paradigm, the physical contingencies of machines and materials are represented in a programming language, not left unwritten. To prototype physical-digital reasoning, I invented a machine grammar that lets fabricators denote domain-specific rules governing machine choice and usage. For visual reasoning, I developed a method for generating application-specific visualizations of a given machine toolpath. To encourage experimentation and testing, I built a programming environment where fabricators develop entire manufacturing workflows as computational notebook programs. Finally, to aid in the reproducibility of workflows-as-programs, I added a library that lets fabricators interface with existing computer-aided design and manufacturing software, denote manual steps via an augmented reality machine interface, and write assertions in code for quality control. Though physical-digital programming primarily aims to help a nascent base of experimental fabricators, it also carries implications for what programming itself entails and for society’s relationship with machines. By placing direct engagement of physical automation tasks in the same medium as programmatic control, I take a first step beyond today’s dominant computational paradigm, where data come from elsewhere, to a more sustainable computing future, where care of machines, materials, and fabricators is integral to programming itself.application/pdfen-USCC BYdigital fabricationhuman-computer interactionprogramming languagesComputer scienceComputer science and engineeringPhysical-Digital ProgrammingThesis