Grasshopper

 

Grasshopper je grafický editor pro vizuální programování a je bezplatnou součástí Rhina. Na rozdíl od programovacích jazyků, jako je C++, Python nebo RhinoScript, nevyžaduje žádné znalosti programování a nemusíte v něm napsat ani čárku kódu. Pokud už ale programovat umíte, můžete v tom pokračovat i v Grasshopperu.

Přestaňte modelovat metodami minulého století. Netrapte se zbytečně. Pracujte chytře.

Já vím, už to slyším: "to nezvládnu", "tomu nebudu rozumět", "to pro mě není", "já nejsem žádný programátor",
"naposledy jsem programoval na IQ 151 robota Karla"... zapomněl jsem na něco?

Tak především - i když nadpis pro zjednodešení tvrdí opak - buďte v klidu.

 

GRASSHOPPER NENÍ ŽÁDNÉ PROGRAMOVÁNÍ

 

 


Právě naopak. uvidíte, že

GRASSHOPPER JE AUTOMATIZACE, ZÁBAVA A ULEHČENÍ PRÁCE
 

 

 

 

Proč by mě to mělo zajímat? Mně stačí Rhino!

Proč bych se o Grasshopper měl zajímat? Co mi to přinese za výhody? Co v Grasshopperu udělám a v Rhinu bych to neudělal?

Podívejme se na tento primitivní případ, na kterém si rozdíl mezi Rhinem a Grasshopperem vysvětlíme. Máme dvě jednoduché křivky...

 

Dvě křivky


...a chceme mezi nimi vytvořit oranžové "příčky", které by vypadaly asi takto:

Příčky mezi křivkami

 

V holém Rhinu by to jistě nic složitého nebylo. Postupovali bychom asi takto: nejprve si příkazem RozdělitNaSegmenty rozdělíme křivku na 10 stejných částí - přesně řečeno tento příkaz vygeneruje nezávislé body, které vymezují deset stejně dlouhých segmentů křivky.


Body na křivkách


Pokud navíc před spuštěním příkazu RozdělitNaSegmenty zapneme záznam historie a změníme tvar křivek, poloha a rozložení bodů se v reálném čase přizpůsobí, aby opět dělily křivky na 10 stejně dlouhých segmentů, i když se délka křivek logicky jejich deformací změnila. To je skvělé!

Křivky byly změněny pomocí řídicích bodů

 

Ale zpět k původním křivkám. Zapneme si uchopování bodů a příkazem Úsečka ručně nakreslíme úsečky, propojující navzájem si odpovídající dvojice bodů.

Příčky mezi křivkami

 

Dosud OK, ale... teď přichází realita. Co když se změni tvar vstupních křivek? Aha, body se sice díky historii překreslí, ale úsečky už ne.

Po změně tvaru křivek se příčky nepřizpůsobí

 

Nevadí, vygenerujeme body, nakreslíme znovu úsečky...  Dobře, ale co když nechceme rozdělit křivky na 10 dílků, ale třeba rovnou na 128? To už tak snadno ručně nepřekreslíme, že? Počkat, máme tu přece historii... bohužel i tady vás zklamu, historie reaguje na změnu tvaru vstupní křivky, ale počet segmentů zpětně změnit nelze. A vidíte, to je ono: kde v Rhinu končí naděje, v Grasshopperu začíná zábava! Pojďme na to.

 

 

Zkusíme si to v Grasshopperu

Ale jak na to? Co je to vlastně Grasshopper? Grasshopper je prostředek pro vizuální modelování, to znamená, že model nekreslíte lineárně a přímo, alse sestavujete postup jeho vytvoření, který můžete různě parametricky měnit. Určitě jste už viděli vnitřek nějakého elektronického přístroje, vezměme si třeba základní desku počítače. Je na ní spousta součástek (čipy, odpory, kondenzátory a další podivnosti), můžeme jim souhrnně říkat třeba krabičky. Na desce jsou pak vyleptané vodivé cestičky, kterým budeme říkat spoje. No a tyto spoje propojují vstupy a výstupy různých krabiček - a máte vlastně Grasshopper jako na dlani :-) Zjednodušeně řečeno, v Grasshopperu existují dva základní druhy krabiček - parametry a komponenty. Parametr je krabička, která nese nějakou informaci nebo hodnotu - a je jedno jestli je to číslo, křivka, booleovská hodnota nebo maska chladiče auta. Na následujícím obrázku je příklad několika vstupních parametrů - jak vidíte, mohou nést různé typy informací, od číselných, textových a logických hodnot přes geometrii až po funkce nebo barvy. Stručně řečeno parametry jsou krabičky, které něco obsahují.

 

