Machining is software. Gcode, the programming language for machining tools such as milling machines, lathes, and plasma cutters, was developed in the late 1950s and remains the dominant language today. In the past 60 years, programming languages and software have changed and advanced tremendously, but Gcode remains mostly unchanged. This is true both for legacy systems as well as new ones, such as 3D printers. Machining pioneered cyber-physical systems but, from a computing perspective, remains half a century in the past. Enabling machine tools as modern, networked programming systems has the potential to revolutionize the $40B machining industry.
This research project will demonstrate new techniques that safely and securely improve machining automation, using new embedded operating systems, program analysis, secure code distribution, and user tools. The research relies on three important principles: discretization, programmable safety, and end-to-end integrity with auditing. The first principle, discretization, is a method of program representation that greatly simplifies correctness checks and verifying invariants. Rather than rely on implicit curves and geometric to define physical shapes, programs use an explicit, discretized representation defined by the desired machining precision. The second principle, programmable safety, allows quickly-changing software to have the same physical safety as traditional machining systems, by using high-assurance software that operates correctly even if the entire system crashes. Finally, end-to-end integrity and auditing allows operators to verify code before running it and allows the system to prove that programs executed correctly.
This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.