{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,13]],"date-time":"2026-04-13T23:15:08Z","timestamp":1776122108622,"version":"3.50.1"},"reference-count":61,"publisher":"Association for Computing Machinery (ACM)","issue":"6","license":[{"start":{"date-parts":[[2019,11,8]],"date-time":"2019-11-08T00:00:00Z","timestamp":1573171200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Graph."],"published-print":{"date-parts":[[2019,12,31]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/3355089.3356518","type":"journal-article","created":{"date-parts":[[2019,11,8]],"date-time":"2019-11-08T20:27:58Z","timestamp":1573244878000},"page":"1-14","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":30,"title":["Carpentry compiler"],"prefix":"10.1145","volume":"38","author":[{"given":"Chenming","family":"Wu","sequence":"first","affiliation":[{"name":"Tsinghua University and University of Washington"}]},{"given":"Haisen","family":"Zhao","sequence":"additional","affiliation":[{"name":"University of Washington"}]},{"given":"Chandrakana","family":"Nandi","sequence":"additional","affiliation":[{"name":"University of Washington"}]},{"given":"Jeffrey I.","family":"Lipton","sequence":"additional","affiliation":[{"name":"University of Washington"}]},{"given":"Zachary","family":"Tatlock","sequence":"additional","affiliation":[{"name":"University of Washington"}]},{"given":"Adriana","family":"Schulz","sequence":"additional","affiliation":[{"name":"University of Washington"}]}],"member":"320","published-online":{"date-parts":[[2019,11,8]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"Ullman","author":"Aho Alfred V.","year":"1986","unstructured":"Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. 1986. Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA."},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2999536"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.3722\/cadaps.2009.341-350"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3068766"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168906"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1778765.1778800"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1111\/cgf.13327"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1080\/16864360.2005.10738401"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1080\/09511920600622064"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1287\/opre.1060.0293"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3197517.3201342"},{"key":"e_1_2_2_12_1","unstructured":"DDX. 2019. EasyWOOD CAD\/CAM software for 5 axis woodworking nesting true shape | DDX. http:\/\/www.ddxgroup.com\/en\/software\/easywood. (2019)."},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/4235.996017"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1778765.1778799"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2980179.2982427"},{"key":"e_1_2_2_16_1","unstructured":"FeatureScript. 2019. Weclome to FeatureScript. (2019). https:\/\/cad.onshape.com\/FsDoc\/."},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2766892"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1561\/2500000010"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0377-2217(99)00357-4"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/543552.512566"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2897824.2925944"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/TVCG.2016.2633519"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/15922.15904"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2461912.2461989"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1964921.1964980"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2766912"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICRA.2018.8460736"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2816795.2818091"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3130800.3130850"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/36206.36194"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2897824.2925940"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1276377.1276433"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1141911.1141931"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236794"},{"key":"e_1_2_2_35_1","unstructured":"Step NC. 2019. Step-nc. (2019). http:\/\/www.step-nc.org\/index.htm."},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2813885.2737959"},{"key":"e_1_2_2_38_1","volume-title":"Proceedings of the 8th Annual Symposium on Computer Architecture (ISCA '81)","author":"David","year":"1895","unstructured":"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"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2954679.2872387"},{"key":"e_1_2_2_40_1","volume-title":"Proceedings of the 2nd CSIRO Symposium on Computational Challenges in Life Sciences","volume":"3","author":"Prusinkiewicz Przemyslaw","year":"1996","unstructured":"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."},{"key":"e_1_2_2_41_1","volume-title":"https:\/\/www.opencascade.org","author":"Open CASCADE SAS.","year":"2019","unstructured":"Open CASCADE SAS. 2019. OPEN CASCADE. (2019). https:\/\/www.opencascade.org."},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3197517.3201347"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/3072959.3073688"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2766956"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2816795.2818128"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1080\/09511920600634903"},{"key":"e_1_2_2_47_1","unstructured":"RSA Solutions. 2019. woodCAD|CAM. https:\/\/www.rsasolutions.com\/products\/woodcadcam\/. (2019)."},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/3130800.3130803"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480915"},{"key":"e_1_2_2_50_1","unstructured":"The FreeCAD Team. 2019. FreeCAD Your own 3D parametric modeler. (2019). https:\/\/www.freecadweb.org\/."},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00170-016-8791-1"},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/2185520.2185582"},{"key":"e_1_2_2_53_1","unstructured":"\u010celi APS. 2019. Woodwork for Inventor - Furniture design software. https:\/\/www.woodworkforinventor.com. (2019)."},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/2461912.2461993"},{"key":"e_1_2_2_55_1","unstructured":"Philip Wadler. 1990. Linear Types Can Change the World!. In PROGRAMMING CONCEPTS AND METHODS. North."},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1111\/cgf.12810"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/99164.99179"},{"key":"e_1_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/267959.267960"},{"key":"e_1_2_2_59_1","doi-asserted-by":"publisher","DOI":"10.1080\/09511920600623708"},{"key":"e_1_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compind.2005.06.002"},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSE-EUC.2017.27"},{"key":"e_1_2_2_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/3197517.3201338"}],"container-title":["ACM Transactions on Graphics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3355089.3356518","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3355089.3356518","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:44:41Z","timestamp":1750203881000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3355089.3356518"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,11,8]]},"references-count":61,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2019,12,31]]}},"alternative-id":["10.1145\/3355089.3356518"],"URL":"https:\/\/doi.org\/10.1145\/3355089.3356518","relation":{},"ISSN":["0730-0301","1557-7368"],"issn-type":[{"value":"0730-0301","type":"print"},{"value":"1557-7368","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,11,8]]},"assertion":[{"value":"2019-11-08","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}