Slic3r, jedna z najpopularniejszych aplikacji do cięcia modeli, ma już 10 lat. Pierwszy publiczny commit na GitHubie został opublikowany 1. września 2011 i mimo, że wydawał się mało znaczącym wydarzeniem, przekształcił na dobre świat druku 3D. W tamtym czasie był to prosty, ale potężny program o otwartym źródle, pozwalający użytkownikom na przekształcanie modeli 3D w kod G, czyli zestaw instrukcji maszynowych zrozumiałych dla drukarki 3D. Było to coś, czego społeczność RepRap naprawdę pragnęła. A bez Slic3ra autorstwa Alessandro Ranellucciego, nasz PrusaSlicer wyglądałby teraz prawdopodobnie bardzo, bardzo inaczej.

Zderzenie światów

10 lat może być długim okresem, szczególnie w raczej młodej branży, jak druk 3D – porównajmy chociażby przemysł motoryzacyjny, który rozwija się od lat 60. i 70. XIX wieku. Kamieniem węgielnym dla dostępu drukarek 3D dla szerszej publiczności było rozpoczęcie projektu RepRap (w 2005), prowadzonego przez Adriana Bowyera, ojca samoreplikujących się drukarek 3D z otwartym źródłem. Sprzęt to tylko jedna z części układanki. Potrzebujesz również oprogramowania, czyli czegoś, co przetłumaczy trójwymiarowe obiekty w zestaw instrukcji dla sprzętu.

W tym momencie pojawia się Alessandro Ranellucci, architekt i developer oprogramowania z Rzymu. Dwa, na pierwszy rzut oka odmienne światy, dały początek programowi, który chyba każdy entuzjasta druku 3D przynajmniej zna, a nawet bardziej prawdopodobne, że kiedyś go używał: mowa o Slic3rze. Co skłoniło Alessandra do stworzenia go? Mamy tu dziwne podobieństwo do wielu innych historii z branży RepRap. Alessandro szukał taniego i wygodnego sposobu na stworzenie trójwymiarowych przedmiotów. W jego przypadku były to makiety architektoniczne. RepRap przykuł jego uwagę. Dziesięć lat temu sytuacja na rynku drukarek o otwartym źródle i DIY była zgoła odmienna od dzisiejszej. Niewiele rzeczy było przyjaznych użytkownikowi, dobrze udokumentowanych czy w ogóle dostępnych do pobrania. Alessandro nie był zadowolony z dostępnych wtedy slicerów (takich, jak skeinforge napisany w Pythonie), więc rozpoczął tworzenie własnego. Dlatego 1. września 2011 narodził się Slic3r, a jego FAQ zaczyna się od prostego pytania: “Yet another RepRap slicer?” z lakoniczną odpowiedzią: „Yes.” (tłum. „Kolejny RepRapowy slicer?”, „Tak.”)

Skromne początki…

Pierwsze wydanie 0.5.0 nie miało podglądu 3D, tylko bardzo prosty interfejs. Możliwości konfiguracji były skromne (delikatnie mówiąc), a domyślnie aplikacja oczekiwała używania filamentu 3 mm, który był wtedy bardzo popularny. Już wtedy jednak dostępne było 5 wzorów wypełnienia – linie równoległe, linie, krzywa Hilberta, spirala Archimedesa oraz spirala ośmiokątna. Alessandro przyznał później, że stworzenie slicera dla drukarki FFF jest znacznie trudniejsze od SLA – musisz przeliczyć ścieżki, retrakcje, wypełnienia…

Pierwsze wydanie Slic3ra Slic3r (0.5.0)

Mimo, że pierwsza wersja była raczej uboga, jeśli chodzi o funkcjonalność, szybko zdobyła popularność i przyciągnęła innych członków społeczności. Każde wydanie było pobierane ponad 20 000 razy. Użytkownicy zaczęli dzielić się swoimi pomysłami oraz uwagami, a rozwój Slic3ra szybko nabrał tempa z Alessandrem jako jedynym developerem. Mniej niż rok po pierwszym wydaniu, Slic3r 0.8.1 wniósł coś, co można było nazwać podglądem stołu, mimo, że był tylko dwuwymiarowy. Jo Prusa polubił kierunek rozwoju Slic3ra i zaczął przygotowywać profile do drukarek, a nawet spotkał się z Allessandrem w Pradze. W wyniku tego spotkania powstał wywiad nakręcony w 2012 roku kamerą GoPro w Wyszehradzie, historycznym forcie w Pradze, w Czechach, niedaleko obecnej siedziby Prusa Research.

Premiera Slic3r PE, PrusaControl oraz PrusaSlicer

Przenieśmy się szybko do 1. listopada 2016. Nowy fork, nazwany Slic3r Prusa Edition 1.31.2 zostaje wypuszczony – to wydanie zostało przygotowane przez naszego nowego dewelopera oprogramowania, Vojtěcha Bubníka. Tak, jak w przypadku oryginalnego Slic3ra, nasz „PE” był przygotowany przez jednoosobową armię. Jaki był powód oddzielenia własnej gałęzi od oryginalnego projektu? Log wydania mów: “W Prusa3D zdecydowaliśmy się przyspieszyć rozwój Slic3ra, co oznacza, że nasz Slic3r Prusa Edition jest wyposażony w funkcje, które nie zostały jeszcze zaimplementowane w oficjalnym Slic3rze.”

