My 3d DLP printer software Monkeyprint software seems to gain momentum. Recently it was tested by 3d desktop printer manufacturer Aleph Objects Inc., resulting in some nice improvements and bug fixes!
When I first published Monkeyprint I wasn’t sure if open source was the right way to go. For quite some time, nobody seemed to use the program, which was mainly because of it’s beta status, some bugs, missing features etc. And to be honest, if I were looking for a stable, out-of the box DLP printer software, I wouldn’t have used it as well, simply because it wasn’t ready.
However, things changed in the last months; Monkeyprint is maturing due to the G-Code support and the prospect of a Windows version. Another very positive aspect that reassured me in my decision to go open source was a recent collaboration with Colorado based 3d printer manufacturer Aleph Objects Inc.
They started testing Monkeyprint DLP using an Autodesk Ember DLP printer (see some print results below) and, when bugs came to light, actively contributed to the project by providing fixes and pushing them into my Github repository. That’s how open source can work: people working together from all around the world to make better software!
Monkeyprint DLP now with VTK 6 support
Youness Alaoui, a freelance software engineer contracted by Aleph Objects was assigned to the testing and made a major contribution. As he uses the 3d visualization library VTK 6 on his development system (as opposed to VTK 5 currently implemented in Monkeyprint) he immediately started to port Monkeyprint to VTK 6 — an issue that had been opened some time ago but which I never found the time to solve. So, Monkeyprint now runs with VTK versions 5 and 6. Thanks Youness!
No more slicer crashes
Another issue were crashes during slicing. They didn’t happen very often on my machine as my test model (mainly the Blender monkey head that I provide with Monkeyprint) had been pretty small — which reduces the number of slices and therefore the possibility of crashes. This made it very hard to debug for me…
Aleph Objects developer Nicholas Tait however thought bigger. For testing he used a pretty detailed Eiffel tower model in combination with a layer height of 0.01 mm — resulting in about 8800 slices. This crashed Monkeyprint almost every time. Youness suggested a race condition between slicer threads and with this info I managed to fix that issue. Since then, Monkeyprint didn’t crash during slicing even once.
Memory usage during slicing and slicer speed
The large Eiffel tower model with its 8800 slices also lead to a different problem: huge memory usage during slicing. In fact, slicing the Eiffel tower with an XY-resolution of 800 x 800 pixels resulted in about 12 gigabytes of memory eaten by Monkeyprint within seconds — which will cause a system with less RAM to freeze instantaneously. I didn’t find this bug because I never used large models like that and also didn’t opt for the insane Z-resolution of 0.01 mm 😉 The fix for this issue is currently in development: the cure is to simply cap the number of preview slice images using a user definable amount of memory. With the maximum number of preview slices fixed, the preview layer height will simply be increased accordingly to fit larger models. The full resolution print slices with the actual print layer height will be saved to disk instead.
During this development I’ve also just found a different method of generating the slice images resulting in a speed-up of the slicer. In the current version some slices with lots of details in the Eiffel tower take about 8 seconds to generate using the current approach (based on VTK) — which is insane. However, slice generation time can be reduced by my new code (using OpenCV) to as little as 0.06 s. That’s a factor of 133! The new code will be in the next release when the memory issue is solved as well.
Open source for the win!
Well, I’ve been skeptical of open source before but, as the last weeks have shown, it provides great possibilities! Getting in touch with professional developers was a cool new experience for a hobbyist programmer like me. And more importantly, I’ve learned that shared development can simply lead to better software faster. So going open source definitely was the right choice for me. Thanks Aleph Objects 🙂
If you like this (or if you don’t), comment below and subscribe to be notified about the next updates on Monkeyprint DLP!