Lenguaje de Programación Visual (Grasshopper)
Introducción
Grasshopper es un lenguaje de programación visual desarrollado por David Rutten en Robert McNell & Associates.[1] Grasshopper es un plug-in que corre dentro de la aplicación CAD Rhinoceros 3D. Los programas son creados arrastrando componentes en el área de trabajo. Los componentes tienen entradas y salidas, las salidas se conectan a las entradas de los componentes subsecuentes. Es utilizado principalmente para programar algoritmos generativos.[2][3] Muchos de los componentes de Grasshopper crean geometría 3D.[ex 1] Los programas pueden también contener otro tipo de algoritmos, tales como los numéricos y textuales[ex 2] audiovisual[ex 3] y aplicaciones hápticas.[ex 4].
La primera versión de Grasshopper, llamada Explicit History en su momento, fue publicada en septiembre de 2007. Actualmente está disponible una versión beta, siendo esta una fase de desarrollo. Al estar aún en desarrollo se ofrece de manera gratuita sin fecha límite. A pesar de lo anterior, es necesario contar con una licencia de Rhinoceros 3D 4.0 o posterior para poder correr el programa.
Editor basado en nodos
La principal interfaz para el diseño de algoritmos en Grasshopper es el editor basado en nodos. La información va de componente en componente por medio de cables que conectan salidas con entradas. La información puede ser también definida de manera local como una constante, puede ser también importada desde un documento existente de Rhino. La información es almacenada en parámetros, mismos que pueden estar conectados o no a otros componentes.
En la imagen que se muestra arriba se aprecian tres componentes flotantes que están unidos a un componente de substracción. Las dos cajas amarillas ubicadas en la izquierda definen una serie de constantes numéricas. En la parte superior se muestran paneles que contienen cuatro números enteros (6,7,8 y 12) mientras que en la parte inferior el panel contiene solamente un número. Estos parámetros flotantes proveen datos al componente de substracción, que resulta en la salida de cuatro valores (6-5=1, 7-5=2, 8-5=3 y 12-5=7). El mismo proceso puede lograrse con expresiones textuales y un componente de evaluación. Este software permite combinar programación visual y escrita en el mismo ambiente de trabajo.