3D Printing

Reimagining prototyping

Open-Source 3D Printing Company Making Waves with ICS

3D printing is revolutionizing society. That’s not hyperbole. From inexpensive 3D-printed tiny homes to next-gen printed automobiles to affordable, articulated prosthetic hands, the applications for this technology are transformative. And this manufacturer is on the front lines as the developer of its own line of desktop 3D printers.

Challenge

Committed to open-source development — all of the company’s hardware and the software for their product designs are available under open-source licenses — the manufacturer makes its technology accessible to a broad range of users who in turn use it to conceive, create and cost-effectively manufacture prototypes and saleable products. When the company was ready to create an enhanced 2.0 version of its printer software, they reached out to Integrated Computer Solutions, Inc. (ICS) to augment their development team. Why ICS? The manufacturer wanted to use Qt for development. As the largest source of independent Qt expertise in North America, ICS was the logical choice.

The assignment was to develop v2.0, a customized version of the popular open-source Cura software, which is used to run the company’s 3D printers. The challenges facing the ICS team were multilayered. Fundamentally, the manufacturer wanted to make life easy for their users by developing more robust software that could capably support the manufacturer’s entire line of printers, as well as the 3D printing filament materials sold by both the company and their partners. But they also needed assistance automating the build process, conducting extensive quality assurance (QA) testing, and developing a user-friendly ecommerce website to sell the printers and filaments to consumers. While each of these aspects of the project could comprise an entire article, here’s an overview.

Solution

Software Development

Cura is a very large 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. The development team customized Cura for the manufacturer’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 v2.0 release, the ICS team incorporated a more appealing user interface, more slicing options, and enhanced print quality.

Build-Process Automation

As an open-source product the customer’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, the ICS team 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.

QA Testing

Speaking of testing, ICS was heavily involved with QA. Prior to connecting with ICS, the manufacturer had not handled QA comprehensively, with the developers and beta testers focusing on just a few hardware configurations, and only looking at the Linux platform. As the manufacturer’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.

In ICS’ innovation lab, the development team set up an array of the manufacturer’s 3D printers and computers — enough equipment to test the gamut of hardware and software combinations the company supported. 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.

The daily testing verified all of the basic functions of the Cura application, culminating with a simple 15-minute test print. A comprehensive test of the entire application could be completed on all platforms in about a day. This revamped QA process was so effective that the manufacturer was able to confidently release Cura 2.6 after a brief beta test cycle.

E-Commerce

ICS helped not only with product development and testing, but with improving the customer’s e-commerce website as well. The manufacturer had been struggling with the online order-handling functions, regularly experiencing lockups that required frequent server reboots. ICS identified the cause of the issues, upgraded various third-party software components, and implemented a number of enhancements to improve the user experience. These efforts paid off when the manufacturer’s website performed flawlessly in 2017 on both "Black Friday" and "Cyber Monday," when the company recorded the largest sales volume in the company’s history.

Result

With product development and testing firing on all cylinders, the development team is now actively working on the next release, demonstrating the customer’s continued commitment to 3D printing innovation and collaboration.