Machine-o-Matic: A Programming Environment for Prototyping Digital Fabrication Workflows

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.

[1]  Hiroshi Ishii,et al.  xPrint: A Modularized Liquid Printer for Smart Materials Deposition , 2016, CHI.

[2]  Daniela Rus,et al.  An end-to-end system for designing mechanical structures for print-and-fold robots , 2014, 2014 IEEE International Conference on Robotics and Automation (ICRA).

[3]  Shaowen Bardzell,et al.  Reconstituting the Utopian Vision of Making: HCI After Technosolutionism , 2016, CHI.

[4]  Björn Hartmann,et al.  Direct and immediate drawing with CNC machines , 2017, SCF.

[5]  Ye Yuan,et al.  Computational abstractions for interactive design of robotic devices , 2017, 2017 IEEE International Conference on Robotics and Automation (ICRA).

[6]  Mark D. Gross,et al.  Interactive fabrication: new interfaces for digital fabrication , 2010, TEI.

[7]  Prabhat Kumar,et al.  FabCode: visual programming environment for digital fabrication , 2014, IDC.

[8]  Jeremy Warner,et al.  MatchSticks: Woodworking through Improvisational Digital Fabrication , 2018, CHI.

[9]  Viktor Kuncak,et al.  Bidirectional evaluation with direct manipulation , 2018, Proc. ACM Program. Lang..

[10]  Thijs Roumen,et al.  Kyub: A 3D Editor for Modeling Sturdy Laser-Cut Objects , 2019, CHI.

[11]  Hadas Kress-Gazit,et al.  Robot Creation from Functional Specifications , 2015, ISRR.

[12]  Wilmot Li,et al.  Creating works-like prototypes of mechanical objects , 2014, ACM Trans. Graph..

[13]  Denis Zorin,et al.  Interactive Modeling of Mechanical Objects , 2016, Comput. Graph. Forum.

[14]  Wei Zhao,et al.  Interactive robogami: An end-to-end system for design of robots with ground locomotion , 2017, Int. J. Robotics Res..

[15]  Steve Marschner,et al.  On-The-Fly Print: Incremental Printing While Modelling , 2016, CHI.

[16]  Daniela Rus,et al.  Integrated Codesign of Printable Robots , 2015 .

[17]  Shaowen Bardzell,et al.  Supporting Cultures of Making: Technology, Policy, Visions, and Myths , 2017, CHI.

[18]  William G. Griswold,et al.  Polymorphic Blocks: Formalism-Inspired UI for Structured Connectors , 2015, CHI.

[19]  Thijs Roumen,et al.  Mobile Fabrication , 2016, UIST.

[20]  Shaowen Bardzell,et al.  Feminist HCI: taking stock and outlining an agenda for design , 2010, CHI.

[21]  Ruta Desai,et al.  Assembly-aware Design of Printable Electromechanical Devices , 2018, UIST.

[22]  Takeo Igarashi,et al.  Converting 3D furniture models to fabricatable parts and connectors , 2011, ACM Trans. Graph..

[23]  Scott E. Hudson,et al.  Printing teddy bears: a technique for 3D printing of soft interactive objects , 2014, CHI.

[24]  Kris Luyten,et al.  JigFab: Computational Fabrication of Constraints to Facilitate Woodworking with Power Tools , 2019, CHI.

[25]  Ilan Ellison Moyer A gestalt framework for virtual machine control of automated tools , 2013 .

[26]  Lining Yao,et al.  Digital Fabrication of Soft Actuated Objects by Machine Knitting , 2019, CHI.

[27]  Graeme Stemp-Morlock,et al.  Personal fabrication , 2010, Commun. ACM.

[28]  Paolo Cignoni,et al.  MeshLab: an Open-Source Mesh Processing Tool , 2008, Eurographics Italian Chapter Conference.

[29]  Pedro Lopes,et al.  Interactive construction: interactive fabrication of functional mechanical devices , 2012, UIST.

[30]  Leah Buechley,et al.  Codeable objects: computational design and digital fabrication for novice programmers , 2013, CHI.

[31]  Dan Grossman,et al.  Functional programming for compiling and decompiling computer-aided design , 2018, Proc. ACM Program. Lang..

[32]  Neil Gershenfeld,et al.  Cardboard Machine Kit: Modules for the Rapid Prototyping of Rapid Prototyping Machines , 2017, CHI.