Po kilku latach rozwoju, skomplikowanych przez pandemię, przerwane łańcuchy dostaw i wojnę w Europie, ogłosiliśmy dzisiaj naszą nową Original Prusa MK4. Rozpoczęliśmy wysyłkę pierwszych sztuk XL dwa tygodnie temu. Nadchodzi PrusaSlicer 2.6 z podporami organicznymi i wieloma innymi wspaniałymi funkcjami. Nasz zespół firmware finalizuje niestandardową implementację Input shaping (tłumienie drgań) dla MK4 i XL. Ponadto, mamy nowe MMU3, z całkowicie przepisanym firmware i mnóstwem ulepszeń.

Powyższe i wiele innych rzeczy, które robimy w Prusa Research od ponad dziesięciu lat, były możliwe tylko dzięki wspaniałej społeczności druku 3D i filozofii open-source. Nowe drukarki i wydania oprogramowania sprawiły jednak, że ponownie zacząłem zastanawiać się nad obecnym stanem open source w świecie druku 3D. Jak bardzo jest to zrównoważone, jak radzą sobie z tym nasi konkurenci, co wnosi to do społeczności i co nas martwi jako deweloperów. Potraktuj ten artykuł jako wezwanie do dyskusji – jako początek, który (miejmy nadzieję) otworzy nowe spojrzenie na związek pomiędzy licencjami open-source, sprzętem konsumenckim i rozwojem oprogramowania.

Zanim zacznę, chcę wyjaśnić kilka spraw, aby uniknąć nieporozumień:

  • Trwamy przy naszych korzeniach w open-source i będziemy to kontynuować.
  • Nasze desktopowe drukarki 3D będą zawsze open source. Zamierzamy kontynuować publikację modeli części plastikowych, wraz z kodami źródłowymi firmware.
  • Będziemy otwarci na zewnętrznych producentów komponentów, akcesoriów, dodatków i nieoficjalnych aktualizacji.
  • .

  • PrusaSlicer zawsze będzie miał otwarte źródło.
  • Nasze inwestycje w PrusaSlicer i rozwój firmware będą kontynuowane na tym samym lub wyższym poziomie.

W ciągu ostatniej dekady zawsze byłem przeciwnikiem firm, które w miarę upływu czasu odwracały się od społeczności open-source, stając się ostatecznie firmami zamkniętymi. Nie chcę, aby Prusa Research poszła w tym samym kierunku. Patenty wielkich firm od początku ograniczały świat druku 3D, a projekty takie jak RepRap pomogły branży wyrwać się z tego uścisku. Gdy w 2014 r. wygasło kilka ważnych patentów Stratasysa, rozwój open-source mógł wreszcie ruszyć pełną parą.

 

Każdy kto dziś tworzy coś związanego z drukiem 3D, korzysta z ponad dziesięciu lat ciągłego rozwoju open-source. Setki osób i dziesiątki firm przyczyniły się do tego, że branża znalazła się w miejscu, w którym jest dzisiaj. Pomysł, że można stworzyć drukarkę 3D wraz z jej firmware i oprogramowaniem od podstaw w rok lub dwa, jest mrzonką. Zawsze będziemy wdzięczni ludziom takim, jak Adrian Bowyer (założyciel RepRap), Alessandro Ranellucci (oryginalny autor Slic3ra), David Braam (oryginalny autor Cura), Scott Lahteine (opiekun Marlin) i wielu innym. Wszyscy oni zasługują przynajmniej na publiczne uznanie i podziękowania, gdy ktoś używa ich pracy. I to prowadzi nas do tego, co mnie martwi.

