PRUSA RESEARCH Komunitní portál pro stovky tisíc uživatelů 3D tiskáren
Světová jednička ve výrobě osobních 3D tiskáren, Prusa Research, se rozhodla pořádně šlápnout do budování komunity nadšenců 3D tisku. Lidé od Josefa Průši milují open source technologie, proto je zaujaly naše zkušenosti s vývojem webových aplikací v Pythonu. Společně jsme vytvořili portál, kde amatérští tiskaři sdílí desítky tisíc modelů, usnadňují si začátky s 3D tiskem nebo se zapojují do designových soutěží.
Komunitní portálWebová aplikace na míruPython3D tiskárny Průša
S čím a proč nás Prusa Research oslovil
Josef Průša posílá z Prahy do světa každý měsíc více než 11 000 3D tiskáren. Aby si
noví tiskaři mohli cokoliv vytisknout, potřebují kromě tiskárny i náplň (tzv. filament)
a správný model – soubor ve formátu STL nebo 3MF doplněný instrukcemi k tisku ve
formátu Gcode.
Vytvoření vlastního modelu vyžaduje zkušenosti, proto začátečníci obvykle využívají modelů
od ostřílených tiskařů. Aby Prusa Research podpořil rozvoj komunity, rozhodli se vybudovat globální portál PrusaPrinters, kde
si může každý 3D tiskař vytvořit profil,
pochlubit se svým modelem,
sdílet ho s ostatními,
vyměňovat si zkušenosti,
nebo soutěžit v designových výzvách (např. o nejlepší model lampy, antické
sošky nebo pomůcky pro zahradničení).
„Bylo pro nás také důležité, abychom si s dodavatelem
rozuměli stylem práce – aby pro něj nebyla administrativa a procesy důležitější než
samotný výsledek.“
Martin Bach, Content Director at Prusa Research
O Prusa Research
Výrobce a prodejce 3D tiskáren a jeden z nejrychleji rostoucích startupů
střední Evropy. Prusa Research vyrobí a prodá více než 11 000 tiskáren měsíčně
zákazníkům z celého světa. Firma buduje silnou a aktivní komunitu tiskařů,
kteří na globálním portálu PrusaPrinters.org sdílejí modely, soutěží o nejlepší návrh v různých výzvách a pomáhají si v 3D
tisku.
1
světová jednička ve výrobě osobních 3D tiskáren
160
zemí světa, kde tiskárny dělají radost lidem
44 000+
modelů, které tiskaři sdílí na komunitním portálu
290 000+
uživatelů portálu za měsíc
Definovali jsme cíle projektu a pustili se do technické analýzy webové aplikace
Na začátku spolupráce jsme si ujasnili cíl. Byl to komunitní portál vyvinutý open source
technologiemi, který usnadní 3D tiskařům začátky. Portál musí:
být škálovatelný, aby fungoval i při několikanásobném nárůstu
počtu tiskařů,
přístupný s rychlou odezvou pro uživatele od New Yorku po Sydney,
zvládat peaky, tj. bezchybně fungovat i ve chvílích, kdy dochází
například k oznámení technologické novinky a uživatelé chtějí být u toho
(load balancing),
mít chytrý autentizační mechanismus, který zákazníkům Prusa Research
usnadní registraci a přihlášení a bude využitelný i v ostatních
službách Prusa Research (e-shop, forum),
podporovat interakci tiskařů (skupiny, fórum),
umožňovat snadné nahrávání 3D modelů
a také jejich vyhledávání – ať už fulltextem, filtrováním, nebo přes
jednotlivé tiskaře v mapě.
Zajímavost o 3D tisku
Nejčastějším formátem 3D objektů je STL. Ten však neobsahuje tiskové informace, před
tiskem je tedy nutné model ručně zpracovat, tzv. slicovat. Pokud však autor modelu
přidá Gcode soubory pro různé typy tiskáren, můžete tisknout ihned po stažení modelu
i bez slicování.
Architektura portálu
Požadavky jsme prověřili pečlivou technickou analýzou. Jedním z klíčových přínosů této
fáze bylo rozhodnutí, jak přistoupit k architektuře portálu.
Díky pečlivé analýze jsme mimo jiné zvolili vhodnou architekturu celého portálu.
„S ohledem na robustnost systému, jsme zvolili multi
serverovou High Availability (HA) architekturu, využívající externích služeb, kterou lze
jednoduše škálovat na miliony uživatelů napříč kontinenty.“
Jan Tezner, CTO COex
Python, framework Django, Angular a další technologie
Sáhli jsme po ověřených technologiích, které pohání aplikace jako Youtube
nebo Seznam.
Backend aplikace je napsaný v programovacím jazyce Python, s
využitím osvědčeného webového frameworku Django,
pro databáze jsme použili PostgreSQL,
frontend pohání framework Angular od Google,
komunikaci mezi frontendem a backendem zajišťuje API GraphQL,
a obrázky se uživatelům zobrazují velmi rychle díky CDN službě AWS CloudFront.
Více o tom, jaké nástroje a technologie v COexu používáme, se dozvíte na stránce o webových technologiích.
Hladký průběh projektu díky agilnímu vývoji a mixovanému týmu s klientem
Vytvořili jsme mixovaný tým, do kterého jsme zapojili zaměstnance Prusa Research. Tím jsme zrychlili komunikacia zefektivnili vývoj. Obě strany měly neustále pod kontrolou, že vyvíjíme software, který bude fungovat tak,
jak má.
2017
Listopad
První poptávka a technická analýza
2017
Prosinec
zahájení vývoje
2018
Červen
dokončení vývoje MVP
2019
Únor
dokončení verze 1.0
2019
Duben
spuštění první veřejné verze
2021
Dodnes
aktualizace, maintenance, rozvoj
Postup prací na komunitním portálu PrusaPrinters.org
Co globální komunitní portál umí?
Uživatel si na 3 kliknutí stáhne jakýkoli z desítek tisíc 3D modelů.
Díky chytrému filtrování lze vyhledávat printy podle typu tiskárny, filamentu,
průměru trysky 3D tiskárny, hmotnosti objektu nebo třeba rychlosti vytisknutí.
Nahrávání nových 3D modelů je rychlé díky validaci, kterou
dělají algoritmy – kontrolují, jestli jsou STL, 3MF i Gcode soubory ve správném formátu.
Prusa Research může organizovat designérské výzvy o nejlepší modely.
Tiskaři mohou na mapě najít majitele 3D tiskáren ve svém okolí, požádat je
o pomoc, vytvářet něco společně nebo jim zadat tisk na zakázku.
Při vývoji jsme se zdokonalili v práci s k-means v PostgreSQL, Leaflet a mapou
Mapa uživatelů portálu Prusaprinters.org v Singapuru.
Abychom dokázali svižně zobrazovat desítky až stovky tisíc uživatelů a míst,
vytvořili jsme serverovou implementaci clusteringu (shlukování bodů), která využívá
algoritmu k-means v PostgreSQL. Tím jsme dosáhli rychlosti načítání obsahu mapy,
které by nebylo při použití standardních frontendových řešení možné.
Museli jsme se vypořádat i s nečekaným problémem anonymizace polohy. Když jsme vytvářeli předběžnou mapu všech tiskáren, počítali jsme, že přibližnou polohu uživatele
získáme s pomocí PSČ adres doručení, ale zjistili jsme, že v zemích jako Velká Británie
nebo Singapur vyčtete podle PSČ téměř přesnou adresu uživatele. Proto jsme aplikovali posun GPS souřadnice daného
umístění v mapě náhodným směrem, a tím uživatelská data anonymizovali.
Výsledky projektu
Prvních tisíc uživatelů se na portál registrovalo v řádu hodin po spuštění. Kvůli
velkému zájmu jsme upravili mailing systém, aby v extrémně krátkém
čase zvládl rozesílku podstatně většího množství e-mailů, než s jakým jsme počítali.
Po 9 měsících se komunita rozrostla na 44 000 uživatelů, kteří do webové aplikace nahráli
více než 10 000 3D modelů.
K listopadu 2021 používá portál PrusaPrinters 290 000 uživatelů měsíčně, registrovaných je 143 567 tiskařů. Ke stažení je zde 48 460 printů.
Do budoucna s Prusa Research plánujeme doplnění komunitního portálu o nové funkce, jako
je sdílení, interakce, zeď a další prvky sociálních sítí. Předávání zkušeností a sdílení
modelů mezi 3D tiskaři tím bude fungovat ještě lépe.
290 000měsíční návštěvnost
143 567registrovaných tiskařů
48 460publikovaných printů
„Zákaznický portál PrusaPrinters.org je náš dosud největší
webový projekt. Soustředíme se primárně na vývoj HW a SW, ale vývoj webu jsme se
rozhodli realizovat externě – ve spolupráci s COexem. Po 2 letech spolupráce
hodnotím tohle rozhodnutí velmi pozitivně.
COex přistupuje k vývoji kreativně a iniciativně. Rozumíme si i stylem
práce – procesy a administrativa pro ně nejsou důležitější než samotný výsledek.
Výsledky ankety, kterou jsme mezi uživateli portálu uspořádali pár měsíců po spuštění,
dokazují, že jsme společně odvedli dobrou práci. Čeká nás hodně zajímavého vývoje do
budoucna. Těším se na to.“
Martin Bach, Content Director at Prusa Research
Máte zájem o nezávaznou konzultaci, nebo se chcete jen na něco zeptat?