# Grasshopper 3D

Grasshopper es un lenguaje de programación visual desarrollado por David Rutten en Robert McNell & Associates. 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. Muchos de los componentes de Grasshopper crean geometría 3D. Los programas pueden también contener otro tipo de algoritmos, tales como los numéricos y textuales audiovisual y aplicaciones hápticas.
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.

## Interfaz de usuario

Grasshopper tiene una IGU muy avanzada, tiene muchas características que son difíciles de encontrar en software de producción. Se ha puesto sobre la mesa si la presencia de estos elementos mejora o impide el uso al ser una interfaz para programar. La ventana principal está compuesta por paletas de componentes y el área de trabajo o canvas. Además posee elementos estándar de la IGU de Windows, tales como la barra de título, el menú y la barra de estado. Al ser un plug-in que corre en una ventana aparte, el layout que presenta la ventana es muy simple. Debajo se muestra un lista de algunos elementos de la interfaz de usuario.
| GUI Element | Descripción |
| MDI | El menú de la MDI muestra pequeñas vistas previas del documento activo |
| Find | El diálogo DE Find provee retroalimentación espacial y textual en función de la búsqueda realizada. Los objetos son remarcados en el área de trabajo con un envolvente denominado Meatball y señalados con pequeñas flechas contenidas en una ventana emergente. |
| Prediction | Una base de datos de la cadena de Márkov almacena las acciones de adición del usuario, esto permite que Grasshopper pueda, eventualmente, predecir con un nivel de precisión razonable los comandos que el usuario podría llamar. Estos comandos son ubicados en una tira de herramientas dentro del área de trabajo. |
| MRU | Del inglés Most-Recently-Used, este menú muestra tanto una amplia colección de documentos usados previamente, como la disponibilidad de cada archivo. Los archivos que ya no están presentes en el sistema e muestran en una escala de grises. Las categorías en las que el MRU divide los periodos son “Just Now”, ”Today”, “Thursday” y “Last Week”, haciendo mucho más fácil localizar determinado documento. |
| ZUI | Algunos de los elementos dentro del área de trabajo ajustan su visualización en función del nivel de acercamiento o zoom. Este elemento permite una visualización más limpia y eficiente cuando se disminuye le nivel de zoom y muestra información adicional cuando se hace un acercamiento. |
| Color | El selector de color predeterminado es capaz de mostrar transparencia. |

## Ejemplos

* ↑ A sample of grasshopper generated formsAkos, Gil; Parsons, Ronnie, Casino Studiomode (Blog), StudioMode Beta .
* ↑ , pudiendo así generar listas de funciones conectadas a canales de transmisión de datos que contienen información en números y texto.Fraguada, Luis. «LaN co-director».
* ↑ Andrew, Kudless (July 2011). «Co-Coordinator CCA MediaLab. San Francisco, CA». Biodynamic Structures Workshop. California College of the Arts, San Francisco: AA San Francisco Visiting School. pp. http://www.flickr.com/photos/tags/biodynamicstructures/. Consultado el 9 de febrero de 2011.
* ↑ Payne, Andrew, USING A WII TO CONTROL GRASSHOPPER .

## También ver

* Diseño asistido por computadora
* Programación visual