Computer Architecture Approaches for 3D Printing

3D Printing Stack
In this project, traditional computer architecture approaches were used as inspiration in redesigning the 3D printing stack with the goal of optimizing slicer and print times.

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.

IMG_5541 (1)

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.

CENG Faculty: Joseph Callenes-Sloan (EE)

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.


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.



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.

Figure 1

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.

Figure 2
Figure 3


  • 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
Figure 4
Figure 5
Figure 6

This project is sponsored by...

A Path-driven Architecture

Figure 7

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
Figure 8 - 80 Points
Figure 9 - Four Curves

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
Figure 10
Figure 11

Results - Compiler Performance

Figure 12
Figure 13

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.

Figure 14

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


  • 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.




Share on facebook
Share on twitter
Share on linkedin

Coronavirus Update and Resources