{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,13]],"date-time":"2026-04-13T19:29:03Z","timestamp":1776108543030,"version":"3.50.1"},"reference-count":49,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","license":[{"start":{"date-parts":[[2023,6,6]],"date-time":"2023-06-06T00:00:00Z","timestamp":1686009600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"DARPA","award":["CMU 1042741-394324 AM01, FA8750?16?2?0032"],"award-info":[{"award-number":["CMU 1042741-394324 AM01, FA8750?16?2?0032"]}]},{"name":"CAPA NSF","award":["CCF-1723352"],"award-info":[{"award-number":["CCF-1723352"]}]},{"DOI":"10.13039\/100000001","name":"NSF","doi-asserted-by":"publisher","award":["ITE--2132318, CCF--2122950, ITE--2029457, ITE--1936731, CCF--1918027, IIS--1924435"],"award-info":[{"award-number":["ITE--2132318, CCF--2122950, ITE--2029457, ITE--1936731, CCF--1918027, IIS--1924435"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2023,6,6]]},"abstract":"<jats:p>3D Computer-Aided Design (CAD) modeling is ubiquitous in mechanical engineering and design. Modern CAD models are programs that produce geometry and can be used to implement high-level geometric changes by modifying input parameters. While there has been a surge of recent interest in program-based tooling for the CAD domain, one fundamental problem remains unsolved. CAD programs pass geometric arguments to operations using references, which are queries that select elements from the constructed geometry according to programmer intent. The challenge is designing reference semantics that can express programmer intent across all geometric topologies achievable with model parameters, including topologies where the desired elements are not present. In current systems, both users and automated tools may create invalid models when parameters are changed, as references to geometric elements are lost or silently and arbitrarily switched. While existing CAD systems use heuristics to attempt to infer user intent in cases of this undefined behavior, this best-effort solution is not suitable for constructing automated tools to edit and optimize CAD programs. We analyze the failure modes of existing referencing schemes and formalize a set of criteria on which to evaluate solutions to the CAD referencing problem. In turn, we propose a domain-specific language that exposes references as a first-class language construct, using user-authored queries to introspect element history and define references safely over all paths. We give a semantics for fine-grained element lineage that can subsequently be queried; and show that our language meets the desired properties. Finally, we provide an implementation of a lineage-based referencing system in a 2.5D CAD kernel, demonstrating realistic referencing scenarios and illustrating how our system safely represents models that cause reference breakage in existing CAD systems.<\/jats:p>","DOI":"10.1145\/3591223","type":"journal-article","created":{"date-parts":[[2023,6,6]],"date-time":"2023-06-06T20:06:24Z","timestamp":1686081984000},"page":"76-99","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["A Lineage-Based Referencing DSL for Computer-Aided Design"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1242-2828","authenticated-orcid":false,"given":"Dan","family":"Cascaval","sequence":"first","affiliation":[{"name":"University of Washington, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6639-1647","authenticated-orcid":false,"given":"Rastislav","family":"Bodik","sequence":"additional","affiliation":[{"name":"Google, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2464-0876","authenticated-orcid":false,"given":"Adriana","family":"Schulz","sequence":"additional","affiliation":[{"name":"University of Washington, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,6,6]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2022. Blender Geometry Nodes. https:\/\/docs.blender.org\/manual\/en\/latest\/modeling\/geometry_nodes\/index.html (Accessed on 10\/11\/2022) \t\t\t\t  2022. Blender Geometry Nodes. https:\/\/docs.blender.org\/manual\/en\/latest\/modeling\/geometry_nodes\/index.html (Accessed on 10\/11\/2022)"},{"key":"e_1_2_1_2_1","unstructured":"Michael Alba. 2018. What\u2019s the Difference Between Parametric and Direct Modeling? https:\/\/www.engineering.com\/DesignSoftware\/DesignSoftwareArticles\/ArticleID\/16587\/Whats-the-Difference-Between-Parametric-and-Direct-Modeling.aspx (Accessed on 09\/06\/2019) \t\t\t\t  Michael Alba. 2018. What\u2019s the Difference Between Parametric and Direct Modeling? https:\/\/www.engineering.com\/DesignSoftware\/DesignSoftwareArticles\/ArticleID\/16587\/Whats-the-Difference-Between-Parametric-and-Direct-Modeling.aspx (Accessed on 09\/06\/2019)"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0010-4485(99)00090-1"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1080\/16864360.2005.10738401"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compind.2013.08.004"},{"key":"e_1_2_1_6_1","unstructured":"Mark Brunelli. 2014. Parametric vs. Direct Modeling | PTC. https:\/\/www.ptc.com\/en\/cad-software-blog\/parametric-vs-direct-modeling-which-side-are-you-on (Accessed on 09\/08\/2019) \t\t\t\t  Mark Brunelli. 2014. Parametric vs. Direct Modeling | PTC. https:\/\/www.ptc.com\/en\/cad-software-blog\/parametric-vs-direct-modeling-which-side-are-you-on (Accessed on 09\/08\/2019)"},{"key":"e_1_2_1_7_1","volume-title":"Differentiable 3D CAD Programs for Bidirectional Editing. CoRR, abs\/2110.01182","author":"Cascaval Dan","year":"2021","unstructured":"Dan Cascaval , Mira Shalah , Phillip Quinn , Rastislav Bod\u00edk , Maneesh Agrawala , and Adriana Schulz . 2021. Differentiable 3D CAD Programs for Bidirectional Editing. CoRR, abs\/2110.01182 ( 2021 ), arXiv:2110.01182. arxiv:2110.01182 Dan Cascaval, Mira Shalah, Phillip Quinn, Rastislav Bod\u00edk, Maneesh Agrawala, and Adriana Schulz. 2021. Differentiable 3D CAD Programs for Bidirectional Editing. CoRR, abs\/2110.01182 (2021), arXiv:2110.01182. arxiv:2110.01182"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/s12206-012-0827-3"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2908080.2908103"},{"key":"e_1_2_1_10_1","unstructured":"Jorge Dorribo Camba and Manuel Contero. 2016. Parametric CAD modeling: An analysis of strategies for design reusability. \t\t\t\t  Jorge Dorribo Camba and Manuel Contero. 2016. Parametric CAD modeling: An analysis of strategies for design reusability."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3272127.3275006"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.aej.2018.01.007"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006010"},{"key":"e_1_2_1_14_1","volume-title":"Computer Graphics: Principles and Practice","author":"Foley James D","unstructured":"James D Foley . 1996. 12.7 Constructive Solid Geometry , Computer Graphics: Principles and Practice . Addison-Wesley Professional . James D Foley. 1996. 12.7 Constructive Solid Geometry, Computer Graphics: Principles and Practice. Addison-Wesley Professional."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1111\/cgf.14475"},{"key":"e_1_2_1_16_1","volume-title":"A resilient modeling strategy. Technical Presentation","author":"Gebhard Richard","unstructured":"Richard Gebhard . 2013. A resilient modeling strategy. Technical Presentation , Solid Edge University . Richard Gebhard. 2013. A resilient modeling strategy. Technical Presentation, Solid Edge University."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3355089.3356576"},{"key":"e_1_2_1_18_1","unstructured":"Michael Herron. 20202. THE TOP 10 SECRETS CAD AND SOLIDWORKS USERS NEED TO KNOW. https:\/\/www.simplexitypd.com\/blog\/the-top-10-secrets-cad-and-solidworks-users-need-to-know (Accessed on 11\/10\/2022) \t\t\t\t  Michael Herron. 20202. THE TOP 10 SECRETS CAD AND SOLIDWORKS USERS NEED TO KNOW. https:\/\/www.simplexitypd.com\/blog\/the-top-10-secrets-cad-and-solidworks-users-need-to-know (Accessed on 11\/10\/2022)"},{"key":"e_1_2_1_19_1","unstructured":"Parametric Products Intellectual Holdings. 2019. CadQuery Introduction. https:\/\/cadquery.readthedocs.io\/en\/latest\/intro.html Accessed: 2022-10-11 \t\t\t\t  Parametric Products Intellectual Holdings. 2019. CadQuery Introduction. https:\/\/cadquery.readthedocs.io\/en\/latest\/intro.html Accessed: 2022-10-11"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3478513.3480562"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3414685.3417812"},{"key":"e_1_2_1_22_1","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3450626.3459821","article-title":"ShapeMOD: macro operation discovery for 3D shape programs","volume":"40","author":"Jones R Kenny","year":"2021","unstructured":"R Kenny Jones , David Charatan , Paul Guerrero , Niloy J Mitra , and Daniel Ritchie . 2021 . ShapeMOD: macro operation discovery for 3D shape programs . ACM Transactions on Graphics (TOG) , 40 , 4 (2021), 1 \u2013 16 . R Kenny Jones, David Charatan, Paul Guerrero, Niloy J Mitra, and Daniel Ritchie. 2021. ShapeMOD: macro operation discovery for 3D shape programs. ACM Transactions on Graphics (TOG), 40, 4 (2021), 1\u201316.","journal-title":"ACM Transactions on Graphics (TOG)"},{"key":"e_1_2_1_23_1","unstructured":"Marius Kintel and Claire Wolf. 2010. OpenSCAD The Programmers Solid 3D CAD Modeller. https:\/\/openscad.org\/index.html Accessed: 2023-03-17 \t\t\t\t  Marius Kintel and Claire Wolf. 2010. OpenSCAD The Programmers Solid 3D CAD Modeller. https:\/\/openscad.org\/index.html Accessed: 2023-03-17"},{"key":"e_1_2_1_24_1","volume-title":"ABC: A Big CAD Model Dataset For Geometric Deep Learning. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR).","author":"Koch Sebastian","year":"2019","unstructured":"Sebastian Koch , Albert Matveev , Zhongshi Jiang , Francis Williams , Alexey Artemov , Evgeny Burnaev , Marc Alexa , Denis Zorin , and Daniele Panozzo . 2019 . ABC: A Big CAD Model Dataset For Geometric Deep Learning. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Sebastian Koch, Albert Matveev, Zhongshi Jiang, Francis Williams, Alexey Artemov, Evgeny Burnaev, Marc Alexa, Denis Zorin, and Daniele Panozzo. 2019. ABC: A Big CAD Model Dataset For Geometric Deep Learning. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.sbspro.2010.03.204"},{"key":"e_1_2_1_26_1","first-page":"581","article-title":"Horizontally-structured CAD\/CAM modeling for virtual concurrent product and process design","volume":"6","author":"Landers Diane M","year":"2004","unstructured":"Diane M Landers and Pravin Khurana . 2004 . Horizontally-structured CAD\/CAM modeling for virtual concurrent product and process design . US Patent 6 ,775, 581 Diane M Landers and Pravin Khurana. 2004. Horizontally-structured CAD\/CAM modeling for virtual concurrent product and process design. US Patent 6,775,581","journal-title":"US Patent"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1111\/cgf.14046"},{"key":"e_1_2_1_28_1","unstructured":"McNeel. 2007. Grasshopper3d Algorithmic Modeling for Rhino. https:\/\/www.grasshopper3d.com\/ Accessed: 2022-10-11 \t\t\t\t  McNeel. 2007. Grasshopper3d Algorithmic Modeling for Rhino. https:\/\/www.grasshopper3d.com\/ Accessed: 2022-10-11"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3450626.3459823"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236794"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386012"},{"key":"e_1_2_1_32_1","unstructured":"OnShape. 2016. OFeatureScript. https:\/\/cad.onshape.com\/FsDoc\/ Accessed: 2022-10-11 \t\t\t\t  OnShape. 2016. OFeatureScript. https:\/\/cad.onshape.com\/FsDoc\/ Accessed: 2022-10-11"},{"key":"e_1_2_1_33_1","unstructured":"OpenCascade. 1999. OpenCascade Technology (OCCT) Kernel. https:\/\/www.opencascade.com\/open-cascade-technology\/ Accessed: 2022-10-11 \t\t\t\t  OpenCascade. 1999. OpenCascade Technology (OCCT) Kernel. https:\/\/www.opencascade.com\/open-cascade-technology\/ Accessed: 2022-10-11"},{"key":"e_1_2_1_34_1","unstructured":"OpenCascade. 2022. Topology Explorer Class Reference. https:\/\/dev.opencascade.org\/doc\/refman\/html\/class_top_exp___explorer.html \t\t\t\t  OpenCascade. 2022. Topology Explorer Class Reference. https:\/\/dev.opencascade.org\/doc\/refman\/html\/class_top_exp___explorer.html"},{"key":"e_1_2_1_35_1","unstructured":"PTC. 2011. PTC Creo. https:\/\/www.ptc.com\/en\/products\/creo Accessed: 2022-10-11 \t\t\t\t  PTC. 2011. PTC Creo. https:\/\/www.ptc.com\/en\/products\/creo Accessed: 2022-10-11"},{"key":"e_1_2_1_36_1","unstructured":"PTC. 2015. OnShape. https:\/\/www.onshape.com\/en\/ Accessed: 2022-10-11 \t\t\t\t  PTC. 2015. OnShape. https:\/\/www.onshape.com\/en\/ Accessed: 2022-10-11"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3197517.3201385"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3072959.3073688"},{"key":"e_1_2_1_39_1","unstructured":"SideFX. 1996. Houdini. https:\/\/www.sidefx.com\/products\/houdini\/ Accessed: 2022-10-11 \t\t\t\t  SideFX. 1996. Houdini. https:\/\/www.sidefx.com\/products\/houdini\/ Accessed: 2022-10-11"},{"key":"e_1_2_1_40_1","unstructured":"Siemens. 1973. Siemens NX. https:\/\/www.plm.automation.siemens.com\/global\/en\/products\/nx\/ Accessed: 2022-10-11 \t\t\t\t  Siemens. 1973. Siemens NX. https:\/\/www.plm.automation.siemens.com\/global\/en\/products\/nx\/ Accessed: 2022-10-11"},{"key":"e_1_2_1_41_1","unstructured":"Siemens. 1985. Parasolid CAD Kernel. https:\/\/www.plm.automation.siemens.com\/global\/en\/products\/plm-components\/parasolid.html Accessed: 2022-05-19 \t\t\t\t  Siemens. 1985. Parasolid CAD Kernel. https:\/\/www.plm.automation.siemens.com\/global\/en\/products\/plm-components\/parasolid.html Accessed: 2022-05-19"},{"key":"e_1_2_1_42_1","unstructured":"Jeff Strater. 2016. Solved: Re: Direct vs History based modelling - Page 2 - Autodesk Community- Fusion 360. https:\/\/forums.autodesk.com\/t5\/fusion-360-design-validate\/direct-vs-history-based-modelling\/m-p\/6717750####M84483 (Accessed on 09\/06\/2019) \t\t\t\t  Jeff Strater. 2016. Solved: Re: Direct vs History based modelling - Page 2 - Autodesk Community- Fusion 360. https:\/\/forums.autodesk.com\/t5\/fusion-360-design-validate\/direct-vs-history-based-modelling\/m-p\/6717750####M84483 (Accessed on 09\/06\/2019)"},{"key":"e_1_2_1_43_1","unstructured":"Dassault Syst\u00e8mes. 1982. CATIA. https:\/\/www.3ds.com\/products-services\/catia\/ Accessed: 2022-10-11 \t\t\t\t  Dassault Syst\u00e8mes. 1982. CATIA. https:\/\/www.3ds.com\/products-services\/catia\/ Accessed: 2022-10-11"},{"key":"e_1_2_1_44_1","unstructured":"Dassault Syst\u00e8mes. 1995. SolidWorks. https:\/\/www.solidworks.com\/ Accessed: 2022-10-11 \t\t\t\t  Dassault Syst\u00e8mes. 1995. SolidWorks. https:\/\/www.solidworks.com\/ Accessed: 2022-10-11"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3472749.3474779"},{"key":"e_1_2_1_46_1","volume-title":"Oct., arxiv:2010.02392 arXiv","author":"Willis Karl D. D.","year":"2010","unstructured":"Karl D. D. Willis , Yewen Pu , Jieliang Luo , Hang Chu , Tao Du , Joseph G. Lambourne , Armando Solar-Lezama , and Wojciech Matusik . 2020. Fusion 360 Gallery: A Dataset and Environment for Programmatic CAD Reconstruction. arXiv:2010.02392 [cs] , Oct., arxiv:2010.02392 arXiv : 2010 .02392 Karl D. D. Willis, Yewen Pu, Jieliang Luo, Hang Chu, Tao Du, Joseph G. Lambourne, Armando Solar-Lezama, and Wojciech Matusik. 2020. Fusion 360 Gallery: A Dataset and Environment for Programmatic CAD Reconstruction. arXiv:2010.02392 [cs], Oct., arxiv:2010.02392 arXiv: 2010.02392"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCV48922.2021.00670"},{"key":"e_1_2_1_48_1","unstructured":"Xianghao Xu Wenzhe Peng Chin-Yi Cheng Karl D. D. Willis and Daniel Ritchie. 2021. Inferring CAD Modeling Sequences Using Zone Graphs. arXiv. arxiv:2104.03900 arXiv:2104.03900 [cs] type: article \t\t\t\t  Xianghao Xu Wenzhe Peng Chin-Yi Cheng Karl D. D. Willis and Daniel Ritchie. 2021. Inferring CAD Modeling Sequences Using Zone Graphs. arXiv. arxiv:2104.03900 arXiv:2104.03900 [cs] type: article"},{"key":"e_1_2_1_49_1","unstructured":"Evan Yares. 2013. The failed promise of parametric CAD part 1: From the beginning. https:\/\/www.3dcadworld.com\/the-failed-promise-of-parametric-cad\/ (Accessed on 09\/06\/2019) \t\t\t\t  Evan Yares. 2013. The failed promise of parametric CAD part 1: From the beginning. https:\/\/www.3dcadworld.com\/the-failed-promise-of-parametric-cad\/ (Accessed on 09\/06\/2019)"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3591223","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3591223","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:47:46Z","timestamp":1750178866000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3591223"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,6,6]]},"references-count":49,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2023,6,6]]}},"alternative-id":["10.1145\/3591223"],"URL":"https:\/\/doi.org\/10.1145\/3591223","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,6,6]]},"assertion":[{"value":"2023-06-06","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}