SPLASH 2025
Sun 12 - Sat 18 October 2025 Singapore
co-located with ICFP/SPLASH 2025

This program is tentative and subject to change.

Fri 17 Oct 2025 17:00 - 17:15 at Orchid Plenary Ballroom - Testing 2

The computational fabrication pipeline for 3D printing is much like a compiler — users design models in Computer Aided Design (CAD) tools that are compiled down to lower-level 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 translate 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.

This program is tentative and subject to change.

Fri 17 Oct

Displayed time zone: Perth change

16:00 - 17:30
16:00
15m
Talk
Bennet: Randomized Specification Testing for Heap-Manipulating Programs
OOPSLA
Zain K Aamer University of Pennsylvania, Benjamin C. Pierce University of Pennsylvania
16:15
15m
Talk
DepFuzz: Efficient Smart Contract Fuzzing with Function Dependence Guidance
OOPSLA
Chenyang Ma Nanjing University of Science and Technology, Wei Song Nanjing University of Science and Technology, Jeff Huang Texas A&M University
16:30
15m
Talk
Extraction and Mutation at a High Level: Template-Based Fuzzing for JavaScript Engines
OOPSLA
Wai Kin Wong Hong Kong University of Science and Technology, Dongwei Xiao Hong Kong University of Science and Technology, Cheuk Tung LAI VX Research Limited, Yiteng Peng Hong Kong University of Science and Technology, Daoyuan Wu Lingnan University, Shuai Wang Hong Kong University of Science and Technology
16:45
15m
Talk
Finding Compiler Bugs through Cross-Language Code Generator and Differential Testing
OOPSLA
Qiong Feng Nanjing University of Science and Technology, Xiaotian Ma Nanjing University of Science and Technology, Ziyuan Feng Nanjing University of Science and Technology, Marat Akhin JetBrains, Wei Song Nanjing University of Science and Technology, Peng Liang Wuhan University, China
17:00
15m
Talk
Formalizing Linear Motion G-code for Invariant Checking and Differential Testing of Fabrication Tools
OOPSLA
Yumeng He University of Utah, Chandrakana Nandi Certora, Sreepathi Pai University of Rochester