Formalizing Linear Motion G-Code for Invariant Checking and Differential Testing of Fabrication Tools
Yumeng He, Chandrakana Nandi, Sreepathi Pai
摘要
The computational fabrication pipeline for 3D printing is much like a compiler – users design models in Computer Aided Design (CAD) tools that are lowered to polygon meshes to be ultimately compiled to machine code by 3D slicers. For traditional compilers and programming languages, techniques for checking program invariants are well-established. Similarly, methods like differential testing are frequently used to uncover bugs in compilers themselves, which makes them more reliable. The fabrication pipeline would benefit from similar techniques but traditional approaches do not directly apply to the representations used in this domain. Unlike traditional programs, 3D models exist both as geometric objects (a CAD model or a polygon mesh) as well as machine code that ultimately runs on the hardware. The machine code, like in traditional compiling, is affected by many factors like the model, the slicer being used, and numerous user-configurable parameters that control the slicing process. In this work, we propose a new algorithm for lifting G-code (a common language used in many fabrication pipelines) by denoting a G-code program to a set of cuboids, and then defining an approximate point cloud representation for efficiently operating on these cuboids. Our algorithm opens up new opportunities: we show three use cases that demonstrate how it enables (1) error localization in CAD models through invariant checking, (2) quantitative comparisons between slicers, and (3) evaluating the efficacy of mesh repair tools. We present a prototype implementation of our algorithm in a tool, GlitchFinder , and evaluate it on 58 real-world CAD models. Our results show that GlitchFinder is particularly effective in identifying slicing issues due to small features, can highlight differences in how popular slicers (Cura and PrusaSlicer) slice the same model, and can identify cases where mesh repair tools (MeshLab and Meshmixer) introduce new errors during repair.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper1
问问它们各自怎么用它它引用的顶会 Paper6
- Synthesizing structured CAD models with equality saturation and inverse transformationsChandrakana Nandi, Max Willsey, Adam Anderson, James R. Wilcox 等PLDI 2020 · 被引用 65 次
- babble: Learning Better Abstractions with E-Graphs and Anti-unificationDavid Cao, Rose Kunkel, Chandrakana Nandi, Max Willsey 等POPL 2023 · 被引用 38 次
- Imprimer: Computational Notebooks for CNC MillingJasper Tran O'Leary, Gabrielle Benabdallah, Nadya PeekCHI 2023 · 被引用 31 次
- ShapeMOD: macro operation discovery for 3D shape programsR. Kenny Jones, David Charatan, Paul Guerrero, Niloy J. Mitra 等SIGGRAPH 2021 · 被引用 24 次
- Taxon: a Language for Formal Reasoning with Digital Fabrication MachinesJasper Tran O'Leary, Chandrakana Nandi, Khang Lee, Nadya PeekUIST 2021 · 被引用 9 次
相关 Paper
- From Copy/Paste to Copying Pastes: Supporting Replication in an Online Digital Fabrication CommunityBlair Subbaraman, Nadya PeekCHI 2026 · 被引用 1 次
- CADReview: Automatically Reviewing CAD Programs with Error Detection and CorrectionJiali Chen, Xusen Hei, Hongfei Liu, Yuancheng Wei 等ACL 2025
- VisiPrint: Previewing 3D-Print Appearance from Real Material SamplesMaxine Perroni-Scharf, Faraz Faruqi, Sooyeon Ahn, Raul Hernandez 等CHI 2026 · 被引用 1 次
- SplatOverflow: Asynchronous Hardware TroubleshootingAmritansh Kwatra, Tobias M. Weinberg, Ilan Mandel, Ritik Batra 等CHI 2025 · 被引用 12 次
- G-ID: Identifying 3D Prints Using Slicing ParametersMustafa Doga Dogan, Faraz Faruqi, Andrew Day Churchill, Kenneth Friedman 等CHI 2020 · 被引用 46 次
