Po několika letech vývoje, zkomplikovaného pandemií, narušením dodavatelských řetězců a válkou v Evropě, jsme dnes oznámili naší novou 3D tiskárnu Original Prusa MK4. Před dvěma týdny jsme začali posílat do světa první XL tiskárny. Takřka za rohem je vydání finální verze PrusaSliceru 2.6 s organickými supporty a hromadou dalších skvělých funkcí. Náš firmware tým dokončuje vlastní implementaci input shapingu (potlačení vibrací) pro MK4 a XL. A vedle toho je tady i nové MMU3, s kompletně přepsaným firmware a řadou vylepšení.

Všechno výše zmíněné, stejně jako spousta dalších věcí, které v Prusa Research už víc jak 10 let děláme, by nikdy nevzniklo bez skvělé 3D tiskařské komunity a open source filosofie. A pokud ano, vypadalo by to úplně jinak. Přesto mě vydání nových tiskáren a softwaru donutilo znovu se zamyslet nad tím, jaký je stav open source ve světě 3D tisku v roce 2023. Jak moc je udržitelný, jak s ním nakládá naše konkurence, co přináší komunitě, a v čem nás, jako vývojáře, naopak trápí. Tento článek berte jako výzvu k diskusi, jako prvotní výkop, díky kterému se nám (doufejme) povede otevřít cestu k novému pohledu na spojení open source licencí a vývoje komerčně prodávaného hardwaru.

Než začnu, chtěl bych jasně říct několik věcí, abych předešel nedorozuměním:

  • Za našimi kořeny v open source stojíme a budeme stát dál.
  • Domácí 3D tiskárny od Prusa Research budou vždy open source. Nadále hodláme zveřejňovat 3D modely plastů a zdrojový kód firmwaru.
  • Naše tiskárny nebudeme uzavírat pro výrobce komponent třetích stran, výrobce neoficiálních upgradů a rozšíření.
  • PrusaSlicer bude vždy open source.
  • Naše investice do vývoje PrusaSliceru a firmware budou dál pokračovat v nezměněné, nebo vyšší míře.

Kdo mě zná delší dobu ví, že jsem se vždycky vymezoval proti firmám, které se postupem času odvrátily od open source komunity a svůj vývoj postupně uzavřely. Nechci, aby Prusa Research šla stejným směrem. 3D tiskařský svět byl od začátku svázán patenty velkých společností a projekty jako RepRap mu pomohly se z tohoto sevření vymanit. Když pak v roce 2014 vypršely některé důležité patenty Stratasysu, mohl se open source vývoj konečně rozjet naplno.

  

Kdokoliv se dnes pustí do vývoje čehokoliv kolem 3D tisku, těží nejen ze starých patentů, ale i z více jak 10 let kontinuálního open source vývoje plného složité optimalizace a iterací, na kterém se podílely a podílejí stovky jednotlivců a desítky firem. Představa, že během jednoho nebo dvou let vyvinete 3D tiskárnu, firmware a software k ní na zelené louce, je naprosto iluzorní. Vždy budeme stát na ramenou lidí jako Adrian Bowyer (zakladatel RepRap hnutí), Alessandro Ranellucci (původní autor Slic3ru), David Braam (původní autor Cury), Scott Lahteine (maintainer Marlina) a mnohých dalších. Ti všichni (a desítky dalších) si zaslouží minimálně to, aby se dočkali veřejného uznání a poděkování kdykoliv, kdy někdo využije jejich dílo. A tím se pomalu dostávám k tomu, co mě zneklidňuje.

Open source hnutí spoléhá na to, že všichni zúčastnění hrají podle stejných pravidel. Neobejde se bez vzájemného respektu, pochopení a snahy o společnou věc. Když se objeví někdo, kdo si pravidla ohýbá podle sebe nebo je nepokrytě porušuje, komunita mu to dá jasně najevo. V minulosti jsme zažili spoustu protestů a bojkotů, které přinutily i velké firmy k zamyšlení nad tím, jak s open source dědictvím zacházejí. V posledních letech mám ale pocit, že se situace mění. Firem, které porušují a obcházejí pravidla je stále víc a komunita se proti jejich počínání nestaví už zdaleka tak odmítavě jako kdysi. Po drobné internetové bouři se situace uklidní, kód zůstane uzavřený (nebo se otevře jen část, a to ještě nedostatečně, viz níže) a po pár týdnech se na vše zapomene.

Ke mně se mezitím dostávají informace o firmách, které si začaly žádat o lokální patenty a ochranné známky vycházející z open source vývoje (divili byste se, kolik z nich má v názvu „Prusa“). O firmách, ve kterých vlastní podíly i státní firmy a instituce, a které využívají open source kód ve svých uzavřených systémech a porušují tak licence. 