Parametry v Grasshopperu

 


Komponenty mají vstupy a výstupy, podobně jako čipy na základní desce. Platí úmluva, že nalevo jsou vstupy a napravo výstupy. Opět si to můžeme lakonicky shrnout do jedné věty - komponenty jsou krabičky, které něco dělají.

Komponenta v Grasshopperu

Obě výchozí křivky si ponecháme a spustíme Grasshopper. A vezmeme to trochu zrychleně, toto není návod ani náhrada školení ;-)

Nejprve musíme křivky nějak dostat do Grasshopperu. Použijeme dva parametry Curve. Při kliknutí pravým tlačítkem myši na tento parametr se otevře menu, ve kterém zvolíme položku Set one curve a vybereme jednu křivku, ve druhém parametru Curve pak vybereme druhou křivku.
 

Výběr křivky

Když vybereme v Grasshoperu parametr Curve, tento parametr zezelená (na znamení že je vybraný) a spolu s ním zezelená i odpovídající geometrie v Rhinu, v našem případě křivka. Druhý parametr Curve je světle šedý, to znamená, že funguje správně a obsahuje nějakou geometrii. Pokud by žádnou geometrii neobsahoval (například hned po přidání na plátno, viz obrázek výše), byl by oranžový.

Stav parametru je dán jeho barvou

Dále přidáme na plátno dvě komponenty Divide Curve, které dělí křivku na stejně dlouhé segmenty, podobně jako v našem "ručním" modelovacím příkladu o pár odstavečků výše, vzpomínáte? Vstupy a výstupy této komponenty jsou popsané o tři obrázky výše, takže nám nezbývá než propojit vstup Curve první kopomenty s prvním parametrem Curve a totéž uděláme s druhým parametrem a druhou komponentou. Na křivkách by se ihned měly zobrazit body, které dělí tyto křivky na deset stejně dlouhých dílků (vstup Count neboli počet je standardně nastaven na 10):

Na křivkách byly vygenerovány body

Pokud podržíte chvilku myš na některém z výstupů, uvidíte ihned obsah tohoto výstupu. V případě výstupu Points je to seznam 3D souřadnic všech bodů, které jsou na dané křivkce vykresleny komponentou Divide Curve. Jedná se o takzvaný seznam (anglicky list):

Seznam bodů

K vytvoření "příček" mezi křivkami nám pak stačí už jen poslední drobnost - vzít komponentu Line (úsečka), která má dva vstupy - začátek a konec úsečky. Na první vstup připojíme první seznam bodů, na druhý vstup přípojíme - ano, hádáte správně - druhý seznam bodů. A kouzlo je na světě :)

Automatické propojení bodů úsečkami

Program v Grasshopperu je zcela živě navázaný na geometrii v Rhinu. Pokud jakkoliv změníte geometrii, ihned na to v reálném čase reaguje Grasshopper a přepočítá řešení. Pokud tedy jakkoliv změníme tvar nebo polohu křivek, příčky se ihned změní:

Při změně křivek se úsečky překreslí

Na rozdíl od ručního modelování by teď už by nebyl problém přepsat vstup Count u obou komponent Divide Curve a změnit tak počet bodů a tedy i příček mezi křivkami na libovolnou jinou hodnotu. Grasshopper ale nabízí jinou, pro vizuální programování velice charakteristickou pomůcku, kterou je parametr Number Slider, česky bychom řekly číselný posuvník. Tento parametr vám umožní dynamicky měnit vstupní hodnoty jakékoliv komponenty, která přijímá číselný vstup. Vypadalo by to třeba následovně, na posuvníku byla nastavena hodnota 26.

