Większość posiadanych przez ciebie rzeczy wydałaby się znajoma dla kogoś z roku 1900. Twoja szczotka jest plastikowa, ale zachowuje się tak samo jak drewniana. Pralka – bardzo zmyślne ustrojstwo – też nie jest czymś nie do ogarnięcia umysłem. Ale komputer? No tak… tu właśnie gość z początku XX wieku posądziłby cię o czary. A gdybyśmy sprawili, że wszystko przypominałoby komputer? A przynajmniej żeby wiele z twoich rzeczy dostosowywało się do twoich upodobań? W epoce potężnej mocy obliczeniowej i zaawansowanych tworzyw syntetycznych? Dlaczego nie możesz nakazać czterem krzesłom przekształcenia się w stół? Naukowcy nazywają taki wynalazek programowalną materią. Jego podstawą jest wzbogacenie przedmiotów informacją. Mogą nią być dosłownie bity i bajty zapisane we wbudowanym komputerze lub może być nią „wiedza” umieszczona w samej konstrukcji przedmiotu pod postacią jego kształtu lub składu materiałowego. Pracujący w Massachusetts Institute of Technology dr Erik Demaine mówi o tym w ten sposób: „Dla mnie najciekawszą możliwością programowania materii jest pomysł wielofunkcyjnych gadżetów. Potrafię sobie wyobrazić, jak mój rower zmienia się w krzesło, kiedy chcę sobie usiąść, a nie jeździć po okolicy. A potem przekształca się w laptopa. Albo mój telefon rozwija się w laptopa. Żyjemy w świecie komputerów, w którym oprogramowanie można dowolnie zmieniać. Programowalna materia jest tym samym dla przedmiotów. Jeśli chcesz mieć najnowszy model telefonu, musisz pójść do sklepu i kupić fizyczne urządzenie. Można sobie wyobrazić, że w przyszłości nasz telefon sam będzie potrafił zmienić się w nowy model. Takie mam marzenie”.
Naukowcy, inżynierowie i artyści z całego świata starają się je urzeczywistnić choćby w niewielkim stopniu. Niektórzy chcą programować materię tak, żeby reagowała na otoczenie. Inni chcą wbudować we wszystko, co produkujemy, małe roboty. Najbardziej ambitni twórcy marzą o uniwersalnych materiałach, które potrafią przyjąć dowolny kształt.
WŁADCY MAZI
W czasie pracy w słynnym ośrodku badawczym w Palo Alto dr David Duff ukuł określe nie „wiadro czegoś” (Bucket of Stuff), którym określił ostateczny cel rozwoju programowalnej materii. Wyobraź sobie, że masz wiadro bliżej nieokreślonej mazi. Przypinasz je sobie do paska i przystępujesz do naprawy cieknącego zlewu. Kiedy okazuje się, że potrzebujesz klucza imbusowego 7/32 cala, zwyczajnie przekazujesz polecenie jego uformowania wiadru czegoś. Z mazi wyłania się potrzebne narzędzie i dociągasz nim poluzowaną śrubę. Kiedy się orientujesz, że potrzebujesz kombinerek – pojawiają się kombinerki. Kiedy zachodzi potrzeba użycia przepychaczki, maź z wiadra przyjmuje kształt długiej rurki z elastycznym kopulastym zakończeniem. Może być jeszcze lepiej! Zamiast mówić: „Podaj mi śrubokręt”, możesz powiedzieć: „Poluzuj tę śrubę”, a maź sama ustali, jak to zrobić najlepiej. Albo zamiast samodzielnie przepychać zatkany sedes, zwracasz się do swojego zmęczonego wiadra: „Rób, co trzeba, kolego”.
Oczywiście działanie wiadra czegoś nie ograniczałoby się do formowania prostych narzędzi. Może potrzebujesz poduszki? Kalkulatora? A może robotycznego zwierzaka? Albo zapomniałeś, że dziś są walentynki, w związku z czym nakazujesz mazi przybrać postać kwiatów? Może nawet udałoby się ją tak skonfigurować, żeby wytwarzała więcej mazi! Innymi słowy wiadro czegoś zawiera materię prawdziwie uniwersalną – przynajmniej w granicach wyznaczonych prawami fizyki. To najbardziej ambitny cel stojący przed badaczami rozwijającymi programowalną materię i jednocześnie zapewne najbardziej odległy. Jest tak z kilku przyczyn. Po pierwsze każda cząstka mazi musi robić mnóstwo rzeczy, a jej zminiaturyzowanie jest bardzo trudne. Prof. Skylar Tibbits z MIT zauważył, że „klucz zapewne chcesz mieć zrobiony z czegoś twardego, ale jeśli potem zapragniesz zabawki dla dziecka, powinna być raczej zrobiona z elastycznego materiału. Jak sprawić, by tak różne cechy realizować jednym materiałem?”.
Innym problemem jest inteligencja każdej cząstki. Dr Demaine powiedział: „Z jednej strony jeśli nanoboty nie będą szczególnie inteligentne, naprawdę trudno będzie sprawić, żeby zrobiły coś sensownego. Jeśli zaś będą inteligentne, każdy z nich będzie potrzebował własnej baterii, a potem wiesz, no… będzie trudno”. Samo zapewnienie autonomicznego zasilania wielkiej gromadzie nanobotów jest dość problematyczne. Ale jeśli chcemy uniknąć potrzeby używania zewnętrznej maszyny, nieustannie przekazującej energię poszczególnym robotom, potrzebujemy jakiegoś sposobu na jej zmagazynowanie w każdej drobinie programowalnej materii. Naukowcom udało się niedawno uzyskać baterie wielkości ziarna piasku (dzięki użyciu specjalnej drukarki 3D). Są wciąż za duże na nasze potrzeby, a do tego zgadujemy, że nie są zbyt tanie.
PIERWSZY KROK DO CHMARY
Zespół MIT złożony z dr Danieli Rus, Johna Romanishina (doktoranta w jej laboratorium) i dr. Kyle’a Gilpina zrobił bardzo ważny krok na drodze do uzyskania prawdziwego wiadra czegoś: M-klocki. To kostki o około pięciocentymetrowych krawędziach z wbudowanym kołem zamachowym i zamocowanymi w ściankach magnesami. Kiedy koło się obraca, magnesy utrzymują kostki sczepione ze sobą. Ale kiedy koło nagle się zatrzymuje, klocek „ożywa”, ponieważ jest mu przekazywany moment pędu. Wtedy poszczególne M-klocki mogą się łączyć z innymi niż dotychczas i w ten sposób zmienić konfigurację całego zespołu. Mamy więc dwa stany: w jednym z nich klocki mogą się swobodnie poruszać, a w innym są mocno ze sobą sczepione.
Do tego klocki potrafią się przemieszczać w trzech wymiarach. Koło zamachowe dysponuje energią wystarczającą do podrzucenia klocków w górę, co umożliwia tworzenie struktur trójwymiarowych.
Celem jest teraz stopniowe zmniejszanie rozmiarów klocków. Z pięciocentymetrowych kostek nie można uzyskać zbyt wielu rzeczy – z tego samego powodu, dla którego nie stworzysz zbyt wielu różnych obrazków, jeśli będziesz dysponować tylko niewielką liczbą kwadratów dwa na dwa. Ale jest to już jakiś początek. Nie zapominajmy, że w latach 50. ubiegłego wieku jeden gigabajt pamięci
ważył jakieś 250 ton, a teraz możemy nosić w kieszeni karty SD zdolne pomieścić setki gigabajtów danych. Gdyby programowalna materia zyskała taką samą popularność jak programowalne komputery, moglibyśmy oczekiwać podobnych technicznych cudów.
Kiedy już stworzymy odpowiednio maleńkie drobiny, trzeba będzie znaleźć jakiś sposób, by potrafiły ustalić, dokąd mają się udać i co mają zrobić. To jest zagadnienie programistyczne, które dr Cynthia Sung z Uniwersytetu Pensylwanii wyjaśniła w następujący sposób: „Mamy wiele świetnych algorytmów, które potrafią sobie poradzić z bardzo licznymi zespołami robotów. Teraz najważniejsze pytanie brzmi: czy zdołamy zastosować te algorytmy w praktyce, ponieważ kiedy mamy wielkie chmary robotów, z racji samej liczby maszyn niektóre z pewnością ulegną awarii. Wiele straci łączność z pozostałymi. Wiele będzie rejestrowało bardzo zaszumione dane z czujników, w związku z czym część nanobotów nie będzie za bardzo wiedziała, gdzie znajdują się pozostałe. Musimy zadbać o to, by tworzone algorytmy potrafiły sobie poradzić z takimi problemami – żeby po sięgnięciu do wiadra po klucz naprawdę wyciągać klucz, a nie coś, co go tylko przypomina i w dodatku się sypie”.
JAK INDYWIDUALISTÓW ZAMIENIĆ W ORKIESTRĘ
Koordynowanie zachowania wielu małych maszyn jest trudne. Nie chcemy, żeby każdy robot z osobna wykonywał złożone obliczenia, ponieważ wtedy każdy będzie potrzebował więcej podzespołów. W idealnej sytuacji wszystkie maszyny kolektywnie realizują zbiór prostych zasad w celu wykonania złożonych działań. I muszą to robić szybko. Wyobraź sobie, że chcesz przywołać nóż, żeby się nim obronić. Nawet jeśli napastnik będzie pod wrażeniem jego formowania, zapewne nie zechce czekać kilku godzin i zwyczajnie zabierze ci ten portfel. Problemy z koordynacją rosną w tempie wykładniczym w miarę dodawania kolejnych robotów. Jeśli pomyślisz o ich zespole jako o największej maszerującej orkiestrze w historii ludzkości, szybko zrozumiesz, dlaczego. Kiedy orkiestra przechodzi od jednego układu do drugiego, poszczególni muzycy nie mówią sobie nawzajem „po prostu idź we właściwe miejsce”. Przed występem bardzo długo ćwiczą niewpadanie na kolegów i nieprzewracanie ich. Dlatego właśnie wszyscy znają nie tylko układ docelowy, ale też najlepszy sposób jego osiągnięcia.
Im więcej dodamy muzyków do orkiestry (i skomplikujemy dodatkowo sprawę, umożliwiając ruch w pionie), tym bardziej złożone się to wszystko stanie. Skoordynowanie tysiąca osób będzie dużo trudniejsze niż setki. A nasze wiadro czegoś będzie pewnie mieściło o wiele więcej niż tysiąc malutkich współpracujących ze sobą robotów. Wiemy jednak, że koordynacja działań poszczególnych członków dużych grup jest możliwa. Niektóre termity budują olbrzymie złożone kopce z oddzielnymi pomieszczeniami różnego przeznaczenia. Robią to, chociaż zapewne żaden z termitów z osobna nie wie, jak zbudować cały kopiec.
EWOLUCJA ROBOTÓW
Ustalenie, jak takie programy miałyby działać, jest problematyczne. Szczególnie spodobał nam się pomysł dopuszczenia ewolucji robotów. U organizmów rozmnażających się płciowo wygląda to tak: mamusia stworek i tatuś stworek bardzo się kochają. Łączą się w parę i wydają na świat gromadkę małych. Krwiożercza natura eliminuje najsłabsze z nich. Te, które przetrwają, zostają nowymi mamusiami i tatusiami. Roboty nie są jeszcze gotowe, by dosłownie ze sobą spółkować, nawet jeśli wgra się im jakiś seksowny, podkręcający nastrój kod. Niemniej jednak potrafią tworzyć „potomstwo”. Załóżmy, że jedna grupa nauczyła roboty ustalać własny sposób poruszania się. Mamy grupkę robotów wypróbowujących na wpół losowe ruchy. Niektóre suną szybko, inne powoli, jeszcze inne stoją w miejscu. Później „rozmnażamy” te, które ruszały się najlepiej, i generujemy nowe ruchy, które te roboty wypróbowują. Z dużym prawdopodobieństwem to nowe „pokolenie” będzie nieco szybsze, ale pojawi się w nim przy tym duże zróżnicowanie. Cały proces jest powtarzany wielokrotnie, w wyniku czego powstają coraz lepsze i lepsze mechanizmy ruchu, z czego część mogłaby być trudna do przewidzenia przez ludzi.
Zasadniczo powinniśmy zdołać wykorzystać ramy ewolucyjne do ustalania sposobów wykonywania bardziej złożonych poleceń, takich jak: „Ułóżcie się w kształt gwiazdy” albo: „Przynieście mi piwo, żałosne metalowe sługi”. Jeśli damy robotom odpowiednio dużo czasu, w końcu znajdą wydajną metodę osiągnięcia celu. Dodatkowym udogodnieniem jest możliwość wgrania innym robotom dowolnego wypracowanego zestawu zachowań. Jeśli uzyskane metody będą wystarczająco ogólne, można będzie je przekazać dowolnej innej grupie maszyn. Metody ewolucyjne mogą dać naprawdę dziwaczne możliwości. Jedna z publikacji, które czytaliśmy, sugerowała, że roboty mogą ewolucyjnie wypracować sposoby wykonywania pewnych zadań, które będą lepsze niż cokolwiek, co mógłby zaprogramować człowiek. Dr Yaochu Jin z Uniwersytetu w Surrey i dr Yan Meng ze Stevens Institute of Technology zaproponowali model, w którym roje mogłyby ewolucyjnie wykształcić dłoń odpowiednią do danego zadania. Badacze zauważają, że różnice między dłońmi ludzi i szympansów mogły powstać w czasie, kiedy zaczęliśmy rzucać różnymi rzeczami i wymachiwać maczugami. Zatem zamiast pracować nad projektem dłoni dla robota do (powiedzmy) murowania, dajemy rojowi zadanie pozbierania cegieł. Roboty rozpoczną ewolucję tak samo jak opisywane powyżej roboty meblowe, aż wykształcą optymalną „dłoń”.
To nie jest tak szalone, jak się może wydawać – formalnie rzecz biorąc, nasze ciała składają się z mnóstwa maleńkich maszyn,
które w skoordynowany sposób wykonują wiele różnych rzeczy. Jeśli roboty byłyby zdolne do kilku podstawowych działań – badania otoczenia, komunikowania się, łączenia,
przenoszenia rzeczy i poruszania – w teorii powinny zachowywać się jak komórki organizmów żywych. Jeśli dostaną dostatecznie dużo czasu, nic nie stoi na przeszkodzie ewolucyjnego wykształcenia dłoni, innych koń- czyn czy nawet prostego układu nerwowego. W końcu żadna z komórek w naszych mózgach sama w sobie mózgiem nie jest.
Kelly i Zach Weinersmith – małżeński duet autorów: uznana badaczka i pisarka popularnonaukowa oraz rysownik komiksów, zafascynowany nauką.