Slic3r je jednou z nejoblíbenějších aplikací pro slicování – a právě slaví deset let. Vůbec první commit na Githubu byl zveřejněn před deseti lety, 1. září 2011. Tahle zdánlivě nepříliš důležitá událost ve skutečnosti změnila svět 3D tisku. První vydaná verze byla na funkce poměrně skoupá, ale byla pochopitelná, relativně rychlá a funkční. Uživatelé mohli díky Sli3ru jednoduše převádět 3D objekty na G-cody, tedy sadu instrukcí, podle kterých 3D tiskárny řídí pohyby motorů a další funkce. Přesně to RepRap komunita potřebovala. A nebýt Slic3ru, byl by náš PrusaSlicer pravděpodobně hodně odlišný.

Střet dvou světů

Deset let může být hodně dlouhá doba, zvlášť když se bavíme o 3D tisku, což je stále relativně nové odvětví – ve srovnání například s automobilovým průmyslem, jehož dějiny se píšou už dobrých 150 let. Zlom v oblasti dostupnosti 3D tiskáren nastal roku 2005, kdy Adrian Bowyer představil projekt RepRap: open-source stroje schopné vlastní replikace. Hardware je však pouze jedna strana mince, k funkčnímu provozu potřebujete i software. Aplikaci, která 3D objekty „přeloží“ do podoby pochopitelné pro 3D tiskárnu. Na scénu vstupuje roku 2011 Ital Alessandro Ranelluci, který se věnuje dvěma zcela odlišným odvětvím: architektuře a vývoji softwaru. Tyhle dva odlišné světy nakonec daly vzniknout aplikaci, kterou snad každý nadšenec do 3D tisku alespoň viděl: Slic3r. A co Alessandra vedlo k vývoji vlastního sliceru? Jeho příběh se podobá řadě dalších vývojářů z komunity kolem RepRapu. Alessandro hledal způsob, jak jednoduše a levně vytvořit fyzické objekty – v jeho případě architektonické projekty. A RepRap ho zaujal. Problém byl v tom, že oblast DIY open-source 3D tiskáren byla o dost jiná než dnes. Před deseti lety Github rozhodně nebyl plný jednoduchých, funkčních, zkompilovaných a plně zdokumentovaných projektů. Celé tohle odvětví bylo pořád ještě v plenkách a ve stádiu experimentů a zkoumání. Alessandro nebyl spokojený s tehdy dostupnými slicery (jako byl třeba v Pythonu psaný Skeinforge), a tak se rozhodl pro radikální krok: řekl si, že naprogramuje slicer vlastní. A tak se 1. září 2011 zrodil Slic3r. Jeho FAQ začínal jednoduchou otázkou „Zase další RepRap slicer?“ Ta byla následovaná lakonickou odpovědí: „Ano.“

Skromné začátky

První verze 0.5.0 byla skutečně velmi základní. Spartánská. Jenom základní textové rozhraní, žádný 3D náhled. Nastavení čítalo sotva pár položek, a pochopitelně se počítalo s tím, že budete tisknout 3mm filamentem, což byl v té době naprostý standard. Na druhou stranu už bylo v nabídce hned pět typů výplně (infillu). Alessandro později v rozhovoru zmínil, že udělat slicer pro FFF tiskárny je mnohem složitější v porovnání s SLA technologií. Musíte vzít v potaz plánování tras extruderu, retrakce, tloušťku stěn, výplně…

Takto vypadalo první vydání Slic3ru 0.5.0

I přestože bylo první vydání Slic3ru 0.5.0 funkčně poměrně strohé, rychle si získalo pozornost a oblibu komunity. Jednalo se o jednoduchý a funkční nástroj. V době, kdy DIY 3D tiskárny byly v podstatě novinkou, dokázal Slic3r generovat více než 20 tisíc stažení každé nové verze. S přílivem nových uživatelů přibývalo i nápadů na další funkce i nahlášených chyb. Slic3r rostl a učil se nové věci, přičemž Alessandro zůstával jediným hlavním vývojářem. Zhruba rok od prvního vydání přišel Slic3r s něčím, co už by se dalo považovat za náhled tiskové plochy – ovšem jen v 2D zobrazení. Josefu Průšovi se líbilo, kterým směrem se vývoj Slic3ru ubírá, a proto jej začal víc využívat a připravoval pro něj i profily pro své tehdejší tiskárny. Dokonce se s Alessandrem potkal v Praze a výsledkem je tenhle krásný dobový rozhovor natáčený v roce 2012 GoPro kamerou na Vyšehradě.

Přichází Slic3r PE, PrusaControl a PrusaSlicer

Pojďme přeskočit několik let a zastavme se u data 1. listopadu 2016. Je to den, kdy je do vod internetu vypuštěn Slic3r Prusa Edition ve verzi 1.31.2, za kterým stojí náš vývojář Vojta Bubník. Stejně jako v případě původního Slic3ru je i naše edice dílem jednoho muže. A proč jsme se rozhodli Slic3r forknout? V poznámkách k vydání se píše: „V Prusa3D jsme se rozhodli, že chceme vývoj Slic3ru posouvat vpřed rychlejším tempem, což znamená, že náš Slic3r Prusa Edition obsahuje novinky, které ještě nejsou implementovány v původním Slic3ru.“