Celý program v Grasshopperu

Na Grasshopperu je úžasné také to, že celé řešení můžete velice jednoduše aplikovat na úplně jinou geometrii nebo dokonce na více objektů najednou. Stačí definovat jiné křivky ve vstupních parametrech Curve a výsledek se automaticky přizpůsobí novým křivkám. Křivky mohou mít libovolný tvar v 3D prostoru, třeba takový:

 

Dvě prostorové šroubovice

 

Stačí vložit tyto nové 3D křivky do obou parametrů Curve a výsledek se ihned překreslí:

Náš program jsme aplikovali na dvě šroubovice

 

Už teď je vše parametrické a můžete libovolně měnit tvar křivek (dokonce můžete měnit i křivky za jiné), ale kreativitě se meze nekladou a můžete pokračovat dál, třeba přidat potrubí kolem křivek, abyste získali reálné plochy, které můžete zapéct do skutečné geometrie jako jednu variantu a pokračovat dál se svým programem v Grasshopperu, abyste vytvořili a zapekli další a další varianty svého návrhu...

Do programu doplníme potrubí

Program doplněný o potrubí, vnější "trubky" budou mít větší poloměr než vnitřní příčky...

 

 

Poloprůhledné zobrazení

Takto vypadá výsledek grasshopperovského programu v 3D pohledu Rhina

 

 

Renderované zobrazení výsledku našeho programu

...a takto po "zapečení" do skutečných ploch Rhina - v renderovaném zobrazení,

 

Technické zobrazení 3D konstrukce

v technickém zobrazení...

 

a nakonec zobrazení Perokresba

a v zobrazení Perokresba.

 

 

 

 

Co tedy Grasshopper vlastně umí?

 

Je toho opravdu hodně. Projdeme si jednotlivé záložky a podíváme se, jaké okruhy funkcí Grasshopper nabízí. Začneme u první záložky Params neboli parametry.

Každá záložka obsahuje funkce, které jsou seskupené do jednotlivých panelů. Například v záložce Params najdeme panely Geometry, Primitive, Input a další. Na následujícím obrázku je rozvinutý obsah panelu Geometry - najdeme zde parametry, které mohou nést nějakou geometrickou informaci:

Obrazovka Grasshopperu

 

V jednotlivých panelech najdeme doslova stovky funkcí, proto si ukážeme pouze základní obsah jednotlivých záložek:

 

Záložka Params

Záložka Params

 

 

Záložka Maths

Záložka Maths

 

 

Záložka Sets

Záložka Sets

 

 

Záložka Vectors

Záložka Vectors

 

 

Záložka Curve

Záložka Curve

 


Záložka Surface

Záložka Surface

 

 

Záložka Mesh

Záložka Mesh

 

 

Záložka Intersect

Záložka Intersect

 

 

Záložka Transform

Záložka Transform

 

 

Záložka Display

Záložka Display

 

 

 

 

 

 

Integrace zásuvných modulů v Grasshopperu

Grasshopper nabízí neskutečné možnosti parametrického návrhu se změnami v reálném čase a není divu, že se ostatní výrobci zásuvných modulů snaží tento nástroj co nejvíce využívat. Příkladně si v tom vede společnost Asuni CAD, která je s Rhinem spjatá natolik, že se společnéstí McNeel & Associates sdílí společné kanceláře v Barceloně. Asuni CAD je autorem známých pluginů VisualARQ a Lands Design.

 

 

VisualARQ pro Rhino

VisualARQ je zásuvný modul do Rhina určený pro parametrický návrh budov. Nabízí funkce BIM - informačního modelu budov. Veškeré zdi, odka, dveře, sloupy, střechy nebo schodiště jesou zpětně plně editovatelné a nyní nabízí i možnost přímého propojení s Grashopperem s využitím jeho parametrických schopností:

 

 

 

Lands Design pro Rhino