Ruch open-source opiera się na tym, że wszyscy grają według tych samych zasad. Nie da się tego zrobić bez wzajemnego szacunku, zrozumienia i wspólnego celu. Kiedy ktoś nagle nagina zasady dla własnej korzyści lub otwarcie je łamie, społeczność daje jasno do zrozumienia, że nie będzie tego tolerować. W przeszłości widzieliśmy wiele protestów i bojkotów, które zmusiły nawet duże firmy do przemyślenia tego, jak traktują dziedzictwo open-source. Ale w ostatnich latach widzę, że sytuacja się zmienia. Coraz więcej firm łamie i nagina zasady, a społeczność nie jest już tak wrażliwa na ich działania jak kiedyś. Po małej burzy internetowej sytuacja się uspokaja, a kod pozostaje zamknięty (lub tylko jego część jest otwarta), a po kilku tygodniach wszyscy zapominają.

W międzyczasie docierają do mnie informacje o firmach, które zaczęły zgłaszać lokalne patenty oparte na rozwoju open-source oraz znaki towarowe (zdziwilibyście się, ile z nich ma „Prusa” w nazwie). Czy o firmach należących częściowo do państwowych firm i instytucji i wykorzystujących kod open-source w swoich zamkniętych systemach, łamiąc tym samym licencje.

Oczywiście nie wszystkie naruszenia zasad open-source można łatwo udowodnić, ale jeśli spojrzymy na historię, to okaże się, że nie byłby to pierwszy raz, kiedy coś podobnego się wydarzyło. Przykładem niech będą panele słoneczne – oryginalne wynalazki i procesy były stopniowo kopiowane przez chińskie firmy. Następnie, z pomocą dotacji państwowych i ulg podatkowych, w ciągu kilku lat, chińczycy wyparli z rynku całą konkurencję. Dziś praktycznie nie ma szans na zakup panelu słonecznego nie wyprodukowanego w Chinach.

Mam nadzieję, że nie stanie się to w świecie druku 3D. Ale prawda jest taka, że możemy być ostatnią dużą firmą zajmującą się drukiem 3D, która w pełni przestrzega zasad open-source. I bardzo bym chciał, aby było nas więcej.

Spędziliśmy lata na rozwoju open-source, zarówno w oryginalnych repozytoriach, jak i później w naszych własnych forkach sprzętu, firmware i slicera. Nasz wewnętrzny zespół PrusaSlicer liczy 13 osób, a zespół firmware 21 – to setki tysięcy roboczogodzin tylko w ciągu ostatnich pięciu lat.

Odkąd mój brat i ja zaczęliśmy przygodę z drukiem 3D, wymyśliliśmy (wraz z późniejszymi kolegami) cały szereg rozwiązań, które można znaleźć w prawie każdej dzisiejszej domowej drukarce 3D (open-source lub nie). Czy jest to stół grzewczy PCB, zdejmowane arkusze druku, malowany proszkowo PEI nakładany bezpośrednio na metal, automatyczne poziomowanie stołu roboczego przy użyciu sondy indukcyjnej, power panic, zaawansowana ochrona termiczna, automatyczna kalibracja skosu osi, bazowanie bez krańcówek i wiele innych – nigdy nie rozważałbym opatentowania żadnego z tych rozwiązań i nie dzielenia się nimi ze społecznością druku 3D.

 

Jeden z naszych pierwszych podgrzewanych stołów

A to tylko rzeczy związane z firmware i drukarkami. Poza tym PrusaSlicer przeszedł tak wiele zmian, że oryginalny Slic3r Alessandro jest praktycznie niewidoczny pod wszystkimi nowymi dodatkami (a mimo to nadal podkreślamy dziedzictwo Slic3ra w głównym pasku i w innych miejscach). Nawiasem mówiąc, zajrzyj na dokumentacji PrusaSlicera na naszej stronie lub do naszego świeżego konta na Twitterze, gdzie znajdziesz przydatne porady i wskazówki!

