Meet Our Team
Quentin Monasterial
Student Researcher
Quentin is a fourth year computer engineering student. His interests include cybersecurity, embedded systems and computer architecture. Outside of his studies, you may find him spending his free time reading or enjoying long walks with his dogs.
William Terlinden
Student Researcher
William is a third year computer engineering major with an economics minor. He enjoys studying lower level computer software and computer architecture. When he is not studying, he is playing in the Mustang Band, representing CENG on the ASI Board of Directors, or running and biking around SLO.
Joseph Callenes
Research Advisor
Joseph Callenes is an assistant professor in the Electrical and Computer Engineering at California Polytechnic State University. He received his PhD and MS in Electrical and Computer Engineering at the University of Illinois in Urbana-Champaign (UIUC). His research interests include computer architecture, fault-tolerant computing, high performance and scientific computing, and low-power design.
Acknowledgements
We would like to formally thank the College of Engineering, our sponsor Northrup Grumman, all involved staff and faculty members, including our advisor Professor Joseph Callenes-Sloan, for making this project possible.
Project
Background
3D printing has the potential to dramatically impact a wide range of technologies. There is especially interest in fabrication at higher resolutions (micro and nano- printing). Most 3D printers today are built around legacy point-to-point based CNC machine language (G-Code). G-ode was created in 1950 and was not originally designed for scalable 3D printing. As emerging applications are scaled up in complexity and detail, conventional 3D printing overheads may become prohibitive. With that being said, there exists a need for new, efficient 3D printing organizations to meet the demand of these emerging applications.
Conventional 3D Printing
Like most digital systems, 3D printing information follows a rough flowchart as seen in Figure 2 starting as a model and going through many steps before becoming a physical object. The basic idea is to take a complex model and transform it into points for the 3D printer to follow as it extrudes material. As the model gets larger and more detailed, the software has a harder time converting it to printer instructions, the file sizes at all stages increase, and the actual print time can drastically increase.
Methodology
- Profiling and simulation of proposed architecture using CuraEngine (popular open-source slicer tool)
- AMF/3MF instruction formats with curved triangles
- FFT-based approximation for multi-spline path generation
- Parametric cube (random and non-random textures) benchmarks
This project is sponsored by...
A Path-driven Architecture
Path-based Representation
Instead of defining each layer as a set of discrete points, represent a layer as a series of continuous paths. Information will be saved as a polynomial or multi-spline. Predicted benefits include:
- A higher level of detail can be stored with less information. The compiler which creates these instruction will have fewer commands to generate. Note how Figure 8 requires more information to represent the same shape that than Figure 9 does.
- Motors operate more efficiently and reliably with continuous movement
- Compiler processes less triangles during slicing, may approximate paths, less instructions to generate.
- Inter- and Intra-layer reuse patterns mapped efficiently to vector/path instructions/registers
Additional vector/path instructions:
- Translation, rotation, mirroring, stretching, skewing, affine transformation, set operations, finite difference methods
- Printer runtime controller may cache “compiled” movement/motor commands
Results - Compiler Performance
Compiler performance for conventional architecture (i.e. G-code), random textured benchmark. Slicing (front-end of compiler) takes >65% of compilation time as object complexity scales. Motion planning overhead (back-end) also increases significantly with point-to-point representation.
Approx paths reduces slicing time up to 2x and motion planning execution time by up to 5x. Path reuse + Approx paths reduces motion planning overhead by over 100x for non-random textured benchmarks
Summary
- 3D printing has wide range of potential applications that increasingly require high resolutions (micro & nano accuracy).
- Showed conventional printers built around point-to-point ISA, may result in prohibitive compilation and printing execution times.
- Proposed path-driven architecture that is built around path-based interface: coefficients stored for regular approx paths and vector/path instructions to exploit inter- and intra-reuse within irregular paths.
Future work
- Evaluate impact of proposed architecture on printer performance, reliability, accuracy.
- Investigate techniques for dynamic compilation of printer programs as compared to conventional approach where g-code programs are interrupted by printer.