Komunitní portálWebová aplikace na míruPython3D tiskárny Průša
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ěží.
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
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.
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í:
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í.
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.
Sáhli jsme po ověřených technologiích, které pohání aplikace jako Youtube nebo Seznam.
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.
Vytvořili jsme mixovaný tým, do kterého jsme zapojili zaměstnance Prusa Research. Tím jsme zrychlili komunikaci a zefektivnili vývoj. Obě strany měly neustále pod kontrolou, že vyvíjíme software, který bude fungovat tak, jak má.
První poptávka a technická analýza
zahájení vývoje
dokončení vývoje MVP
dokončení verze 1.0
spuštění první veřejné verze
aktualizace, maintenance, rozvoj
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.
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.