GRASS era similar a BASIC en sintaxis, pero agregó numerosas instrucciones para especificar la animación de objetos 2D, incluyendo escalamiento, traducción, rotación y cambios de color con el tiempo.Rápidamente se convirtió en un éxito con la comunidad artística que estaba experimentando con el nuevo medio de gráficos por computadora, y seguirá siendo más famoso por su uso por Larry Cuba para crear la original "attacking the death star will not be easy" animación en Star Wars.Una versión posterior que fue adaptada para soportar gráficos raster se conocía como ZGrass.
Sandin se había unido a la universidad en 1971 y se dedicó a construir lo que consideraba la versión en vídeo de un sintetizador Moog, conocido como Sandin Image Processor, o IP.
Para hacer el sistema más útil, DeFanti y Sandin agregaron todo tipo de comandos "únicos" al sistema GRASS existente, pero estos cambios también hicieron que el lenguaje fuera mucho más idiosincrático.
Es sólo durante los tiempos cuando se presenta un nuevo escenario que las comunicaciones mucho más lentas con el lenguaje GRASS tiene lugar.
En 1977 DeFanti fue presentado a Jeff Frederiksen, un diseñador de chips que trabajaba en Dave Nutting Associates.
La Z-Box era una máquina gráfica raster, a diferencia de los sistemas GRASS originales, por lo que mientras que la mayor parte del estilo GRASS3 se mantuvo en Zgrass, agregó una serie de comandos dedicados a las imágenes ráster.
Existían versiones para DOS, Windows, plataforma SGI usando OpenGL, HP-UX, AIX, Macintosh y Amiga.
Simplemente escribiendo MYBOX a partir de ese momento, ejecutaría el comando (s) dentro.
En su lugar, incluyeron un compilador que podría utilizarse en cualquier macro en particular, acelerándolo muchas veces.
Zgrass utilizó un editor de pantalla completa más avanzado que eliminó esta necesidad.
Zgrass también incluía ramas sin nombre, usando la instrucción SKIP, que avanzaría o retrocedería un número dado de líneas.
Esto agregó una forma simple de multitarea que era tremendamente útil en un lenguaje orientado a la animación.
Zgrass incluyó una función TIMEOUT que llamaría a las macros en una base cronometrada, haciendo la implementación de temporizadores muy fácil.
Con programas construidos a partir de módulos seleccionados al azar, Zgrass necesitaba tener un mejor control sobre sus variables que BASIC.
Para abordar este problema, Zgrass consideró que las variables nombradas con letras minúsculas eran locales sólo para esa macro.
Esto permite que una sola macro se use interactivamente y dentro de un programa como Una función.
En este ejemplo, el usuario suministrado OFFSET mueve la posición x de la curva en la pantalla, mientras que la posición Y es suministrada por la función trig, ampliada adecuadamente para su visualización (en este caso, 80 veces).