PrusaSlicer jest świetnym przykładem tego, co może przynieść open source, ale pokazuje też pewne zagrożenia, o których jeszcze nie wspomniałem. Pozytywnym przykładem jest zaimpelentowanie wszystkich tych niesamowitych porcji kodu od społeczności, takich jak adaptacyjne wypełnienie sześcienne lub podpory w formie drzewa, które zobaczysz wkrótce w PrusaSlicer 2.6.0 w postaci podpór organicznych. Świetna jest też współpraca z zespołem stojącym za Curą. Dostaliśmy od Cury generator obrysów Arachne i wypełnienie Lightning, a my odwdzięczyliśmy się np. wypełnieniem monotonicznym czy systemem zarządzania stołem.

Niestety, jest pewien minus. Przejmowanie funkcji między konkurującymi slicerami ma sens tylko wtedy, gdy wkład poszczególnych stron jest przynajmniej częściowo zrównoważony i gdy autorzy są prawidłowo cytowani. A to nie zawsze ma miejsce.

A potem jest jeszcze wkład społeczności. Ze względu na popularność PrusaSlicera, wiele osób wnosi swoje pull requesty na GitHubie, oczekując, że ich kod zostanie automatycznie dodany do głównej gałęzi. Jednak PrusaSlicer stał się przez lata bardzo skomplikowanym programem, a podobne, pojedyncze wkłady zazwyczaj rozwiązują problem, który przeszkadza tylko konkretnemu użytkownikowi, w międzyczasie psując inne funkcje. Nasi programiści muszą optymalizować, modyfikować, a nawet całkowicie przepisać większość zewnętrznego kodu, aby wszystko było wciąż stabilne i niezawodne. Ciągle przekodowujemy duże części oryginalnego kodu PrusaSlicera, a utrzymanie wszystkiego w stabilności nie jest łatwe. Jeśli chcesz usłyszeć więcej na ten temat, sprawdź prezentację Vojty Bubnika (czołowego dewelopera PrusaSlicer), którą przygotował na nasze specjalne wydarzenie w CERN – prezentacja zaczyna się od 00:25).

Nie chcę, żeby to zabrzmiało tak, jakbym narzekał na zaangażowanie społeczności w rozwój – wręcz przeciwnie, jesteśmy wdzięczni za wszelki wkład z zewnątrz. Ale rozwój społeczności nie jest głównym powodem, dla którego oferujemy nasze produkty jako open source.

Naszym głównym celem zawsze było ułatwienie konserwacji i modyfikacji naszych drukarek, aby domowi użytkownicy i firmy mogły bawić się i eksperymentować z oprogramowaniem i sprzętem. Jesteśmy zachwyceni widząc niesamowite modyfikacje i dodatki firm trzecich dla naszych drukarek 3D (jak ten świetny przykład)! A jedną z najlepszych rzeczy i jedną z naszych największych motywacji, jest to, gdy rodzice składają drukarkę 3D z zestawu do montażu ze swoimi dziećmi, w ten sposób stopniowo ucząc się jak działa maszyna.

Fajna aktualizacja dla naszych drukarek przygotowana przez zespół w Instytucie Systemów Mechatronicznych ZHAW

