2023-08-17 –, N:O:R:T:x
Language: English
Three years ago, I started what I thought would be a six month project to implement some CAM software for 3D printing purposes, without using any of the existing geometry kernels. How hard can it be, right? I made some choices that seem weird but were done for very good reasons, and ended up implementing some things that are actually new and exciting. Here’s the story of the adventure so far.
As the adoptive maintainer of one piece of 3D printing toolchain (ImplicitCAD, a programmable 3D modelling tool), I made the possibly unwise decision to implement another part of the toolchain - HSlice, a slicer. For a number of reasons I’ll get into in detail later, I decided to not use any of the existing multi-million-LoC geometry kernels, to implement the whole thing from first principles in Haskell, and to use some exciting new mathematics. All of those decisions were made for good reasons, and all of them came back to bite me. I’m here to tell you about what I’ve built so far, how I ended up as the singular intersection of these technologies, and how much I hate floating point. Then, I’ll tell you what it’s like implementing things whose only documentation is research papers, with math developed this century and algorithms that are still in development now. I’ll tell you about some incredibly cool algorithms involving crashing Austrian motorcycles and attempt to recruit you to work on this stuff too, for free.
Haskell, 3D printing, Projective Geometric Algebra, Floating Point Units, Property Testing. This is a step in the direction of a haskell based slicing system, for 3D printing.
Julia Longtin is a long time Free Software developer, and 3D printing enthusiast. She has been designing and building 3D printers for over a decade, but has only been working with haskell for the last 8 years, since she discovered ImplicitCAD. An Operations Engineer by trade, Julia comes from the United States, but moved to Berlin with her wife four years ago.