Aleph Objects asked ICS to help develop v2.0, a customized version of the popular open-source Cura software used to run the manufacturer’s LulzBot printers. The challenges facing ICS were multilayered. At the core, Aleph Object’s wanted to make life easy for their users by developing robust software that could capably support its entire line of printers, as well as the 3D printing filament materials sold by both the company and its partner vendors.
Aleph Objects also needed assistance automating the build process, conducting extensive quality assurance (QA) testing, and creating a user-friendly ecommerce website to sell the printers and filaments direct to consumers. While each of these aspects of the project could comprise an entire article, here’s an overview.
Cura is an expansive application implemented using Qt, which allows the software to run on multiple platforms. Because Cura uses several third-party libraries that are implemented in Python, C++, C, and even FORTRAN, the ICS team needed to leverage broad domain knowledge related to 3D printing.
ICS customized Cura for Aleph Object’s branded hardware, optimizing settings for the specific printer model and filaments a user selected. The updated software prepares files for printing and allows users to easily control the printer’s operation. As part of the new release, ICS incorporated an attractive and modern user interface, added more slicing options, and enhanced print quality.
As an open-source product, Aleph Object’s software needed to run well on Linux, Windows and Mac platforms. That meant for each platform developers had to provide packaged binaries: dmg files for macOS; graphical install wizards for Windows; and, for Linux, packages in deb format for both Ubuntu and Debian Linux distributions.
To improve product quality and eliminate redundant development tasks, ICS set up build servers for all of these platforms, automating simple, repeatable tasks. Here’s how it works: the server pulls code from the git repository, builds it on a suitable machine, and then uploads packages to a download server. By automating this process, ICS made available consistent builds on a daily basis for both release and internal testing purposes.
Speaking of testing, ICS was heavily involved with QA. Prior to connecting with ICS, Aleph Objects had focused QA only on a few hardware configurations and strictly the Linux platform. Because the company’s software supports multiple models of printers with a wide variety of possible hardware configurations, running on multiple platforms, a more formal QA process was needed.
To achieve that, the development team set up in ICS’ innovation lab an array of 3D printers and computers — enough equipment to test the gamut of hardware and software combinations Aleph Objects supports. The team wrote a formal test procedure, and included in the test matrix 25 different combinations of printer hardware, computer hardware, platform, operating system version and screen resolution.
Daily testing, which culminated with a simple 15-minute test print, verified all of the basic functions of the Cura application. Developers also could complete a comprehensive test of the entire application on all platforms in about a day. Thanks to the revamped QA process, Aleph Objects was able to quickly and confidently release Cura 3.2 after a brief beta test cycle.
ICS helped not only with product development and testing, but with improving Aleph Object’s ecommerce website as well. They had been struggling with online order-handling functions, regularly experiencing lockups that required frequent server reboots. ICS identified the cause of the problems, upgraded various third-party software components, and implemented a number of enhancements to improve the user experience.