{"title":"Machine-o-Matic: A Programming Environment for Prototyping Digital Fabrication Workflows","authors":"Jasper Tran O'Leary, Nadya Peek","doi":"10.1145/3332167.3356897","DOIUrl":null,"url":null,"abstract":"We propose a programming environment for prototyping workflows that consists of custom digital fabrication machines and user-defined interactions. At its core, Machine-o-Matic comprises a domain-specific programming language for defining custom CNC machines as aconfiguration of tools and moving stages connected together. Given a software defined machine configuration, the language compiles to firmware code that allows a user to control and test a physical machine immediately. The language includes constructs for users to define custom actions with the tool and to interface with input from sensors or a camera feed. To aid users in writing Machine-o-Matic programs, we include a drag and drop GUI for assembling, simulating, and experimenting with potential machine configurations before physically fabricating them. We present three proofs of concept to showcase the potential of our programming environment.","PeriodicalId":322598,"journal":{"name":"Adjunct Proceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology","volume":"92 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Adjunct Proceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3332167.3356897","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8
Abstract
We propose a programming environment for prototyping workflows that consists of custom digital fabrication machines and user-defined interactions. At its core, Machine-o-Matic comprises a domain-specific programming language for defining custom CNC machines as aconfiguration of tools and moving stages connected together. Given a software defined machine configuration, the language compiles to firmware code that allows a user to control and test a physical machine immediately. The language includes constructs for users to define custom actions with the tool and to interface with input from sensors or a camera feed. To aid users in writing Machine-o-Matic programs, we include a drag and drop GUI for assembling, simulating, and experimenting with potential machine configurations before physically fabricating them. We present three proofs of concept to showcase the potential of our programming environment.