Modul Lands Design pro Rhino slouží k parametrickému návrhu zeleně a krajinotvorných úprav. Podobně jako máme ve stavebnictví pojem BIM, zde mluvíme o LIM - informačním modelu krajiny. Všechny objekty Lands Designu včetně jejich vlastností jsou přístupné přes rozhraní Grasshopperu. Na následujícím videnu například můžete vidět vytvoření lesa na základě definovaného stromu a křivky, která ohraničuje les:
 

 


 

 

 

 

 

 

Zásuvné moduly pro Grasshopper

 

 

Zásuvné moduly pro zásuvný modul... no, možná to zní divně, ale je to tak :-) Grasshopper pochází ze stejné dílny jako Rhino a sdílí s ním také filosofii zásuvných modulů, které rozšiřují již tak bohatou funkčnost základního hostitelského programu. Potěšitelné je, že naprostá většina zásuvných modulů pro Grashopper je zcela zdarma - až na vysoce specializované a odborné výjimky, jako je například řízení průmyslových robotů. Kdokoliv kdo má patřičné znalosti se může stát autorem zásuvných modulů pro Grasshopper, které mohou řešit nějaký drobný a otravný problém, nebo to mohou být složité definice s desítkami funkcí. Tyto definice můžete sdílet s ostatními kolegy uvnitř firmy, nebo je můžete publikovat veřejně na serveru www.food4rhino.com, kde také můžete prohledávat obrovskou knihovnu pluginů pro Hino i Grasshopper od ostatních autorů.

Zásuvných modulů pro Grasshopper je skutečně nepřeberné množství a můžete se s nimi setkat v mnoha různých oborech. Ukážeme si alespoň pár nejdůležitějších.

 

 

AEC - architektura, inženýrství a stavebnictví

Ladybug Tools Ladybug Tools

Analýza a vizualizaci dat mikroklimatu, energetické efektivity a osvětlení v architektonických projektech. S tímto modulem lze tvořit virtuální modely prostředí, simulovat různé klimatické podmínky a porovnávat vlivy změn v návrhu na energetickou náročnost a komfort uvnitř budovy.

Ladybug Tools

Odkaz: food4rhino.com

Kangaroo Physics Kangaroo Physics

Simulaci fyzikálních vlastností a chování pružných konstrukcí, jako jsou například membrány, lana nebo textilie. S Kangaroo lze vytvářet realistické simulace, které umožňují zobrazit napětí, deformace a dynamiku takových struktur při působení vnějších sil a tlaků.

Kangaroo Physics

Odkaz: food4rhino.com

Pufferfish Pufferfish

Soubor 330 komponentů pro plynulé přechody mezi objekty, morphing, průměrování, tvorbu středních křivek a ploch, transformace a interpolace - tedy změny tvarů geometrie. Obecně se jedná o nástroj pro komplexní změny geometrie a zkoumání různých forem.

Pufferfish

Odkaz: food4rhino.com


​    [Klepněte a táhněte pro přesunutí] Lunchbox ​ Lunchbox

Nástroj ke zkoumání matematických tvarů (platonická tělesa) a struktur - panelů, mřížek nebo příhradových konstrukcí.  Obsahuje také nové komponenty pro obecné implementace strojového učení, jako je regresní analýza, clustering a sítě.

Lunchbox

Odkaz: food4rhino.com

NGon NGon

NGon (mnohoúhelník) je polygon s libovolným počtem stran - obvykle více než 4. Modul stejného názvu umožňuje pokrývat plochy mnohoúhelníky a generovat z nich například konstruce pro spojování dřeva pomocí systému per a drážek.

NGon

Odkaz: food4rhino.com

Scatter Scatter

Rozmisťování velkého množství objektů (například polygonových sítí, proxy objektů s materiály, světel atd.) s náhodným rozptylem pomocí transformací, jako je posun, měřítko a rotace. Vhodné pro tvorbu přirozeně působící vegetace nebo stafáže.

Scatter

Odkaz: food4rhino.com


Karamba Karamba

