Introducing Bidirectional Programming in Constructive Solid Geometry-Based CAD
<|reference_start|>Introducing Bidirectional Programming in Constructive Solid Geometry-Based CAD: 3D Computer-Aided Design (CAD) users need to overcome several obstacles to benefit from the flexibility of programmatic interface tools. Besides the barriers of any programming language, users face challenges inherent to 3D spatial interaction. Scripting simple operations, such as moving an element in 3D space, can be significantly more challenging than performing the same task using direct manipulation. We introduce the concept of bidirectional programming for Constructive Solid Geometry (CSG) CAD tools, informed by interviews we performed with programmatic interface users. We describe how users can navigate and edit the 3D model using direct manipulation in the view or code editing while the system ensures consistency between both spaces. We also detail a proof-of-concept implementation using a modified version of OpenSCAD.<|reference_end|>
@article{gonzalez2024introducing,
    title={Introducing Bidirectional Programming in Constructive Solid
  Geometry-Based CAD},
    author={J. Felipe Gonzalez, Danny Kieken, Thomas Pietrzak, Audrey Girouard,
  G'ery Casiez},
    journal={arXiv preprint arXiv:2408.01801},
    year={2024},
    doi={10.1145/3607822.3614521},
    archivePrefix={arXiv},
    eprint={2408.01801},
    primaryClass={cs.HC}
}