Ultimaker AMA: Let’s talk about Ultimaker CuraThes3D
We know that our community always has burning questions about the world of 3D printing. Our second AMA session was hosted by the team behind Ultimaker Cura, and was a great chance for us to share knowledge and processes of how our world famous software is developed.
If you are new to the concept, AMA is short for “ask me anything”, and is a type of live forum made popular by online communities such as Reddit and LiveJournal. In an AMA session, people can ask anything about a particular topic to a particular person with specific expertise, for a limited time.
At the end of our previous AMA session we asked who you would like to see next, and Ultimaker Cura was a popular request.
Ultimaker Cura AMA
Following the launch of Ultimaker Cura 3.0 and our milestone of 1,000,000 users worldwide, we found it fitting to ask Ultimaker Cura product owner Msuurmond and Ultimaker Cura software engineer Nallath to host the session and answer any questions that you had for them.
Msuurmond (a.k.a. Mark) is the product owner of Ultimaker Cura and is involved with decisions that influence the future of the software on a daily basis. He coordinates the software engineers, assigns tasks, researches potential features, coordinates with external partners, and updates everyone at Ultimaker about new developments.
Nallath (a.k.a. Jaime) is one of the driving forces behind Ultimaker Cura, and has implemented lots of the features used by people on a daily basis. He has been with the company for five years, but has had an interesting, varied background in software engineering, embedded engineering, and game development. He generally knows a lot about everything and is very enthusiastic about what he does. He is very active on the Ultimaker forums (when his workload allows him). If you have ever used the Ultimaker forums, you have probably spoken to him.
Our Ultimaker Cura AMA session was held on October 18th at 4:30pm CEST, and for 90 minutes both Msuurmond and Nallath answered questions that the community put to them, whether it was regarding their work and Ultimaker Cura 3.0, their favorite line of code, or whether it is possible to express the value and investment in Ultimaker Cura in cups of coffee.
Below is a selection of highlights from the session:
The future of Ultimaker Cura
“What is your vision of Cura in 5 years? What can it do (leaving out the secret features of course)?”
“I strongly believe that software can and should be a platform as much as possible. For those of you that know the term, Cura is set up to be really “data driven”. It’s a concept that I learned from game development. Instead of hard coding a lot of things, you try to make a very strong core that dynamically, based on the data it gets, performs, certain behaviour. This is why there is a theme system, plugin system, and a new machine system.
This makes Cura changeable. Based on what data you “feed” it, it can be many things.
I built those things so that as much people can join in on adding features and possibilities. I’d love to see Cura go the same route as other platforms (and if I dare dream, one day it could be something like Android or Drupal!)”
“I think we are then the place to go to if do anything with 3D printing. You can choose your 3D printer you just bought from within Cura, add some material profiles that another user uploaded, repair your 3D scanned models with a plugin that you just installed and got some great feedback from other users.
Each novice user can then print as an expert and experts can easily contribute to the 3D printing world to share their knowledge.”
Adding features to Ultimaker Cura?
Several questions we received from the community were about the policy used to implement new features.
“I strongly believe in focus. If you give a team a very clear goal of what is the most important thing every two weeks, this helps people to make high-quality decisions themselves and that makes work more fun. It also helps if we can prioritize tickets on one list, so that 1 ticket is the most important and that is the one we start working on.
If we have 800 open tickets this does not give focus and nobody can prioritize this.
So, I started by closing the old tickets. Tickets that aren’t updated in 12 weeks go to a bucket where they stay for 4 weeks before they will be closed. The idea behind this was also that we weren’t working on these tickets anyway, so let’s make that very clear to the owner of that ticket. This way the owner still has an option to come to us with new information or takes another route to find a solution for his/her problem.
It also doesn’t mean your problem is not important, only that we believe we have more important problems to fix first.
I hope we will become into a state where we can easily fix all incoming issues immediately and still add functionality, but until we can, I must keep my backlog small (around 50 issues) and focussed.”
Heey Cura team! How many people outside of Ultimaker are working on Cura? And how do you decide which contributions from outside Ultimaker are used and which aren’t?
“It is very cool to see that we have had in total 150 unique contributors on Cura and we receive more and more pull requests each sprint. Of course some are very active (yes you ahoeben) and some companies just add their printer profiles, but it really helps making Cura better.
How we decide on what to work on:
My first question is ‘How much work is this for the Cura team and what is the value for a user?’ If it is very little work and the value is obvious, then let’s just do it. If it is big then I usually ask ‘can we chop this up into smaller steps in such a way that the first small step already adds some value. This is what we are doing with the whole ‘plugin browser’. The first steps are small but being able to release plugins separate of Ultimaker Cura is already handy for us and people who use it.
If we really can chop a feature up into smaller steps we think long and hard about if it really is worth the effort.”
It is not uncommon that in past requests for features, users could influence the process with bribes, such as cookies. At Ultimaker we have certainly seen many different kinds of cookies lying around on different desks in the software department.
Several people were curious about the correlation between the type of cookies sent and the speed of implementation of a request/feature – and where does the quantity of cookies sent stand in this equation?
“I’ve made a rough graph. The left axis can also be used for speed of development. The horizontal axis can be used for either quantity or quality of cookies.”
Python and manual supports in Ultimaker Cura
A popular question was about the implementation of manual supports in Ultimaker Cura:
“Did you have in mind to add manual supports? I think will be a great feature in particular will bring back a lot of users from S3D to use again and more Cura, and the Multiple Processes would be another interesting feature to add. What is the reason that they are not present?”
“I really want the manual supports feature, but I also want it right. There already is something that sort of does it (anti-overhang meshes), but that is far from perfect.
Every so often we have “research sprints” (which have resulted in our packing, improved layer view, etc). It could be one of those things to do in one of those (as in that case you can be a bit more experimental, as it’s okay if it fails).
Another option would be that if someone has a cool engine that generates supports to slap it into a plugin. Cura can already mark an object as a “support mesh”.”
“Like Nallath said, Manual support is something that is difficult to create UX wise. Apart from that I don’t think people want to do manual support. They have to do it because automatic support isn’t up to par (and we still can’t print in mid-air).
I want us to have auto-support that is better than manual support. That might be very difficult to achieve, but I think that if we take small steps that constantly improve our auto support (like the gradual infill in 2.7), we will get there.”
New nozzle sizes?
“For both Cura and Ultimaker, why is it taking so long to introduce new nozzle sizes on the Ultimaker 3?”
“This has quite a bit more to do with hardware and materials. We put a lot of time in getting those profiles right. Getting hardware up and running is also something that takes quite a bit of time.
Cura can already support different nozzle sizes. It does take a bit of in depth knowledge to fully set it up right, but there are some doable workarounds. If you only change the layer width setting, you can already print with those nozzle sizes.”
The development research sprint
Every so often the Ultimaker Cura team have a “research sprint”, where they can work on a feature of their choice. This has created some useful Ultimaker Cura features in the past, such as Ironing.
A lot of our users were interested in how often the research sprint happens, and how free developers are during this sprint.
“At the moment we do it every 4 months, so every 8 sprints there is 1 research sprint. It is a little bit like the Ship-it days from Atlassian, the only requirement is that you present what you have done at the end of those two weeks.”
“Not as often as I’d like. But it’s pretty open; as long as it might result in some improvement for Ultimaker. I’ve worked on model subdivision (cutting up objects automatically so they can be printed) and fan cap detection (see if a fan cap is open or closed by using the camera on the Ultimaker 3). But it can also be a lot different than stuff you’d normally do: some people have also worked on making a tablet based system for our meeting rooms to show if they are available.
This is also where cookies come in, you can always try to convince a developer to put his two weeks of research project into a certain subject. Suggestions are always welcome!”
Ultimaker Cura and accessibility
There is a big difference between recommended mode (several settings) and custom mode (over 200 settings). Several questions came in about who the developers imagine using Cura – new users or super-pro makers?
“The last few sprints we focused on making Cura easier to use for our beginning users, users that are more focussed on the end print that comes out of the printer. In the near future we want to make it easier for the pro users to tweak and add things to Cura from which the beginners and intermediates will also benefit.
If you have suggestions, let us know!”
The release cycle
“What is the idea behind the relatively short periods between Cura releases? Other slicers are updated less frequently with new features and just get bugfix updates in short sequence.”
“I personally think that 8 weeks is a very long period of time, I can’t really remember what I did 8 weeks ago. Apart from that the short releases make it possible for us to adapt very fast to new ideas or challenges, it also shows where our internal bottlenecks are. This way we can put our energy into solving these bottlenecks so we can deliver more value each release.
And forcing ourselves to take ‘small’ steps and releasing gives us the ability to constantly test our assumptions what people will want. We don’t go and build some cool feature for over a year only to discover that nobody out there really needs it.”
After the AMA session, we received this mysterious package at Ultimaker HQ:
Nallath replied: “Whoo, cookies! Soo Rebekah_harper, what features should these be booked on?”
We’d like to thank Nallath and Msuurmond for taking part in the AMA session, as well as everyone who put their questions to them. We hope you got something from it!
You can read about the whole AMA session here.
We think AMA is a great way of sharing knowledge and engaging with the community, and we are always interested in ideas for our next session. We would love to hear your thoughts, so let us know who you would like to host our next session on our AMA forum thread.