[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3486603.3486778acmconferencesArticle/Chapter ViewAbstractPublication PagesdsmConference Proceedingsconference-collections
research-article

PrintTalk: a constraint-based imperative DSL for 3D printing

Published: 18 October 2021 Publication History

Abstract

We present PrintTalk, a DSL to "program" 3D objects, called "gadgets". PrintTalk also features "topologies", which are predefined spacial arrangements of gadgets. Gadgets are composed by executing a gadget script (possibly consisting of subscripts) that 'draws' the gadget in the 3D scene. However, executing the script also returns a number of constraint variables. These variables can be constrained inside the gadget and can also be bound outside the gadget in order to constrain the produced gadgets after the facts. This is the essence of the gadget composition mechanism of PrintTalk.
PrintTalk is implemented in DrRacket. Running a PrintTalk program generates a file that is sent to the 3D printer. We validate PrintTalk qualitatively by comparing the code for complex gadgets with the code needed to print those gadgets in existing languages.

Supplementary Material

Auxiliary Presentation Video (splashws21dsmmain-p8-p-video.mp4)
We present PrintTalk, a DSL to "program" 3D objects, called "gadgets". PrintTalk also features "topologies", which are predefined spacial arrangements of gadgets. Gadgets are composed by executing a gadget script (possibly consisting of subscripts) that 'draws' the gadget in the 3D scene. However, executing the script also returns a number of constraint variables. These variables can be constrained inside the gadget and can also be bound outside the gadget in order to constrain the produced gadgets after the facts. This is the essence of the gadget composition mechanism of PrintTalk. PrintTalk is implemented in DrRacket. Running a PrintTalk program generates a file that is sent to the 3D printer. We validate PrintTalk qualitatively by comparing the code for complex gadgets with the code needed to print those gadgets in existing languages.

References

[1]
Greg J. Badros, Alan Borning, and Peter J. Stuckey. 2001. The Cassowary Linear Arithmetic Constraint Solving Algorithm. ACM Trans. Comput.-Hum. Interact., 8, 4 (2001), Dec., 267–306. issn:1073-0516 https://doi.org/10.1145/504704.504705
[2]
Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, C. R. Ramakrishnan and Jakob Rehof (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 337–340. isbn:978-3-540-78800-3 https://doi.org/10.1007/978-3-540-78800-3_24
[3]
Tim Felgentreff, Alan Borning, and Robert Hirschfeld. 2014. Babelsberg: Specifying and solving constraints on object behavior. 81, Universitätsverlag Potsdam.
[4]
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam Tobin-Hochstadt. 2018. A Programmable Programming Language. Commun. ACM, 61, 3 (2018), Feb., 62–71. issn:0001-0782 https://doi.org/10.1145/3127323
[5]
Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. 2002. DrScheme: a programming environment for Scheme. Journal of Functional Programming, 12, 2 (2002), 159–182. https://doi.org/10.1017/S0956796801004208
[6]
Robert Bruce Findler and Matthias Felleisen. 2002. Contracts for Higher-Order Functions. SIGPLAN Not., 37, 9 (2002), Sept., 48–59. issn:0362-1340 https://doi.org/10.1145/583852.581484
[7]
Jessie Frazelle. 2021. A New Era for Mechanical CAD: Time to Move Forward from Decades-Old Design. Queue, 19, 2 (2021), April, 5–16. issn:1542-7730 https://doi.org/10.1145/3466132.3469844
[8]
Martin Grabmüller and Petra Hofstedt. 2004. Turtle: A Constraint Imperative Programming Language. In Research and Development in Intelligent Systems XX, Frans Coenen, Alun Preece, and Ann Macintosh (Eds.). Springer London, London. 185–198. isbn:978-0-85729-412-8 https://doi.org/10.1007/978-0-85729-412-8_14
[9]
Christoph M. Hoffmann. 1989. Geometric and Solid Modeling: An Introduction. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. isbn:1558600671
[10]
Gus Lopez, Bjorn Freeman-Benson, and Alan Borning. 1994. Kaleidoscope: A Constraint Imperative Programming Language. In Constraint Programming, Brian Mayoh, Enn Tyugu, and Jaan Penjam (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 313–329. isbn:978-3-642-85983-0 https://doi.org/10.1007/978-3-642-85983-0_12
[11]
K. Rajaguru, T. Karthikeyan, and V. Vijayan. 2020. Additive manufacturing – State of art. Materials Today: Proceedings, 21 (2020), 628–633. issn:2214-7853 https://doi.org/10.1016/j.matpr.2019.06.728
[12]
Francesca Rossi, Peter van Beek, and Toby Walsh. 2006. Handbook of Constraint Programming. Elsevier Science Inc., USA. isbn:9780080463803

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
DSM 2021: Proceedings of the 18th ACM SIGPLAN International Workshop on Domain-Specific Modeling
October 2021
60 pages
ISBN:9781450391061
DOI:10.1145/3486603
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 October 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. 3D Modelling
  2. CAD
  3. Constraints
  4. DSL
  5. Design Languages
  6. Domain Specific Language
  7. PrintTalk

Qualifiers

  • Research-article

Conference

SPLASH '21
Sponsor:
SPLASH '21: Software for Humanity
October 18, 2021
IL, Chicago, USA

Acceptance Rates

Overall Acceptance Rate 31 of 50 submissions, 62%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 89
    Total Downloads
  • Downloads (Last 12 months)19
  • Downloads (Last 6 weeks)2
Reflects downloads up to 14 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media