Wracając jednak do tematu – co nam się nie podoba w obecnym stanie rozwoju open-source w dziedzinie druku 3D? Aby to wyjaśnić, podsumuję to w kilku kluczowych punktach:

  • Standardowa licencja GNU GPL, na której udostępniamy nasze drukarki i oprogramowanie, jest bardzo niejasna, napisana w skomplikowany sposób i otwarta na różne interpretacje. Została opracowana przez naukowców dla celów akademickich. Społeczność druku 3D zaczęła ją wykorzystywać do sprzętu, dla którego nie jest ona w pełni odpowiednia. Naruszenie tej licencji może być egzekwowane na podstawie prawa autorskiego, ale przepisy te różnią się w poszczególnych krajach, a potencjalne spory mogą być długie i kosztowne.
  • Na obecnym rynku drukarek 3D i oprogramowania towarzyszącego, wiele firm interpretuje licencje open-source na swój sposób. Często nie udostępniając kodu źródłowego lub udostępniając tylko jego fragmenty i to dopiero po tym jak społeczność wywiera na nich presję.
  • Na rynku istnieją klony 1:1 sprzętu lub oprogramowania, które nie wnoszą nic do społeczności.
  • Kiedy kod jest przejmowany, nagłówki praw autorskich i dzienniki historii rozwoju są często usuwane z repozytoriów, wymazując wszelkie ślady autorów oryginalnego kodu.
  • Producenci urządzeń lub oprogramowania, którzy wykorzystują open source, nie dają wystarczającego uznania oryginalnym autorom. Na ich ekranach powitalnych, w plikach readme czy na stronach internetowych często nie znajdziemy informacji o pochodzeniu produktu.
  • Wkład do wspólnych repozytoriów jest nierówny – innymi słowy, niektóre strony biorą ulepszenia od innych, ale same nie wnoszą niczego.
  • Podejrzewa się, że na bazie projektów open-source powstają nowe komercyjne projekty. Ich kod jest jednak zamknięty, a firmy te ubiegają się o lokalne patenty, które ostatecznie mogą być rozszerzone na cały świat.

Wszystkie te punkty implikują również możliwe działania naprawcze. Pytanie brzmi: jak je osiągnąć, jednocześnie pozostając z otwartym źródłem i wspierając społeczność? Jakiś czas temu zacząłem zastanawiać się nad nową licencją, która w bardziej przejrzysty sposób odnosiłaby się do tych kwestii. Zebrałem więc kilka punktów roboczych, które chciałbym zobaczyć w takiej licencji:

  • Jeśli używasz jakiegoś kodu lub projektu do wprowadzenia oprogramowania lub sprzętu na rynek, autorstwo oryginalnego kodu musi być wyraźnie zaznaczone na produkcie lub w oprogramowaniu. Dodatkowo, usuwanie informacji o prawach autorskich z nagłówków i historii z repozytoriów jest zabronione.
  • Produkcja klonów bliskich 1:1 do celów komercyjnych jest zabroniona.
  • Licencja na produkcję części zamiennych jest ważna dla celów serwisowych, modyfikacyjnych lub edukacyjnych.
  • Ulepszenia i dodatkowe modyfikacje oparte na oryginalnych częściach są dozwolone i mile widziane.
  • Części, które można uznać za materiały eksploatacyjne (np. termistory, bloki grzejne, wentylatory, płyty stołu itp.) mogą być produkowane i sprzedawane komercyjnie po weryfikacji przez licencjodawcę na podstawie przedstawionych próbek.
  • Jeśli produkt jest oznaczony przez producenta jako przestarzały (lub nie można go kupić lub zamówić przez okres dłuższy niż 3 miesiące), klauzula niekomercyjna zostaje automatycznie zakończona, jeśli identyczne części nie są już produkowane w kolejnym modelu produktu lub nie można ich kupić oddzielnie.
  • W przypadku zaprzestania działalności przez licencjodawcę, klauzula niekomercyjna ulega rozwiązaniu.

Już teraz, wraz z wydaniem MK4, udostępnimy modele wszystkich części plastikowych oraz kod źródłowy firmware (są już dostępne od wydania pierwszego firmware XL). Jednak ze względu na obecny stan rynku komponentów elektronicznych, a także kwestie przedstawione powyżej, nie będziemy się spieszyć z wydaniem planów elektroniki. Chcielibyśmy wydać je już na nowej licencji.

Zasadniczo, to co chciałbym zrobić przy pomocy tego artykułu to rozpocząć dyskusję. Chciałbym usłyszeć co Ty o tym myślisz, a do rozmów chciałbym włączyć wybitne postaci z dziedziny open source, osobistości z Youtube’a, dziennikarzy i inne firmy zajmujące się drukiem 3D i sprzętem open source. Jeśli wszyscy możemy się zgodzić, że obecna sytuacja nie jest zbyt korzystna, pracujmy razem nad jej poprawą.