Wraz z rozwojem Prusa Research jako firmy, konieczne okazało się przyspieszenie rozwoju Slic3ra. Cały kod ma otwarte źródło, zgodnie z wpisem w pierwszym logu: “…zapraszamy autorów i opiekunów oficjalnego Slic3ra do wprowadzania naszych zmian i rozszerzeń do oficjalnego projektu.”

Slic3r PE 1.31.2

Mieliśmy dziesiątki pomysłów na dalszy rozwój Slic3ra. Najpierw jednak Vojtěch musiał przebić się przez ogrom kodu Perl, ponieważ pełne zrozumienie go było kluczowe. Jo powiedział Alessandro w wywiadzie: “Masz doskonałe zabezpieczenie przed kopiowaniem – napisałeś go w Perlu.” Slic3r został również napisany jako aplikacja jednowątkowa, co oznacza, że był raczej powolny. Dlatego jednym z pierwszych zadań było wprowadzenie obliczeń równoległych. Vojtěch pozostawał jedynym developerem Slic3ra PE przez dwa lata, otrzymując okazjonalną pomoc od innych pracowników firmy. W 2017 zespół rozrósł się do czterech osób, aby w końcu osiągnąć obecny rozmiar ośmiu programistów i dwóch testerów. Pozwoliło to na ogromny wzrost możliwości rozwojowych, ale oznacza również, że cykle wydań wydłużyły się, ponieważ cały zespół musi synchronizować swoją pracę, a przez stale rosnące skomplikowanie, wszystko musi zostać przetestowane znacznie dokładniej.

Wraz z rozwojem Slic3ra PE i poprawianiem doświadczenia z użytkowania, stwierdziliśmy, że mamy szansę wykonania jeszcze większego kroku. W wersji 2.0.0 Slic3r PE został całkowicie przepisany w C++ i otrzymałdużą restrukturyzację, która stała się okazją do zmiany nazwy na bardziej praktyczną – PrusaSlicer. Stało się to w maju 2019. Teraz, pięć lat po pierwszym wydaniu Slic3r PE i 12852 commitów później, nowe wydanie wnosi zupełnie nową świeżość. Jakie wydanie? Cieszę się, że pytasz! 1. września 2021 wypuściliśmy PrusaSlicer 2.4.0 w wersji alpha, aby uczcić 10. rocznicę powstania Slic3ra. Czas leci szybko.

PrusaControl nie jest już wspierany, ale jego niektóre funkcje zostały zintegrowane z PrusaSlicerem

Wciąż dokładamy wszelkich starań, aby każda kolejna wersja przynosiła mnóstwo nowych funkcji i była przyjazna użytkownikowi (co oznacza, że np. niektóre akcje są zautomatyzowane w porównaniu do starszych wersji). Ulepszamy narzędzia, ustawienia, interfejs, a nawet dodajemy profile dla drukarek innych producentów. Naprawdę chcemy, aby PrusaSlicer był slicerem dla każdego. A, nawiasem mówiąc, pamiętasz jeszcze PrusaControl? Tę uproszczoną aplikację do cięcia bazującą na Slic3rze? Ach, wspomnienia…

 

What a commit-ment! 🙂

Moc otwartego źródła

Ostatnim stabilnym wydaniem Slic3ra Alessandro Ranelluciego jest wersja 1.3.0 z maja 2018. Mimo, że nie ma już nowszych stabilnych wydań, Slic3r żyje dalej, nawet 3 lata później, dzięki „zautomatyzowanym wersjom rozwojowym” („automated development builds”). Dyskusja wokół Slic3ra wciąż trwa – pojawiają się nowe propozycje zmian i forki. Jest to doskonały przykład tego, jak głębokie są powiązania konceptów łączących druk 3D z otwartym źródłem. Społeczności, entuzjaści, kooperacje i wspólne cele są głównymi motorami napędowymi tej branży. Jeśli w świecie druku 3D stawiasz dopiero pierwsze kroki, to wyobraź sobie jak to wyglądało osiem lat temu, gdy możliwość generowania podpór byłą zupełną nowością. Nie było też sposobu na obejrzenie pociętego modelu ze wszystkich stron, ponieważ podgląd był oferowany tylko w dwóch wymiarach. Cóż, przeszliśmy długą drogę.

Stare powiedzenie mówi „jeśli chcesz, żeby coś było zrobione dobrze, zrób to sam”. Praca Alessandra jest tego doskonałym przykładem. Mimo trudnych początków, Slic3r szybko stał się ulubionym slicerem dla wielu użytkowników, wiernych mu od lat.

Niniejszym przekazujemy nasze najszczersze podziękowania dla Alessandra. Świat druku 3D byłby zupełnie inny bez Slic3ra. Grazie!

10 lat cięcia – kamienie milowe: