PRUSA RESEARCH Community portal for hundreds of thousands of 3D printer users
The world leader in the production of personal 3D printers, Prusa Research, has decided to focus on building a community of 3D printing enthusiasts. People at Josef Prusa love open-source technologies, therefore they were impressed by our experience in web application development in Python. Together, we have created a portal where amateur enthusiasts share tens of thousands of models, help each other in acquiring a background in 3D printing or participate in design competitions.
community portalcustom web applicationpython3d prusa printers
With what Prusa Research addressed us and why
Every month, Josef Prusa dispatches more than 11,000 3D printers from Prague all over the
world. In order for new 3D community members to be able to print anything, they need - besides
a printer - also a cartridge (a filament) and a correct model - a file in STL or 3MF format
supplemented by instructions for printing in Gcode format.
Creating one´s own model requires experience, so beginners usually use models from
experienced fellow printers. To support community development, Prusa Research decided to
build a global PrusaPrinters portal, where any 3D enthusiast can
create a profile;
show off their model;
share it with others;
exchange experience;
or compete in design challenges (e.g. for the best lamp model, antique statues or
gardening aids)
„Working style of the partner was one of the key factor for
us - so that the administration and processes were not more important to them than the
result itself.“
Martin Bach, Content Director at Prusa Research
Who is Prusa Research
Manufacturer and seller of 3D printers and one of the fastest growing start-ups in
Central Europe. Prusa Research manufactures and sells more than 11,000 printers per
month to customers around the world. The company has been building a strong and active
community of people who share models on the global PrusaPrinters.org portal, compete for
the best design in various challenges and help each other in 3D printing.
1
World leader in the production of personal 3D printers
160
countries of the world where printers make people happy
44 000+
models shared on the community portal
290 000+
portal users per month
We defined the project objectives and started a technical analysis of the web application
At the beginning of the cooperation, we clarified the objective. It was a community portal
developed using open-source technologies aimed at making it easier for those getting started.
The portal must:
be scalable to work even with a large increase in the number of users;
be accessible with quick response for users from New York to Sydney;
be able to handle peaks, i.e., work flawlessly even at moments when,
for example, technological news is announced and users want to be there (load
balancing);
have a smart authentication mechanism that will make it easier for Prusa
Research customers to register and log in, and that can be used in other Prusa Research services
(e-shop, forum);
support interaction between 3D community members (groups, forums);
allow easy uploading of 3D models;
and also allow searching for them – either by full-text, filtering, or through
individual printers on the map.
Interesting fact about 3D printing
The most common format for 3D objects is STL. However, it does not contain printing
data, so before printing it is necessary to manually process the model, to “slice” it.
However, if the model’s creator adds Gcode files for different types of printers, you
can print immediately after downloading the model without slicing.
Portal architecture
We ran the requirements through careful technical analysis. One of the key benefits of this
phase was the decision on how to approach the portal architecture.
Thanks to a careful analysis, we have, among other things, chosen a suitable architecture for the entire portal
„Given the robustness of the system, we have chosen a
multi-server High Availability (HA) architecture using external services that can be
easily scaled to millions of users across continents.“
Jan Tezner, CTO COex
Python, Django framework, Angular and other technologies
We have reached for proven technologies fuelling applications such as YouTube or Instagram.
Application backend is written in the Python programming language,
using the proven Django web framework,
we used PostgreSQL for databases,
frontend is powered by the Angular framework by Google,
communication between the frontend and the backend is provided by the GraphQL API,
full-text search works thanks to Elasticsearch,
we generate image previews in the AWS Lambda service
and images are displayed to users very quickly thanks to the AWS CloudFront CDN service.
You can find out more about the tools and technologies we use at COex on the web technologies page.
Smooth project progress thanks to agile development and mixed team with client
We created a mixed team in which we involved Prusa Research employees. This speeded up communication and streamlined development. Both sides were constantly in control of the software being developed so that
it would work as intended.
2017
November
First request and technical analysis
2017
December
Start of development
2018
June
MVP development completed
2019
February
Completion of version 1.0
2019
April
First public version launched
2021
To this day
Updating, maintenance, development
Progress of work on the PrusaPrinters.org community portal
What can the global community portal do?
The user can download any of the tens of thousands of 3D models in 3 clicks.
Thanks to smart filtering, users can search for prints by printer type, filament, 3D
printer nozzle diameter, object weight or print speed.
Prusa Research can organize design challenges for the best models.
Uploading new 3D models is fast thanks to validation algorithms - these check
if the STL, 3MF and Gcode files are in the correct format.
Community members can find owners of 3D printers in their area on the map,
ask them for help, create something together, or place an order for printing.
During development, we improved our work with k-means in PostgreSQL, Leaflet and map
Map of Prusaprinters.org users in Singapore.
To be able to quickly display tens to hundreds of thousands of users and sites, we
created a server implementation of map points clustering which uses the k-means
algorithm in PostgreSQL. Thus, we have achieved a map loading speed that would not be
possible using standard front-end solutions.
We also had to deal with the unexpected issue of location anonymization. When we created a preliminary map of all the printers, we expected that we would get the
user's approximate location using the zip code of the delivery address, but we found that
in countries like the United Kingdom or Singapore, you can tell the user's almost exact address from the zip code. Therefore, we applied a shift in the location's
GPS coordinate in the map in a random direction, thus anonymizing the user data.
Project outcomes
The first thousand users registered on the portal within hours of launch. Due to the
keen interest, we modified the mailing system so that in an extremely
short time they could send a significantly larger number of e-mails than we had
expected.
After 9 months, the community has grown to 44,000 users who have uploaded more than 10,000
3D models to the web application.
As of November 2021, the PrusaPrinters portal is used by 290,000 users per month, with 143,567 members registered. There are 48,460 prints to download.
In the future, Prusa Research and us plan to add new features to the community portal, such
as sharing, interaction, news feed and other social network elements. This will make the
transfer of experience and model sharing between 3D printing enthusiasts work even better.
290 000monthly traffic
143 567printing enthusiasts
48 460published prints
„The PrusaPrinters.org customer portal is our largest web
project to date. We focus primarily on HW and SW development, but we decided to implement
web development externally - in cooperation with COex. After 2 years of cooperation, I am
very positive about this decision.
COex approaches development creatively and proactively. We are also on the same wavelength
regarding the style of work - processes and administration are not more important to them
than the result itself.
The results of a survey we conducted among the users of the portal a few months after the
launch prove that we did a good job together. We have a lot of interesting development
ahead of us. I look forward to it.“
Martin Bach, Content Director at Prusa Research
Would you like a non-binding consultation or just want to ask something?