Ne všechna porušení open source lze snadno prokázat, ale když se podíváte do historie a do jiných oborů, zjistíte, že by se tak nestalo poprvé. Jeden příklad za všechny jsou třeba solární panely – původní vynálezy a postupy byly postupně okopírovány čínskými firmami, a ty, za pomoci státních subvencí a daňových úlev, vytlačily během několika let z trhu veškerou konkurenci. Dnes už solární panel jiné než čínské výroby nemáte prakticky šanci koupit.

Snad se nám něco podobného ve světě 3D tisku nestane. Faktem ale je, že už v tuhle chvíli jsme asi poslední velkou firmou na 3D tiskařském trhu, která hraje plně podle open source pravidel. A já bych byl opravdu rád, kdyby nás bylo víc.

Současná situace je celkem frustrující i pro naše vývojáře. Open source vývojem jsme strávili léta, ať už přispíváním do původních repositářů nebo poté ve vlastních odvozených projektů hardwaru, firmwaru a sliceru. Náš PrusaSlicer tým má 13 lidí a firmwarový tým 21 – to jsou statisíce člověkohodin práce jen za posledních pět let.

Za dobu, co jsme s bráchou začali s 3D tiskem, jsme přišli s celou řadou příspěvků, které dnes najdete prakticky na každé domácí 3D tiskárně (bez ohledu na to, zda je open-source, nebo ne). Ať už jde o vyhřívanou podložku řešenou pomocí PCB, odjímatelné tiskové pláty, práškové PEI nanášené přímo na kov, automatický Mesh Bed Leveling pomocí indukční sondy, power panic, systém pokročilé teplotní ochrany, automatickou kalibraci vychýlení os, sensorless homing a mnoho dalšího – nikdy by mě nenapadalo něco z toho patentovat a nevrátit to do 3D tiskařské komunity.

 

 

Jedny z našich prvních vyhřívaných podložek

A to jsem zmínil jen věci spojené s hardwarem a firmware tiskárny. PrusaSlicer si vedle toho prošel tolika změnami, že původní Alessandrův Slic3r už za ním prakticky není vidět (a přesto na dědictví Slic3ru stále upozorňujeme v hlavní liště programu i jinde). Ostatně, podívejte se sami na dokumentaci PrusaSliceru u nás na webu nebo na čerstvý účet na Twitteru, kde budete nacházet řadu drobných tipů a triků.

PrusaSlicer je skvělým příkladem toho, co může open source přinést, ale i příkladem některých rizik, které jsem zatím nezmínil. Pozitivním příkladem je zapracovávání inspirativních komunitních příspěvků jako byla adaptivní kubická výplň (infil) nebo stromové podpěry, jejichž přepracovanou verzi brzy uvidíte v PrusaSliceru 2.6.0 ve formě organických podpěr. Skvělá je i spolupráce s týmem stojícím za Curou. Z ní PrusaSlicer převzal například generátor perimetrů Arachne nebo Lightning výplň a opačným směrem pak byla předána například monotónní výplň nebo systém řízení rozložení objektů po podložce.


Bohužel je tu ale i odvrácená mince. Přebírání funkcí mezi konkurenčními slicery dává smysl jen pokud jsou příspěvky jednotlivých stran alespoň částečně vyrovnané, a pokud jsou autoři převzatých funkcí korektně citováni, což se ne vždy děje.

A pak tu jsou komunitní příspěvky. Díky popularitě PrusaSliceru přispívá svými návrhy změn do programu obrovské množství lidí. Mnoho z nich očekává, že jejich kousky kódu budou v podstatě automaticky přidány do hlavní větve. Jenže PrusaSlicer se za ta léta stal velmi komplikovaným programem a podobné kontribuce jsou většinou „one-trick pony“ – řeší sice problém, který vadí konkrétnímu uživateli, ale zároveň rozbíjejí jiné funkce. Aby vše fungovalo stabilně a spolehlivě, musí naši vývojáři stejně většinu externího kódu optimalizovat, upravovat nebo dokonce kompletně přepsat. V PrusaSliceru neustále provádíme refactoring velkých částí původního kódu a udržet vše ve formě, není snadné. Pokud se chcete o této problematice dozvědět víc, mrkněte se na prezentaci Vojty Bubníka (šéfa vývoje PrusaSliceru), kterou připravil pro speciální akci ve švýcarském CERNu – prezentace začíná ve 25. minutě)

