Během několika posledních měsíců narážela 3D tiskařská komunita na velmi zajímavou otázku. Co kdyby multimateriálová tiskárna nebyla omezena pouze na barvy, které jsou do ní fyzicky zavedeny?
Hned na začátku musíme přiznat, že jde o naprosto fantastický způsob, jak rozšířit možnosti vaší 3D tiskárny! A v tomto článku, resp. videu, vám ukážeme, jak tisknout v desítkách různých barev na jakékoliv multimateriálové tiskárně a co jsme všechno udělali, aby to bylo možné. Jde o hloubkový ponor do pozadí celé technologie, takže se pohodlně usaďte, čeká vás jízda!
Nejdříve si pojďme popovídat o komunitě, kde všechno odstartovalo. Takováto řešení barevního tisku se začala objevovat v podobě odvozenin open-source softwaru, testovacích palet nebo samotných, čím dál tím více přesvědčivých výtisků. OrcaSlicer-FullSpectrum od Ratdouxe pak demonstroval, jak by mohlo virtuální míchání barev filamentů vypadat, když by se začaly střídat tenké vrstvy různých materiálů. Filament-mixer od Justina H. Rahba pak pomohl dopředu určit, jak takto namíchané barvy mohou vypadat. A další komunitní projekty, jako je například PeggyPalette, umožnily snadněji porovnávat a sdílet výsledky. Byl to jeden z těch momentů, kdy jste mohli v reálném čase sledovat, jak se něco velmi rychle vyvíjí. Právě takové úžasné projekty naplno ukazují, jak přínosné je zvolit open-source přístup a nechat šikovné lidi dělat skvělé věci.
Není proto divu, že jsme se pro tuhle věc nadchnuli i my. Uvnitř naší společnosti se myšlenka šířila stejně rychle. Řekli jsme si, že vytvoříme jednoduchý způsob, jak nechat lidi tisknout desítky krásných barev jen pomocí několika cívek filamentu. Týmy, které se starají o Prusamenty, PrusaSlicer, EasyPrint a OpenPrintTag, vždycky míří stejným směrem a tenhle projekt pro ně byl ideální. Pomocí vlastních FDM výtisků jsme zkalibrovali nový, přesnější model pro míchání barev, propojili ho s reálnými daty o materiálech pomocí materiálové databáze OpenPrintTagu, přenesli celý postup do PrusaSliceru a EasyPrintu a začali připravovat vlastní sadu Prusamentu CMYKW, aby byl proces ještě spolehlivější už od prvního tisku. A proč zrovna CMYKW? Hned si to vysvětlíme.
Výsledkem je mnohem jednodušší workflow, které spíš než programování působí jako přirozené barvení modelů, navíc s mnohem přesnějšími náhledy barev než byste našli v jakémkoliv jiném existujícím řešení.
Náš model pro míchání barev jsme vydali pod licencí MIT, takže ho komunita může bez omezení zkoumat, využívat, testovat, vylepšovat a stavět na něm, stejně jako jsme učinili my na projektech, které tu byly před námi. Model nazýváme Prusa ColorMix, abychom jej odlišili od ostatních projektů a produktů.
Jak to celé funguje?
Jak je tedy možné vytisknout model, který působí téměř jako namalovaný, a to vše jen prostřednictvím pěti filamentů? Celý princip je velmi dobře známý z oblasti tradičního 2D tisku. Využívá azurový, purpurový a žlutý inkoust (CMY) pro metodu nazvanou půltónování, neboli halftoning, která dovoluje tiskárně vytvářet různé odstíny, když mění velikost a vzdálenost malých inkoustových teček. Pokud jsou tyto tečky vytištěné ve shodném poměru velikosti, vznikne černá barva s tím, že inkoustové tiskárny mají v sadě ještě samostatnou černou (K), aby ušetřily inkoust, a tomuto modelu se říká CMYK. Pokud se ptáte na bílou barvu, tiskárny zpravidla tisknou na bílý papír, takže dosáhnout bílé znamená, nevytisknout na dané místo žádnou ze zmíněných barev.

