Pages

Friday, August 02, 2013

New open source slicer: CuraEngine!

"Cura is the name of a divine figure whose name means "Care" or "Concern""
Source: Wikipedia

Ever heard of Cura? Besides a divine figure, it's a 3D printing solution that is meant to be useful and usable to both beginning and advanced 3D printer users. David Braam is full-time developer of Cura, at Ultimaker. We recently released version 13.06, which was a major update. Compared to the previous version it looked... well ...exactly the same. But on the back-end, the engine that generates the toolpath from the mesh-surface model (e.g. the STL or AMF) was replaced by a new engine, written entirely from scratch.

The short summary is for this initial release:
  • Faster slicing
    What took hours now takes seconds. Also, this enabled us to create the following two features.
  • On-the-fly model preparation
    There is no slicing button anymore because it starts processing right-away.
  • Live tweaking of slicing parameters
    Because you see toolpaths re-appear whenever you change a setting, you can quicky find the optimal settings for your print job.
  • Model fixing
    The engine can fix major problem in a model.
  • Multiple materials
    The engine was built from the start with multi-head printing in mind.
  • Cross-platform
    The Engine is written in C++ and released for Linux, Windows & Mac. Compilation on these and other platform should be trivial.
  • Open source
    The license is Affero GPLv3.
The main goals for this new engine were to be able to implement innovative features that improve the quality of 3D printed objects, and to create a code structure that encourages further development. An intermediate goal was to release it with the baseline feature set that is common in slicing engines, including the ability to robustly handle many kinds of (problematic) models and generate support structures.

A nice side effect of the new slicer is that it turns out to be fast, really fast. We decided to do something unconventional: removing the "Prepare for printing" button from Cura's interface entirely. It will just start slice the model in the background (with a low-priority). If you change the layer height or any other setting, it will just restart. If you don't change settings, it may already have finished before you're thinking to save the resulting G-Code to an SD card or print directly through USB. An extra, pretty useful, side-effect is that you can inspect the generated toolpath, change the settings and see the new toolpath preview appear automatically and quickly, without pushing a button.

Because Cura is developed to work with the Ultimaker and most other RepRap-based designs, we'd like to ask you what you think of the new engine. Also, because, like Cura (source), the Engine is released under the Affero GPL version 3, we'd love to see anyone benefit from this new solution and possibly help us improve it further.

Below is a 45-minute presentation on the Cura release, focusing mostly on the new Cura Engine.


Below is the interview with David by Andrew of 3DHacker.com:



9 comments:

  1. My initial thought when I read about the introduction of yet another slicing engine was "how do I know it is doing a good job of the fundamentals", in terms of being able to reliably produce a print that is dimensionally accurate to the input model.

    Is there some description of the model used to determine these fundamentals? For example, does it incorporate the factors described in http://hydraraptor.blogspot.co.nz/2011/03/spot-on-flow-rate.html ?

    ReplyDelete
  2. Please have a look at the source code to see whether it satisfies your fundamentals.

    Every system like this is garbage in garbage out. But when the inputs are good (e.g. Proper swell factor) for ABS, we've found we get really good tolerances.

    I think end results on actual printers are just as important.

    Also, one of the things I consider quite fundamental is that layers with two walls are glued together with an infill, even if a full width infill wouldn't have fit. CuraEngine does that.

    ReplyDelete
  3. Lol, reread my comment... I wasn't trying to say that it was good just for ABS... PLA, and other materials work fine as well.

    ReplyDelete
  4. "Proper swell factor for ABS"?

    If you are referring to die swell that doesn't have any affect on flow rate maths.

    I use the same maths for all plastics I have printed.

    ReplyDelete
  5. Love cura, and was extremely surprised when I used the latest version how fast it was.

    ReplyDelete
  6. Anybody's success with Nophead cal.stl (from mendel90 package) for testing of nutв fitting (ABS printing)?

    ReplyDelete
  7. It tried it, but like Slic3r and Kissslicer, it gets the nut traps too small when printing ABS.

    However, since it is written in a sensible language and is opensource (unlike the aforementioned) I should be able to fix it.

    Generally it is impressive but it needs a few fixes to work with non-Bowden machines and machines with the origin in the centre of the bed.

    ReplyDelete
  8. I had a look at the source code and it appears to assume all extrusions are rectangular, so the outlines will come out thicker than it allows for, hence why holes are too small.

    ReplyDelete