Github: https://github.com/jyjblrd/S4_Slicer
This 4 axis 3D printer project has been quite a ride. It started out the same way most of my projects do – I had just finished my exams and suddenly felt like I had lost all purpose in life. So I decided to keep myself busy by designing and creating my Core R-Theta 4 axis printer.
However, while building the printer I quickly realized that multi-axis printers are pretty much useless without a good slicer. There are dozens of 5 axis printers out there on Youtube, but almost every demo I've seen left me mildly disappointed. They either are printing out the classic propeller shape with each blade printed perpendicular from the shaft, or some whacky 5 axis spiral made using Full Control XYZ. Admittedly, my video on the Core R-Theta printer was no different as I also printed out a propeller haha.
The only project that truly impressed me was the S3 slicer, which demonstrated some absolutely insane looking tool paths. I went to their Github repo, intending to simply clone their code and generate some tool paths for my printer, however, I quickly realized that their code wasn't going to be simple to work with. It's all written in C++, has a complex build process, and relies on some proprietary software to generate the necessary input files. It would be what I would describe as "research code", where the project works but the code is very difficult to build upon (which, to be fair, is something I'm totally guilty of as well).
I had just finished writing my dissertation which was built upon similarly opaque C++ code, and was not keen on repeating the experience. So I decided to take the far more fun approach: creating my own non-planar slicer from scratch. I was aided by the S3 slicer paper, but didn't bother even looking at their code – I really was sick of looking at C++ after my 9 months of working on my diss lol.
While I was inspired by the general idea of deformation based slicing presented by the S3 Slicer paper, my system has quite a few differences. The most notable difference is how I generate the initial guess for the rotation field. My slicer uses a network approach to determine every tetrahedron's distance from the print bed, which not only allows us to know which way to rotate the tetrahedrons to remove overhangs, but also lets us identify the parts of a model that are "printing in thin air", ie. having an overhang of more than 90 degrees. This is a case which I don't think the S3 Slicer can handle, due to its alternate method of creating the rotation field.
However, the true goal of my slicer was to create something which would be easy to build and accessible in terms of both software and hardware. The S3 Slicer video shows their parts being printed using a huge 6 axis robot arm, which is a pretty daunting setup to say the least. It also clearly limits their print speed, with parts taking days to print out. Part of the reason I wanted to develop this slicer was because I realized that my simple 4 axis printer could be a great accessible platform to test non-planar slicers. My printer's simple design & low moving mass also allows the parts to be printed at "typical" 3D printer speeds, ie. in a matter of hours, not days.
Anyway, as I mentioned at the beginning, this all started during the summer after I graduated (2024), so it really has been quite a long time in the works. Releasing the video was mostly held back by the fact that I was determined to print an upside down benchy using the slicer, just so I could put it in the thumbnail haha. But I think it was worth it in the end!
Conclusion
I'm very happy with how this project went. A big goal of mine was to make the 3D printing community aware that non-planar slicing is a lot more achievable than most people think. Hopefully others will pick up my code and expand upon it, as there is still a lot of room for improvement, such as adding the ability to optimize layer lines for part strength, and adapting it to work with 5 axes instead of just 4.
There has also been a remarkable interest in my Core R-Theta printer, with a people creating their own printers and even improving the design. I had to redesign the extruder mount to allow for more rotation to print the upside down benchy, and the parts were kindly provided by the video's sponsor, JLCCNC.
I'll be moving to California in a few weeks time, so I'll be taking a bit of a break from my projects (I have enough to worry about at the moment! haha). I'm still yet to achieve my original goal of creating a ceramic 3D printer, which was originally supposed to be done in time to print out tableware for my London flat, but we're long past that deadline as I'm already moving out from that flat! But hopefully I'll be back with my next project soon.