Barva vnímaná jako světle modrá je při detailním zvětšení tvořena kombinací azurového, purpurového, žlutého a černého inkoustu. (Wikipedia)
Za oponou
Pojďme si o Prusa ColorMix poslechnout přímo od lidí, kteří pro vás tuto novinku připravovali. Seznamte se s Barborou Maršíkovou z týmu Prusa Academy, která kouzlu tisku v plném spektru barev propadla během snahy zpřístupnit multimateriálový tisk úplným začátečníkům.
Jak to celé začalo
Poprvé jsem o „Full Spectrum“ slyšela od našeho experta na multimateriálový tisk z oddělení Prusa Development. Když řekl, že právě tohle je budoucnost 3D tisku, věřila jsem mu. Sledovala jsem komunitu, která tehdy zkoušela existující fork, a využívala jsem každou příležitost, abych tomu interně dělala osvětu. Vše se ale naplno rozběhlo až ve chvíli, kdy jsme na tiskárně Original Prusa XL začali tisknout testovací vzorky ze sady filamentů Easy PLAC CMYK a Prusamentu Galaxy Black. Každý, kdo viděl výsledek, chtěl tímhle způsobem tisknout taky.
Většina dostupných systémů pro tisk z více filamentů používá paralelně čtyři cívky, a proto fungují v režimu CMYW. Mícháním těchto barev ale nikdy nedosáhnete skutečně černé, takže výsledek je spíše modrošedý. Na Prusa XL s pěti nástrojovými hlavami jsme však mohli rovnou přidat černou a pracovat s barevnou kombinací CMYKW. Postupným testováním všech možností jsme vytipovali zhruba 40 barevných kombinací, které dávají smysl a lze je použít.
Lehce jsme se také shodli na tom, že bychom rádi měli vlastní řešení tisku v plné barevné škále pro tiskárnu Prusa CORE One s rozšířením INDX. Abychom mohli vytvořit plnohodnotné řešení přímo od naší společnosti, museli jsme pro tuto myšlenku získat tři klíčové týmy: Prusa Polymers, EasyPrint a PrusaSlicer.
Všichni milují barvy
V Prusa Polymers, kde vzniká náš interně vyráběný Prusament, nebylo potřeba nikoho dlouho přemlouvat. Ještě než jsme stihli dokončit testování CMYKW filamentů dostupných na trhu, už se u nás pracovalo na nových barvách Prusamentu. V současné době se ladí finální odstíny a průsvitnost sady Prusa CMYKW a v přípravě je také materiál PLA Natural Glitter, který dokáže dodat třpytivý vzhled jakémukoliv stávajícímu PLA.
Tým, který se stará o PrusaSlicer, usilovně pracuje na nadcházející verzi 3.0 a zároveň dokončuje tiskové profily pro CORE One INDX, aby byl zajištěn co nejlepší výkon. Na naše testovací výtisky sice nejprve hleděli s nedůvěrou, ale brzy si uvědomili, jaká je to zábava. S radostí se tak stali součástí celého projektu a s nadšením připravili build PrusaSliceru ve verzi 2.9.6. Největší skok kupředu ale nastal ve chvíli, kdy jsme zašli za týmem, který má na starosti EasyPrint a Printables. Ti (skoro) všeho nechali a okamžitě začali vymýšlet, jak implementovat CMYKW slicování do EAsyPrintu a jak ho dostat k uživatelům co nejrychleji.
Tímhle způsobem jsme pro projekt získali týmy EasyPrintu a PrusaSliceru a v testovacím prostředí se nové funkce začaly objevovat v podstatě obden. Jakmile pak dorazila první testovací šarže Prusamentu CMYKW, mohli jsme s klidným srdcem opustit všechna ostatní softwarová řešení pro tisk v plném rozsahu barev a začít pracovat čistě v našem vlastním „Prusaversu“.
Deníček vývojáře
Seznamte se s Ondřejem Bartasem, softwarovým inženýrem z týmu EasyPrint & Printables, který je hlavním vývojářem modelu ColorMix.
Co jsme se naučili při snaze míchat barvy na 3D tiskárně
Tohle jsou moje poznámky k vytváření modelu pro míchání barev pomocí střídání vrstev na FDM tiskárně. Sdílím je s vámi proto, že chci pomoci komunitě ve snaze tento způsob tisku plnohodnotně ovládnout, a ne proto, že bychom tuto problematiku stoprocentně vyřešili.
Jak to celé začalo
Chci, aby vícebarevný FDM tisk působil jako malování. Vymáčknete tubu s barvou na paletu, vezmete štětec a začnete barvy přímo před sebou míchat. V žádném současném sliceru to ale takhle nefunguje. V Orca Sliceru nebo Bambu Studiu musíte pro získání jiné než základní barvy kliknout na tlačítko „Přidat kombinaci namíchaných barev“, vybrat, které dva extrudery chcete smíchat, nastavit poměr a tohle opakovat pro každou další barvu. V komunitě sice kolují předpřipravené 3MF projekty, díky kterým lze tyto zdlouhavé kroky přeskočit, ale pořád to jsou jen berličky. Výsledný uživatelský zážitek je pořád stejný: „Nejprve nakonfiguruj stroj, až pak uvidíš výsledné barvy.
Do PrusaSliceru a EasyPrintu jsme proto integrovali dvě věci – model pro míchání barev, který dokáže předpovědět, jakou barvu reálně získáte při konkrétním střídání vrstev. A uživatelské rozhraní, které vám nebude házet klacky pod nohy. Prostě jen nahrajete filamenty, objeví se před vámi paleta a pomocí ní malujte. Jak už jste určitě pochopili, tento příspěvek je věnován právě tomuto barevnému modelu.
Jak jsme se dostali až sem
Vícebarevný FDM tisk pomocí skládání jednotlivých vrstev jsme nevymysleli my. Autorem je Ratdoux se svým projektem OrcaSlicer-FullSpectrum. Do něj také převzal nástroj filament-mixer od Justina H. Rahba, který na základě polynominálního modelu míchání pigmentů natrénovaného na datech z Mixboxu (pro olejové malby) předpovídá výsledné odstíny. Bambu Studio postupně přešlo od lineárního sRGB ke gama korigovanému RGB a v dubnu 2026 integrovalo filament-mixer přímo do svého kódu. My teď přicházíme s plnou integrací do PrusaSliceru a EasyPrintu, v rámci které jsme se mohli podívat na to, co už bylo v rámci tohoto způsobu tisku k dispozici, vytisknout si vlastní testovací kartičky a zapojit do přípravy modelu něco, co nikdo před námi neudělal. Řeč je o kalibraci matematického modelu na základě reálně zmeřených FDM výtisků, což je rozdíl oproti filament-mixeru, který předpovídá chování olejových barev.
Jinak řečeno, filament-mixer funguje skvěle na věcech, na kterých byl vytrénován, v případě filamentů jde ale o něco úplně jiného. A to je přesně ta mezera, kterou zaplňujeme, když jsme provedli potřebná měření a na získaná data jsme aplikovali potřebné korekce.
Co nefungovalo
- Kubelka-Munk. Kanonický model míchání pigmentů z oblasti vědy o barvách. Předpokládá, že jsou pigmenty promíchány v jednom médiu, což ale žádná domácí FDM tiskárna nedělá. Bambu AMS, Prusa MMU, Prusa XL nebo INDX mění filamenty po jednotlivých vrstvách. K-M proto řeší úplně jiný problém.
- Beer-Lambert / skládání podle HueForge. Tohle byl model, který jsem už málem vydal. HueForge na sebe skládá poloprůsvitné vrstvy a vy se na ně díváte shora dolů. Světlo projde horní vrstvou, narazí na spodní a vrátí se zpět. Jenže pak mi to došlo! HueForge vypadá jako plochý výtisk, na který se díváte shora. My se ale na 3D objekty díváme ze strany, kde vrstvy leží vedle sebe, tedy nejsou poskládané přímo v dráze světla, a jde o úplně jinou geometrii.
Co fungovalo
Je nutné uvědomit si, že jde o polotónový – halftone – tisk a ne o míchání barev. Jakmile mi tohle došlo, celá fyzika se zjednodušila. Při pohledu z boku je vícebarevný FDM tisk výsledkem prostorového optického míchání barev. Tenké sousední vrstvy z běžné pozorovací vzdálenosti ve vašem pohledu splývají, čímž se vracíme k efektu tradičního tisku a inkoustových bodů palety CMYK. Správným výchozím vzorcem je Yule-Nielsen, tedy standardní rovince pro polotónový tisk. A samotný Yule-Nielsen je už zhruba dvakrát přesnější než obyčejné průměrování lineárního RGB.
Poměry jsou (v %) 75:25, 50:50, 25:75, resp. 33:33:33, a samozřejmě nejde o náhodná čísla. Míchání pomocí střídání vrstev není spojité, protože samotné vrstvy jsou od sebe oddělené, a tak tisk v poměru 50:50 pouze jednoduše střídá jednu a jednu vrstvu. Abyste získali poměr 30:70, potřebovali byste opakující se blok 3:7, tedy deset vrstev na jeden barevný „pixel“, což by ale drasticky snížilo vertikální rozlišení a vytvářelo viditelné pruhy. Tisknutelné poměry tak jsou pouze 1:1, 1:3 a 3:1 s tím, že tři barvy se míchají ve vyváženém poměru 1:1:1. Právě tyto poměry jsme měřili, protože právě ty dokáže tiskárna reálně vytisknout.
Funguje to jak pro systémy s plnohodnotným toolchangerem, tak pro MMU/AFS. Toolchangery (Prusa XL, CORE One+ INDX) jsou rychlé, ale vyžadují naprosto přesný XY offset mezi tryskami. Pokud je offset špatně zkalibrovaný, bude barva vytištěného objektu nekonzistentní. Systémy MMU/AMS (Original Prusa MK4S + MMU3, Bambu Lab X1C) mají pouze jednu trysku, takže u nich starosti s offsetem odpadají, ale každá změna barvy znamená čisticí cyklus. Samotnému barevnému modelu je ale jedno, jakou architekturu tiskárny používáte. Stará se pouze o předpověď, jakou barvu získáte z daného poměru vrstev.
Provedené korekce
Jakmile jsme měli k dispozici změřené výtisky, zbytkové odchylky z modelu Yule-Nielsen odhalily strukturované chyby. Šlo o předvídatelné vzorce, nikoliv o náhodný šum, takže jsme je začali jeden po druhém odstraňovat:
- Skutečné výtisky byly tmavší než tvrdila matematika, obzvláště při míchání velmi světlého filamentu s velmi tmavým. Čím větší je rozdíl v jasu mezi vstupními materiály, tím tmavší je výsledný výtisk ve srovnání s předpovědí. Podle toho pak jas v našem modelu softwarově snižujeme.
- Světlé kombinace ztrácí barvu rychleji než ty tmavé. Například směs pastelové růžové s pastelovou modrou v poměru 50:50 vyjde ve výsledku šedivější než byste očekávali. Dvě tmavé barvy ale naopak svou barevnost drží mnohem lépe. Saturaci proto v modelu snižujeme úměrně tomu, jak vysoký je odhadovaný jas.
- Míchání azurové barvy posouvá výsledek k teplejšímu odstínu. Tohle bylo překvapivé zjištění. Predikce odstínů v azurovo-modrém spektru (hodnoty Hue 180–240) mají tendenci ujíždět spíše k tyrkysové, ačkoli by měly zůstat azurové. Proto tyto odstíny softwarově otáčím na barevném kruhu zpět a nejsinlější korekci aplikujeme uprostřed tohoto pásma.
- Mix barev, které tvoří převážně jeden filament, není nutné tolik korigovat. Jinak řečeno, směs barev v poměru 99/1 korekci téměř nepotřebuje. Všechny výše popsané úpravy proto děláme s ohledem na křivku, která dosahuje vrcholu při rovnoměrném míchání a klesá k nule u čistých, téměř jednosložkových kombinací. Díky tomu přímé barvy zůstávají stoprocentně netknuté a barevné přechody jsou dokonale hladké. Jako bonus toto řešení zcela automaticky vyřešilo i míchání tří barev najednou; všechny ostatní modely totiž při třech barvách matematicky selhávají, zatímco náš model si s nimi elegantně a plynule poradí.
Pro každou testovací šarži jsme tiskli vlastní základní vzorky, což bylo metodologické rozhodnutí, které se ve výsledku ukázalo jako mnohem důležitější než jsme na začátku čekali. Každá testovací sada obsahuje pět samostatně vytištěných základních filamentů plus více než 20 namíchaných kombinací, které jsme poté najednou měřili stejným kolorimetrem. Důvod je prostý – přesnost kolorimetru v čase kolísá, okolní osvětlení se mění a každý člověk vidí trochu jinak. Pokud má přístroj zrovna dnes nějakou odchylku a posouvá azurovou barvu, posune ji úplně stejně u každého mixu z dané šarže obsahujícího azurovou. Tato systematická chyba se kompletně vyruší, jakmile model propočítává vztah mezi základní barvou a mixem namísto porovnávání absolutních tabulkových hodnot. Díky tomu nepotřebujete spektrofotometr za statisíce, ale vystačíte si s běžně dostupným kolorimetrem, pokud základní barvy a mixy měříte společně.
Testovali jsme také přidání hodnot TD (Transmission Distance, tloušťka, při které materiál propustí polovinu světla) z databáze filamentů HueForge coby vstupní veličiny pro náš model, ale nijak to nepomohlo. Rozhodli jsme se proto model nekomplikovat a nechali ho pracovat jen s hex kódy barev a poměry vrstev.
Co víme a co zatím ne
Měřili jsme Prusament PLA na tiskárně Prusa XL, to je prozatím vše.
Struktura našich opravných korekcí by měla platit i pro ostatní značky PLA, protože chemické složení pigmentů je napříč celým odvětvím velmi podobné a samotný základ, stojící na rovnici Yule-Nielsen, by měl fungovat univerzálně při střídání filamentů po vrstvách na jakékoliv tiskárně. Nevíme naopak, zda jsou tyto přesné koeficinety správné pro PETG, ABS nebo pro PLA jiných výrobců (pravděpodobně nebudou sedět úplně přesně, ale budou blízko), případně jak se budou chovat speciální filamenty (bronzový, třpytivý nebo „galaxy“). Jejich odrazivost závisí na orientaci částic, což spolehlivě rozbíjí jakýkoliv skalární model, takže se v našich grafech nachází až na samotném cvhostu s největší chybovostí předpovědí.
Pokud tedy model u vašich filamentů nepředpovídá barvy správně, jde o problém s daty, nikoliv o problém samotného modelu. Jednoduše bychom potřebovali více naměřených vzorků.
Co bude dál a jak můžete pomoci
Vydání modelu ColorMix je pouze prvním krokem. S několika stovkami dalších měření napříč různými značkami a materiály se nám otevírá reálná cesta k vytvoření plnohodnotného percepčního modelu barevného prostoru v duchu Mixboxu nebo Spectral.js, tedy k předpovědím, které budou ze své podstaty správné v celém rozsahu poměrů, a nikoliv jen pouhými záplatami na zbytkových chybách. Nic z toho přitom není složité, matematika pro to již existuje. Celé je to zkrátka jen otázkou dostatečného množství dat.
Repozitář najdete pod názvem prusa3d/prusa-fdm-mixer na GitHubu s licencí MIT. K dispozici je verze TypeScript (npm install prusa-fdm-mixer) i port v C++17, navržený pro přímou integraci do PrusaSliceru nebo OrcaSliceru. Připravili jsme také tři webové aplikace: Playground pro zkoušení, Harness pro testování přesnosti modelu a Gatherer pro zadávání vlastních měření.
Pokud máte doma kolorimetr a vytisknuté testovací kartičky, pošlete nám svá data. A pokud si zkusíte nasimulovat nějaký vlastní mix a výsledek nebude sedět, dejte nám vědět. Právě díky chybným předpovědím se může náš model neustále zlepšovat.
Ještě jedna věc
Vraťme se ještě na sekundu ke zmiňovanému malování. Moje čtyřleté dítě maluje vším. Odnáší to ruce, oblečení, hračky a občas i zdi. Neexistuje žádné menu, žádný průvodce nastavením, žádné „konfigurujte mapování extruderů“. Je tu modrá, je tu žlutá, štětec leží někde zapomenutý, protože prsty jsou lepší a zelená prostě vznikne sama od sebe.
Přesně takhle by měl vícebarevný FDM tisk působit. A ne v nějaké vzdálené budoucnosti. Už teď. Hardware existuje. Slicery existují. Filamenty existují. Jediné, co nám stojí v cestě, je uživatelské rozhraní, které bere barvu jen jako jakýsi vedlejší doplněk, a matematický model, který lže o tom, jak bude výsledný výtisk reálně vypadat. Obojí dokážeme napravit.
Samozřejmě, funkční tisk to nenahradí – jednobarevné PETG, ABS, ASA nebo PA budou dál plnit svou práci, protože jejich účelem je mechanická odolnost, nikoli vizuální stránka. A to je v pořádku. Ale pro všechny ty fidget hračky, doplňky pro cosplay, figurky, dárky, dekorace na stůl a zkrátka pro všechny ty věci, které lidé tisknou prostě proto, že chtějí vytvořit něco úžasného, byl jednobarevný tisk z PLA vězením až příliš dlouho. Představte si vytištěného draka ve skutečných dračích barvách. Hlavolam s opravdovým barevným přechodem. Jmenovku, která nevypadá jako obyčejná plastová jmenovka.
Pomozte nám toho dosáhnout.
Zpátky k tiskárně
Asi uznáte, že tohle byl opravdu hluboký ponor do hlubin vývoje systému Prusa ColorMix. Když to tedy shrneme, odteď můžete využívat jak EasyPrint (návod najdete na stránce nápovědy), tak PrusaSlicer ve verzi 2.9.6 (vydaný na GitHubu). Barvy, které vidíte na obrazovce při přiřazování k jednotlivým částem modelu, odpovídají realitě tak přesně, jak je to jen možné. Samotné ovládání kreslicích nástrojů je přitom asi tak složité jako Malování ve Windows, což je ideální hlavně pro nás, děti z devadesátek.
Pokud si chcete ColorMix vyzkoušet hned teď, připravili jsme pro vás několik modelů: kalibrační kužely ColorMix pro otestování možných kombinací vašich filamentů, pestrobarevného chameleona, který využívá pět filamentů, a vystínovanou rybu, které stačí barvy dvě.
Můžete si také zkusit vytvořit své vlastní vystínované modely přímo v prohlížeči pomocí naší webové aplikace ColorMix Shading, na které zrovna pracujeme.
Nové barvy řady Prusament CMYKW dorazí již brzy, ale už teď můžete míchat jakékoli filamenty, které máte doma. Pokud chcete s CMY mícháním experimentovat hned teď, skvěle vám k tomu poslouží Prusament Azure Blue (azurová), Ms. Pink (purpurová) a Pineapple Yellow (žlutá). Určitě vyzkoušejte jakékoli filamenty, které máte po ruce, a dejte nám vědět, jak to dopadlo.
Poslední tahy štětcem
Mnozí z nás tady v Prusa Research jsou tak trochu jako Ondřejovo čtyřleté dítě. Sami 3D tisk milujeme, baví nás nové funkce i inovace a chceme řešení pro naše vlastní projekty. Díky tomu se nám podařilo připravit ColorMix – naši vlastní implementaci tisku v plném barevném rozsahu, a to za chvilku, která utekla jako voda. Stojí za tím práce spousty lidí napříč celou firmou, takže jim patří obrovský dík za to, že se k tomuto hnutí obratem připojili, hned jak první „Full Spectrum“ výtisk. Tímto to pro nás samozřejmě nekončí, pustíme se do zatím nevyřešených výzev, jako je efektivní tvorba gradientů nebo míchání barev na horních vrstvách. A stejně tak usilovně pracujeme na způsobech, jak tyto funkce využít k vytváření realističtějších modelů, nejen pro tisk záměrně duhových věcí.
V neposlední řadě patří obrovské poděkování komunitnímu týmu, který k této funkci přitáhl tolik pozornosti. Jmenovitě uživatelům @ratdoux, @justinh-rabh (jehož tvorbu najdete na https://github.com/justinh-rahb), @wombley za knihovnu filament-mixer a @huntercook za jeho práci na projektu peggypalette.



Pro přidávání komentářů se musíte nejdříve přihlásit.