Nerad bych, aby to teď vypadalo, že si stěžuji na to, že se komunita zapojuje do vývoje – naopak, za všechny příspěvky jsme vděční. Ale komunitní vývoj není tím hlavním důvodem, proč náš software a hardware publikujeme jako open source. V prvé řadě nám šlo vždy hlavně o to, aby naše tiskárny byly snadno servisovatelné, aby si s nimi lidé a firmy mohli hrát, experimentovat se softwarem a všemožně jej upravovat podle svých potřeb a zájmů. Internet je plný úžasných modifikací našich tiskáren (jeden příklad za všechny) a nejrůznějších rozšíření od třetích stran, ze kterých jsme nadšení. Představu 3D tiskárny, kterou si jako stavebnici sestaví rodiče s dětmi, postupně pochopí její principy a proniknou do jejího systému, bereme jako jednu z hlavních motivací toho, co děláme.

 

Hezký upgrade naší tiskárny připravený týmem institutu ZHAW

Ale zpět k tématu – co se nám nelíbí na současném stavu open source vývoje v oblasti 3D tisku? Pro přehlednost to zkusím shrnout do několika jasných bodů:

  • Standardní licence GNU GPL, pod kterou jsou naše tiskárny a software k dispozici jsou velmi vágní, složitě napsané a jejich interpretace je velmi volná. Byla vyvinuta akademiky pro akademické účely a 3D tiskařská komunita ji začala využívat i pro hardware, pro který není úplně vhodná. Pro akademický vývoj softwaru je bezproblémová, ale pro komerční vývoj hardwaru a softwaru se nehodí. Jejich porušení je možné vymáhat na základě autorského zákona, ale tyto předpisy se v jednotlivých zemích liší a případné spory jsou dlouhé a drahé..
  • Na současném trhu s 3D tiskárnami a softwarem kolem nich působí řada firem, které si open source licence vykládají po svém. Často nevydávají zdrojové kódy nebo je nevydávají celé, a to ještě po nátlaku komunity.
  • Vznikají 1:1 klony hardwaru nebo softwaru, které komunitě nepřinášejí nic zpátky.
  • Při přebírání kódu dochází často k mazání copyrightových hlaviček a historie z repozitářů, což zahlazuje stopy po autorech původního kódu.
  • Výrobci zařízení nebo softwaru, kteří využívají open source, nedávají dostatečný kredit původním autorům. V jejich uvítacích obrazovkách, v readme souborech nebo webových stránkách se často nedozvíte nic o tom, na jakých základech byl daný produkt postaven.
  • Příspěvky do společných repozitářů nejsou rovnocenné – jinými slovy, existují strany, které si berou vylepšení od ostatních, ale samy nepřispívají.
  • Existují podezření, že na základě open source projektů vznikají nové komerční projekty, které jsou uzavřené a registrují si lokální patenty, které se budou časem snažit rozšířit celosvětově.

Ze všech těchto bodů vyplývají i možné nápravné kroky. Otázkou je, jak jich docílit, když zároveň chceme zůstat open source a podporovat komunitu. Už před časem jsem proto začal přemýšlet o nové licenci, která by dané problémy více adresovala a jasněji na ně upozorňovala. Dal jsem tedy dohromady pár pracovních bodů, které bych v takové licenci rád viděl:

  • Při využití části kódu nebo plánů součástek k uvedení software nebo hardware na trh, musí být na výrobku nebo v softwaru jasně uvedeno autorství původního kódu. Dále je zakázáno mazat copyrighty z hlaviček a historii z repozitářů.
  • Výroba takřka identických klonů pro komerční účely není povolena.
  • Licence k součástkám je poskytována pro účely servisu, úpravy nebo vzdělávání.
  • Upgrady a dodatečné úpravy založené na originální dílech jsou povoleny a vítány.
  • Výrobu a prodej dílů, které lze považovat za spotřební materiál (například termistory, heater block, ventilátory, tiskové pláty, apod) je povolena po ověření držitelem licence na základě předložených vzorků.
  • Pokud je výrobek označen výrobcem jako zastaralý (nebo není možné jej zakoupit či objednat po dobu delší, než 3 měsíce), je doložka o nekomerčnosti automaticky zrušena, pokud se identické díly nebudou nadále vyrábět v rámci nástupce výrobku nebo je nebude možné zakoupit samostatně.
  • Pokud poskytovatel licence ukončí svou činnost, nekomerční doložka se zruší.

Co se nás týče, s vydáním MK4 zpřístupníme modely všech plastových částí a zdrojáky k firmwaru (ty už jsou dokonce venku už od vydání prvního XL firmware). Vzhledem ke stávajícímu stavu na trhu s elektronickými komponenty a také k problémům nastíněným výše, ale zatím nebudeme spěchat s vydáním plánů elektroniky. Ty už bychom rádi vydali už pod novou licencí.

Jak jsem už psal výše, jde hlavně o zahájení debaty. Rád bych si přečetl vaše názory a poznámky a rád bych do diskuse zapojil i osobnosti open source scény, youtubery, novináře a i ostatní 3D tiskařské firmy a výrobce open-source hardware. Pokud se shodneme na tom, že současná situace není ideální, pojďme ji společně řešit.