skip to main content
research-article

Carpentry compiler

Published: 08 November 2019 Publication History

Abstract

Traditional manufacturing workflows strongly decouple design and fabrication phases. As a result, fabrication-related objectives such as manufacturing time and precision are difficult to optimize in the design space, and vice versa. This paper presents HL-HELM, a high-level, domain-specific language for expressing abstract, parametric fabrication plans; it also introduces LL-HELM, a low-level language for expressing concrete fabrication plans that take into account the physical constraints of available manufacturing processes. We present a new compiler that supports the real-time, unoptimized translation of high-level, geometric fabrication operations into concrete, tool-specific fabrication instructions; this gives users immediate feedback on the physical feasibility of plans as they design them. HELM offers novel optimizations to improve accuracy and reduce fabrication time as well as material costs. Finally, optimized low-level plans can be interpreted as step-by-step instructions for users to actually fabricate a physical product. We provide a variety of example fabrication plans in the carpentry domain that are designed using our high-level language, show how the compiler translates and optimizes these plans to generate concrete low-level instructions, and present the final physical products fabricated in wood.

Supplemental Material

ZIP File
Supplemental files.

References

[1]
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. 1986. Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
[2]
Marc Alexa, Kristian Hildebrand, and Sylvain Lefebvre. 2017. Optimal Discrete Slicing. ACM Trans. Graph. 36, 1, Article 64b (Jan. 2017).
[3]
Mehdi Baba-Ali, David Marcheix, and Xavier Skapin. 2009. A method to improve matching process by shape characteristics in parametric systems. Computer-Aided Design and Applications 6, 3 (2009), 341--350.
[4]
Moritz Bächer, Bernd Bickel, Emily Whiting, and Olga Sorkine-Hornung. 2017. Spin-it: Optimizing Moment of Inertia for Spinnable Objects. Commun. ACM 60, 8 (July 2017), 92--99.
[5]
Sorav Bansal and Alex Aiken. 2006. Automatic Generation of Peephole Superoptimizers. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XII). ACM, New York, NY, USA, 394--403.
[6]
Bernd Bickel, Moritz Bächer, Miguel A. Otaduy, Hyunho Richard Lee, Hanspeter Pfister, Markus Gross, and Wojciech Matusik. 2010. Design and Fabrication of Materials with Desired Deformation Behavior. ACM Trans. Graph. 29, 4, Article 63 (July 2010), 10 pages.
[7]
Bernd Bickel, Paolo Cignoni, Luigi Malomo, and Nico Pietroni. 2018. State of the Art on Stylized Fabrication. Computer Graphics Forum 37, 6 (2018), 325--342.
[8]
Rafael Bidarra, Paulos J Nyirenda, and Willem F Bronsvoort. 2005. A feature-based solution to the persistent naming problem. Computer-Aided Design and Applications 2, 1--4 (2005), 517--526.
[9]
Christian Brecher, Mirco Vitr, and Jochen Wolf. 2006. Closed-loop CAPP/CAM/CNC process chain based on STEP and STEP-NC inspection tasks. International Journal of Computer Integrated Manufacturing 19, 6 (2006), 570--580.
[10]
Edmund Burke, Robert Hellier, Graham Kendall, and Glenn Whitwell. 2006. A New Bottom-Left-Fill Heuristic Algorithm for the Two-Dimensional Irregular Packing Problem. Operations Research 54, 3 (2006), 587--601. arXiv:https://doi.org/10.1287/opre.1060.0293
[11]
Chengkai Dai, Charlie C. L. Wang, Chenming Wu, Sylvain Lefebvre, Guoxin Fang, and Yong-Jin Liu. 2018. Support-free Volume Printing by Multi-axis Motion. ACM Trans. Graph. 37, 4, Article 134 (July 2018), 14 pages.
[12]
DDX. 2019. EasyWOOD, CAD/CAM software for 5 axis woodworking, nesting true shape | DDX. http://www.ddxgroup.com/en/software/easywood. (2019).
[13]
K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan. 2002. A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation 6, 2 (April 2002), 182--197.
[14]
Yue Dong, Jiaping Wang, Fabio Pellacini, Xin Tong, and Baining Guo. 2010. Fabricating Spatially-varying Subsurface Scattering. ACM Trans. Graph. 29, 4, Article 62 (July 2010), 10 pages.
[15]
Tao Du, Adriana Schulz, Bo Zhu, Bernd Bickel, and Wojciech Matusik. 2016. Computational Multicopter Design. ACM Transactions on Graphics 35, 6 (Nov. 2016), 227:1--227:10.
[16]
FeatureScript. 2019. Weclome to FeatureScript. (2019). https://cad.onshape.com/FsDoc/.
[17]
Chi-Wing Fu, Peng Song, Xiaoqi Yan, Lee Wei Yang, Pradeep Kumar Jayaraman, and Daniel Cohen-Or. 2015. Computational Interlocking Furniture Assembly. ACM Trans. Graph. 34, 4, Article 91 (July 2015), 11 pages.
[18]
Sumit Gulwani, Oleksandr Polozov, and Rishabh Singh. 2017. Program Synthesis. Foundations and Trends in Programming Languages 4, 1--2 (2017), 1--119.
[19]
E Hopper and B.C.H Turton. 2001. An empirical investigation of meta-heuristic and heuristic algorithms for a 2D packing problem. European Journal of Operational Research 128, 1 (2001), 34 -- 57.
[20]
Rajeev Joshi, Greg Nelson, and Keith Randall. 2002. Denali: A Goal-directed Superoptimizer. SIGPLAN Not. 37, 5 (May 2002), 304--314.
[21]
Mina Konaković, Keenan Crane, Bailin Deng, Sofien Bouaziz, Daniel Piker, and Mark Pauly. 2016. Beyond Developable: Computational Design and Fabrication with Auxetic Materials. ACM Trans. Graph. 35, 4, Article 89 (July 2016), 11 pages.
[22]
Bongjin Koo, Jean Hergel, Sylvain Lefebvre, and Niloy J. Mitra. 2017. Towards Zero-Waste Furniture Design. IEEE Transactions on Visualization and Computer Graphics 23, 12 (Dec 2017), 2627--2640.
[23]
David H. Laidlaw, W. Benjamin Trumbore, and John F. Hughes. 1986. Constructive Solid Geometry for Polyhedral Objects. In Proceedings of the 13th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '86). ACM, New York, NY, USA, 161--170.
[24]
Yanxiang Lan, Yue Dong, Fabio Pellacini, and Xin Tong. 2013. Bi-scale Appearance Fabrication. ACM Trans. Graph. 32, 4, Article 145 (July 2013), 12 pages.
[25]
Manfred Lau, Akira Ohgawara, Jun Mitani, and Takeo Igarashi. 2011. Converting 3D Furniture Models to Fabricatable Parts and Connectors. In ACM SIGGRAPH 2011 Papers (SIGGRAPH '11). ACM, New York, NY, USA, Article 85, 6 pages.
[26]
Honghua Li, Ruizhen Hu, Ibraheem Alhashim, and Hao Zhang. 2015. Foldabilizing Furniture. ACM Trans. Graph. 34, 4, Article 90 (July 2015), 12 pages.
[27]
J. I. Lipton, A. Schulz, A. Spielberg, L. H. Trueba, W. Matusik, and D. Rus. 2018. Robot Assisted Carpentry for Mass Customization. In 2018 IEEE International Conference on Robotics and Automation (ICRA). IEEE, Brisbane, QLD, Australia, 1--8.
[28]
Sheng-Jie Luo, Yonghao Yue, Chun-Kai Huang, Yu-Huan Chung, Sei Imai, Tomoyuki Nishita, and Bing-Yu Chen. 2015. Legolization: Optimizing LEGO Designs. ACM Trans. Graph. 34, 6, Article 222 (Oct. 2015), 12 pages.
[29]
Li-Ke Ma, Yizhonc Zhang, Yang Liu, Kun Zhou, and Xin Tong. 2017. Computational design and fabrication of soft pneumatic objects with desired deformations. ACM Transactions on Graphics (TOG) 36, 6 (2017), 239.
[30]
Henry Massalin. 1987. Superoptimizer: A Look at the Smallest Program. In Proceedings of the Second International Conference on Architectual Support for Programming Languages and Operating Systems (ASPLOS II). IEEE Computer Society Press, Los Alamitos, CA, USA, 122--126.
[31]
James McCann, Lea Albaugh, Vidya Narayanan, April Grow, Wojciech Matusik, Jennifer Mankoff, and Jessica Hodgins. 2016. A Compiler for 3D Machine Knitting. ACM Trans. Graph. 35, 4, Article 49 (July 2016), 11 pages.
[32]
Yuki Mori and Takeo Igarashi. 2007. Plushie: An Interactive Design System for Plush Toys. ACM Trans. Graph. 26, 3, Article 45 (July 2007).
[33]
Pascal Müller, Peter Wonka, Simon Haegler, Andreas Ulmer, and Luc Van Gool. 2006. Procedural Modeling of Buildings. ACM Trans. Graph. 25, 3 (July 2006), 614--623.
[34]
Chandrakana Nandi, James R. Wilcox, Pavel Panchekha, Taylor Blau, Dan Grossman, and Zachary Tatlock. 2018. Functional Programming for Compiling and Decompiling Computer-aided Design. Proc. ACM Program. Lang. 2, ICFP, Article 99 (July 2018), 31 pages.
[35]
Step NC. 2019. Step-nc. (2019). http://www.step-nc.org/index.htm.
[36]
Charles Gregory Nelson. 1980. Techniques for Program Verification. Ph.D. Dissertation. Stanford University, Stanford, CA, USA. AAI8011683.
[37]
Pavel Panchekha, Alex Sanchez-Stern, James R. Wilcox, and Zachary Tatlock. 2015. Automatically Improving Accuracy for Floating Point Expressions. SIGPLAN Not. 50, 6 (June 2015), 1--11.
[38]
David A. Patterson and Carlo H. Sequin. 1981. RISC I: A Reduced Instruction Set VLSI Computer. In Proceedings of the 8th Annual Symposium on Computer Architecture (ISCA '81). IEEE Computer Society Press, Los Alamitos, CA, USA, 443--457. http://dl.acm.org/citation.cfm?id=800052.801895
[39]
Phitchaya Mangpo Phothilimthana, Aditya Thakur, Rastislav Bodik, and Dinakar Dhurjati. 2016. Scaling Up Superoptimization. SIGPLAN Not. 51, 4 (March 2016), 297--310.
[40]
Przemyslaw Prusinkiewicz, Mark Hammel, Jim Hanan, and Radomir Mech. 1996. Lsystems: from the theory to visual models of plants. In Proceedings of the 2nd CSIRO Symposium on Computational Challenges in Life Sciences, Vol. 3. Citeseer, 1--32.
[41]
Open CASCADE SAS. 2019. OPEN CASCADE. (2019). https://www.opencascade.org.
[42]
Christian Schüller, Roi Poranne, and Olga Sorkine-Hornung. 2018. Shape Representation by Zippables. ACM Trans. Graph. 37, 4, Article 78 (July 2018), 13 pages.
[43]
Adriana Schulz, Ariel Shamir, Ilya Baran, David I. W. Levin, Pitchaya Sitthi-Amorn, and Wojciech Matusik. 2017. Retrieval on Parametric Shape Collections. ACM Transactions on Graphics 36, 1 (Jan. 2017), 11:1--11:14.
[44]
Michael Schwarz and Pascal Müller. 2015. Advanced Procedural Modeling of Architecture. ACM Trans. Graph. 34, 4, Article 107 (July 2015), 12 pages.
[45]
Mélina Skouras, Stelian Coros, Eitan Grinspun, and Bernhard Thomaszewski. 2015. Interactive Surface Design with Interlocking Elements. ACM Trans. Graph. 34, 6, Article 224 (Oct. 2015), 7 pages.
[46]
Alexei Sokolov, J Richard, VK Nguyen, Ian Stroud, W Maeder, and P Xirouchakis. 2006. Algorithms and an extended STEP-NC-compliant data model for wire electro discharge machining based on 3D representations. International Journal of Computer Integrated Manufacturing 19, 6 (2006), 603--613.
[47]
RSA Solutions. 2019. woodCAD|CAM. https://www.rsasolutions.com/products/woodcadcam/. (2019).
[48]
Peng Song, Chi-Wing Fu, Yueming Jin, Hongfei Xu, Ligang Liu, Pheng-Ann Heng, and Daniel Cohen-Or. 2017. Reconfigurable Interlocking Furniture. ACM Trans. Graph. 36, 6, Article 174 (Nov. 2017), 14 pages.
[49]
Ross Tate, Michael Stepp, Zachary Tatlock, and Sorin Lerner. 2009. Equality Saturation: A New Approach to Optimization. In Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '09). ACM, New York, NY, USA, 264--276.
[50]
The FreeCAD Team. 2019. FreeCAD Your own 3D parametric modeler. (2019). https://www.freecadweb.org/.
[51]
Jumyung Um, Matthieu Rauch, Jean-Yves Hascoët, and Ian Stroud. 2017. STEP-NC compliant process planning of additive manufacturing: remanufacturing. The International Journal of Advanced Manufacturing Technology 88, 5--8 (2017), 1215--1230.
[52]
Nobuyuki Umetani, Takeo Igarashi, and Niloy J. Mitra. 2012. Guided Exploration of Physically Valid Shapes for Furniture Design. ACM Trans. Graph. 31, 4, Article 86 (July 2012), 11 pages.
[53]
Čeli APS. 2019. Woodwork for Inventor - Furniture design software. https://www.woodworkforinventor.com. (2019).
[54]
Kiril Vidimče, Szu-Po Wang, Jonathan Ragan-Kelley, and Wojciech Matusik. 2013. OpenFab: A Programmable Pipeline for Multi-material Fabrication. ACM Trans. Graph. 32, 4, Article 136 (July 2013), 12 pages.
[55]
Philip Wadler. 1990. Linear Types Can Change the World!. In PROGRAMMING CONCEPTS AND METHODS. North.
[56]
L. Wang and E. Whiting. 2016. Buoyancy Optimization for Computational Fabrication. Computer Graphics Forum 35, 2 (2016), 49--58.
[57]
D. Whitfield and M. L. Soffa. 1990. An Approach to Ordering Optimizing Transformations. SIGPLAN Not. 25, 3 (Feb. 1990), 137--146.
[58]
Deborah L. Whitfield and Mary Lou Soffa. 1997. An Approach for Exploring Code Improving Transformations. ACM Trans. Program. Lang. Syst. 19, 6 (Nov. 1997), 1053--1084.
[59]
SQ Xie and Xun Xu. 2006. A STEP-compliant process planning system for sheet metal parts. International Journal of Computer Integrated Manufacturing 19, 6 (2006), 627--638.
[60]
Xun W Xu and Stephen T Newman. 2006. Making CNC machine tools more open, interoperable and intelligent - a review of the technologies. Computers in Industry 57, 2 (2006), 141--152.
[61]
J. Zhang and L. Xing. 2017. A Survey of Multiobjective Evolutionary Algorithms. In 2017 IEEE International Conference on Computational Science and Engineering (CSE) and IEEE International Conference on Embedded and Ubiquitous Computing (EUC), Vol. 1. 93--100.
[62]
Haisen Zhao, Hao Zhang, Shiqing Xin, Yuanmin Deng, Changhe Tu, Wenping Wang, Daniel Cohen-Or, and Baoquan Chen. 2018. DSCarver: Decompose-and-spiral-carve for Subtractive Manufacturing. ACM Trans. Graph. 37, 4, Article 137 (July 2018), 14 pages.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Graphics
ACM Transactions on Graphics  Volume 38, Issue 6
December 2019
1292 pages
ISSN:0730-0301
EISSN:1557-7368
DOI:10.1145/3355089
Issue’s Table of Contents
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 November 2019
Published in TOG Volume 38, Issue 6

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CAD
  2. design for manufacturing
  3. hardware abstractions
  4. programming languages

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)90
  • Downloads (Last 6 weeks)10
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Complex layout generation for large-scale floor plans via deep edge-aware GNNsApplied Intelligence10.1007/s10489-025-06311-w55:6Online publication date: 1-Apr-2025
  • (2025)Deep reinforcement learning for community architectural layout generationKnowledge and Information Systems10.1007/s10115-024-02291-467:3(2453-2480)Online publication date: 1-Mar-2025
  • (2024)Enhancing the Aesthetics of 3D Shapes via Reference-based EditingACM Transactions on Graphics10.1145/368795443:6(1-15)Online publication date: 19-Nov-2024
  • (2024)Volumetric Homogenization for Knitwear SimulationACM Transactions on Graphics10.1145/368791143:6(1-19)Online publication date: 19-Nov-2024
  • (2024)SceneExpander: Real-Time Scene Synthesis for Interactive Floor Plan EditingProceedings of the 32nd ACM International Conference on Multimedia10.1145/3664647.3680798(6232-6240)Online publication date: 28-Oct-2024
  • (2024)Computational Illusion KnittingACM Transactions on Graphics10.1145/365823143:4(1-13)Online publication date: 19-Jul-2024
  • (2024)KODA: Knit-program Optimization by Dependency AnalysisProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676405(1-15)Online publication date: 13-Oct-2024
  • (2024)What's in a cable? Abstracting Knitting Design Elements with Blended Raster/Vector PrimitivesProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676351(1-20)Online publication date: 13-Oct-2024
  • (2024)Singular Foliations for Knit Graph DesignACM SIGGRAPH 2024 Conference Papers10.1145/3641519.3657487(1-11)Online publication date: 13-Jul-2024
  • (2024)Part123: Part-aware 3D Reconstruction from a Single-view ImageACM SIGGRAPH 2024 Conference Papers10.1145/3641519.3657482(1-12)Online publication date: 13-Jul-2024
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media