Prusa Research global portal for sharing 3D printer models and print files
The 3D printer market is growing fast, and Prusa Research printers are one of the most sought after products in the industry due to their open hardware concept. The company sells thousands of new printers to more than 160 countries worldwide every month, and its customers form a powerful community that devises, designs and prints a huge number of 3D objects. The objects are printed using design files (most often in STL or 3MF formats) and “instruction files”— which specify printing instructions for a specific 3D printer. These “instruction files” are referred to as Gcode files, and users create them in specialized software. Prusa Research now comes with a portal where the files can be easily shared. Other users can easily download them to the SD card or print them without complex modifications.
In addition to file sharing, the new portal acts as a place to bring together a community of 3D printing fans, to exchange tips and ideas, share models, or simply inspire each other. The service combines a community server with social network elements. End-customer service design also greatly facilitates the first steps with a 3D printer, encouraging creativity and the sharing of work output, information exchange, and overall interaction among the customer community.
“Unlike other portals dedicated to sharing 3D design files, users of PrusaPrinters do not have to work with the downloaded file and can print directly. This will make it much easier for many people to get into 3D printing”.
From the very beginning, we focussed on the need to build a dynamically scalable system that could grow to millions of users in the future. We chose an architecture that uses AWS and operates primarily in the European data centers (given the company's headquarters), but as the project grows, it is easily extensible to other regions. In addition, the entire system uses a large number of external services from Amazon, Google and others to provide the appropriate flexibility and facilitate a range of scalability operations.
One of the main features of the new service is uploading design files to print 3D objects. The most common format is STL, but it does not contain printing instructions for the particular model of a printer, so files usually need to be manually processed before printing. That is why the portal allows direct uploading of Gcode files for each type of printer. These files require no further modifications and the model can be printed immediately. This greatly increases the availability of 3D printing for general users. A model shared by a user on one side of the world can literally be printed in minutes on a 3D printer on the other side of the planet. Thanks to the new service, 3D printing fans can watch design stars in the industry or use the internal marketplace to sell their 3D designs in the future.
As a software basis for the backend of the application, we chose our favorite Python—the proven Django framework, Postgres and highly regarded GraphQL for communication between the front end and back end. In 2018, this API query language was not being used so much, and with time it turned out to be the right choice as the number of projects built in this way is growing rapidly. Another important part of the system is Elasticsearch, which we have been using for a long time on projects with fulltext search and server side caching. Finally, the frontend is driven by modern Angular framework from Google developers.
“PrusaPrinters.org is our largest web project to date. We primarily focus on hardware and software development - which is why we decided to develop the website externally, in cooperation with COEX. After almost two years of cooperation, we consider this decision very positive. COEX approaches development proactively and creatively, which corresponds to the style of our work, where processes and administration are never more important than the outcome itself. The results of a survey that we conducted among users a few months after launch clearly demonstrate that we and COEX did a good job together. It also means that we still have lots of hard work ahead to meet the high expectations.”