Stalo se zkrátka to, že Prusa Research nabrala vítr do plachet a bylo potřeba sladit tempo vývoje sliceru s překotným vývojem 3D tiskáren. Celý kód samozřejmě zůstal open-source, takže (a opět citujeme poznámky k vydání) „jsou autoři a správci oficiálního Slic3ru více než vítáni, aby naše změny a rozšíření integrovali do Slic3ru.“

Slic3r PE 1.31.2

Měli jsme desítky nápadů, jak Slic3r posunout dál. Vojta se ale nejprve musel doslova prokousat skrz pět let vrstvenou hromadu kódu, který byl psaný prakticky jen v Perlu. Pochopit fungování softwaru bylo základem ke všemu. V interview s Alessandrem Josef zmiňoval, že má Slic3r „kvalitní ochranu proti kopírování – protože je psaný v Perlu.“ I když se tomu oba pánové zasmáli, úplný vtip to nebyl. Slic3r byl navíc v původní verzi relativně pomalý, protože byl jednovláknový. Jedním z prvních úkolů proto bylo zavést základní paralelizaci pro zrychlení výpočtů. Vojta byl dva roky jediným vývojářem Slic3ru PE (s občasnou výpomocí ostatních programátorů ve firmě). Roku 2017 se Slic3r PE tým rozšířil na čtyři lidi a později na současných osm programátorů a dva testery. To samozřejmě výrazně usnadnilo implementaci nových funkcí, na druhou stranu jsou ale nyní vydávací cykly delší – je potřeba synchronizovat práci víc lidí, a aplikace je nyní výrazně složitější, což s sebou nese vyšší nároky na důkladné testování.

Jak Slic3r PE rostl a stával se více uživatelsky přívětivým, cítili jsme, že se blíží čas na radikální změnu. S verzí 2.0 došlo k řadě změn nejen na povrchu, ale i pěkně hluboko pod kapotou. Celý program byl konečně přepsán do C++ a přibyla celá řada nových funkcí. Zrodil se PrusaSlicer 2.0, čímž jsme vyřešili i problém s častým zaměňováním Slic3r a Slic3r PE. To bylo před dvěma lety, v květnu 2019. V součastnosti, tedy 1. září 2021, pět let od vydání Slic3r PE a po 12852 commitech je tu nejnověší verze – PrusaSlicer 2.4.0 alpha 1 vydaná přesně na den tak, aby oslavila deset let existence původního Slic3ru. Desáté narozeniny. Letí to.

Vzpomínáte si na PrusaControl?

Stále se snažíme o to, aby každé další vydání PrusaSliceru přineslo zajímavé nové funkce, a aby se aplikace snáze používala (proto jsou například některé funkce automatizované). Vylepšujeme nástroje, nastavení, uživatelské rozhraní, dokonce jsme i přidali podporu pro 3D tiskárny třetích stran. Snažíme se, aby byl PrusaSlicer aplikací pro co nejvíce uživatelů. Mimochodem, vzpomínáte si ještě na PrusaControl? Jednalo se o upravený Slic3r PE s přepracovaným (zjednodušeným) rozhraním. Byla to taková ochutnávka věcí budoucích. PrusaControl sice už dál nevyvíjíme, ale jeho nejlepší funkce postupně implementujeme do PrusaSliceru.

Síla otevřených dat

Poslední stable vydání Alessandrova Slic3ru je 1.30 z května 2018. Ačkoliv za poslední 3 roky žádná nová verze nevyšla, odkaz Slic3ru žije dál. V diskuzních fórech se stále probírá, na Githubu se objevují nové pull requesty a forky. Je to zářný příklad toho, jak hluboce je propojen koncept open-source s 3D tiskárnami. Komunitní skupiny, zapálení nadšenci, spolupráce na projektech a společné cíle – to je tím, co žene celé tohle odvětví vpřed. Jestli jste naskočili do tohoto vlaku teprve nedávno, zkuste si představit, jak vypadala situace před nějakými osmi či deseti lety, kdy schopnost sliceru generovat podpěrný materiál byla něčím úplně novým, na co se muselo čekat. A ani jste si importovaný objekt nemohli pořádně prohlédnout, protože náhled byl jen ve 2D. Urazili jsme dlouhou cestu.

Říká se, že když člověk něco potřebuje, kolikrát mu nezbyde nic jiného, než to udělat sám. Alessandrova práce je toho jasným důkazem. Slic3r měl možná trochu pomalejší start, ale netrvalo dlouho a stal se jedním z nejoblíbenějších nástrojů pro fanoušky 3D tisku na dlouhá léta.

Rádi bychom proto tímto poděkovali Alessandrovi za jeho přínos celému odvětví. Svět 3D tisku by bez Slic3ru byl určitě dost odlišný. Grazie!