Karamba3D je interaktivní parametrický inženýrský nástroj, který umožňuje provádět rychlou a přesnou analýzu konečných prvků (MKP). Byl přizpůsoben potřebám konstruktérů v raných fázích návrhu.

Karamba

Odkaz: food4rhino.com

Geco Geco

Geco nabízí různé funkce pro simulaci energetické efektivity, včetně analýzy slunečního záření, osvětlení, stínění, ventilace, tepelného zisku a ztrát a dalších faktorů ovlivňujících energetickou spotřebu budov.

Geco

Odkaz: food4rhino.com

OpenNest OpenNest

Nástroj pro optimalizaci uspořádání a rozmístění objektů tak, aby byl co nejlépe využitý materiál s minimem odpadu. Obsahuje různé algoritmy pro rozmisťování a podporuje neobdélníkový tvar hranice.

OpenNest

Odkaz: food4rhino.com

 

 

2D a 3D grafika, reklama, umění

Culebra Culebra

Culebra.NET je 2D|3D multiobjektová knihovna napsaná v jazyce C# zaměřená na interakce hybridních systémů s vlastními vizualizačními, datovými a výkonnostními funkcemi. Obsahuje kolekci objektů a chování pro vytváření dynamických interakcí více agentů.

Culebra

Odkaz: food4rhino.com

Javid Javid

JAVID je zásuvný modul pro grafický design a zpracování obrázků, vyvinutý v rámci workshopu Coding for architects na IAC. Dokáže znázorňovat obrázky pomocí různých grafických technik, například ASCII Art, String Art a mnoha dalších.

Javid

Odkaz: food4rhino.com

Parakeet Parakeet

Zásuvný modul Parakeet je kolekce komponent pro Grasshopper, zaměřená na algoritmické generování vzorů. Parakeet nabízí jedinečný a snadno použitelný přístup, který generuje geometrické a přitom organicky působící vzory a sítě.

Parakeet

Odkaz: food4rhino.com

 

 

Tvorba šperků

Peacock Peacock

Peacock je projekt pro vývoj algoritmické modelování šperků v prostředí Grasshopperu a Rhina. Umožňuje vytvářet parametrické šperky, generativní kolekce a nástroje na míru, optimalizovat náklady a zkoumat novou estetiku a pokročilá řešení pro design šperků.

Peacock

Odkaz: food4rhino.com

Grasshopper Gold Grasshopper Gold

Sada nástrojů pro šperkaře za účelem interaktivního návrhu parametrických šperků. Obsahuje generování kamenů, krapen, vrtáků, lůžek pro kameny, obrouček prstenů a mnoho dalších.
 

Grasshopper Gold

Odkaz: food4rhino.com

RhineGem RhineGem

RhineGem detekuje zlomy v uzavřených křivkách a vytváří kameny s rovinnými fasetami. Díky modulárnímu systému, v němž jsou korunová a pavilonová část odděleny, lze snadno vytvářet smíšené brusy, jako je například cejlonský brus.

RhineGem

Odkaz: food4rhino.com

 

 

Ovládání průmyslových robotů

HAL Robotics HAL Robotics

Přesná simulace v reálném čase, diagnostika trajektorie, pohyby zadané v kartézském nebo kloubním prostoru, simulace smíšených pohybů, online katalogy přednastavených robotů, nástrojů a ovladačů, připraveny k vložení do vašich skriptů.

HAL Robotics

Odkaz: food4rhino.com

KUKA|prc KUKA|prc

KUKA|prc umožňuje programovat průmyslové roboty přímo z prostředí parametrického modelování, včetně úplné kinematické simulace robota. Vygenerované soubory lze spustit na robotu KUKA, aniž by bylo nutné používat další software.

KUKA|prc

Odkaz: food4rhino.com

Robot components Robot components

Robot Components je zásuvný modul pro intuitivní programování robotů ABB. Robot Components nabízí širokou sadu nástrojů pro vytváření drah nástrojů, simulaci pohybu robotů a generování kódu RAPID v rámci Grasshopperu.

Robot components

Odkaz: food4rhino.com