por Marco Grubert
Traducido por Paulo N. Lama
"Qué cosa
tan compleja en su adición,
pero qué simples son sus graduados
pasos, el de formar un árbol.“
- Ward
El estudio de la morfología de la planta y del crecimiento de la planta ha interesado a investigadores para los milenios -- no solamente por razones de la supervivencia, sino también debido a el deseo de entender la naturaleza y de apreciar la belleza que percibimos en formas naturales.En el curso de la historia, ha ocurrido primero una abstracción para plantar las piezas, también conocidas como módulos [1] (las hojas, las flores, los brotes, etc.), y más tarde una reducción a las células. Sin embargo, un sistema universal para describir cambios en morfología de la planta en el nivel celular o modular tenía todavía ser ideado.
Los años 60 fueron dominados por el entusiasmo para la teoría formal de la lengua, como definido por Church, Backus, y Naur. Este entusiasmo para la secuencia reescrita dio lugar a lenguajes clásicos de computadora tales como Algol-60. Era en este contexto que el biólogo Aristid Lindenmayer primero presentó su modelo para el crecimiento celular usando los mecanismos de re-escribir secuencias [11].Diferenciando del Sistema Gramatical de Chomsky, este formalismo, que se ha conocido como Sistema de Lindenmayer o L-System, hace uso de reemplazos paralelos. La descripcion celular y del crecimiento vegetal a traves del uso de L-Systems ha causado mucha investigación interdisciplinaria, que no ha sido el caso con otros modelos de técnicas. Los científicos de los campos de las matemáticas, de la biología, de la botánica, y especialmente de la informática han contribuido al refinamiento y al realce del modelo que describo abajo. Originalmente, el énfasis de L-Systems fue basado solamente en el lazo topológico de células o de las partes más grandes de la planta. Los métodos para las descripciones geométricas exactas, necesarios para la visualización, fueron formulados más adelante. Uno de estos métodos es inspirado por los comandos del movimiento del cursor proporcionados por el lenguaje de programación de la LOGO [ 9 ]. El LOGO, un lenguaje preceptoral usado en la educación secundaria, tiene comandos incorporados en los gráficos, donde fácilmente se pueden visualizar los cambios realizados. La razón principal por la que este acercamiento ha ganado tanto renombre es su brillante presentación encontrada en un trabajo revolucionario que fue publicado en 1990 por Prusinkiewicz y Lindenmayer [ 15 ]. La notación que los autores resumieron está siendo utilizada actualmente por la mayoría de las aplicaciones de L-System.
Según lo mencionado arriba, muchas disciplinas de la ciencia han contribuido en la investigación de los L-Systems; en general, la información recolectada se puede resumirse de la siguiente manera:
*Botánica: Según la botánica, una planta se puede describir como arreglo de módulos funcionales tales como brotes, hojas o flores. Para las plantas individuales de la misma especie, sus módulos comparten los rasgos comunes (como por ejemplo: la tamaño y el color). Los L-Systems toman estos módulos como sus unidades básicas, que cambian con el curso del tiempo (simulado).
*Matemáticas: La teoría de lenguajes formales se ocupa de las
gramáticas que consisten en un alfabeto de los símbolos y de las reglas básicas
(producciones) para describir la síntesis de palabras de estos símbolos. Los
L-Systems son una aplicación interesante de la teoría del lenguaje formal.
Además, los L-Systems también tienen que ver con las conexiones al asunto de
fractals.
*Gráficos del ordenador: En gráficos del ordenador, los modelos visuales se describen a menudo usando los gráficos de escena [ 5 ]. Estos gráficos consisten en los varias primitivas (ej. líneas, triángulos, y cilindros) y transformaciones. Descrito por dislocaciones y rotaciones, las transformaciones definen el arreglo de todos los primitivos que estan contenidos. Las series en cadena del L-System se analizan para crear los gráficos de escena, que pueden entonces utilizarse para visualizar los modelos bidimensionales 2D o tridimensionales 3D.
En el texto siguiente, introduciré al lector a diferentes clases de L-Systems ordenados de menor a mayor complejidad. La complejidad significa que los actuales sistemas proporcionan a una potencia más expresiva y por lo tanto permiten que sea creada una variedad más grande de plantas. Tener un conocimiento de lenguajes formales es una ventaja pero ciertamente no es un requisito para entender esta introducción. Observe por favor que algunos temas (ej. NURBS, emergence) están mencionados sin proveer una explicación exhaustiva porque estos temas no son esenciales para comprender los L-Systems. La información detamañoda se puede encontrar en el material de referencia.
Primero, presento los L-Systems deterministas, de contexto libre (abreviados como DOL-Systems) que nos proporciona una base para la discusión siguiente. Después, explico cómo los resultados de los L-Systems, que son cadenzas o serie de caracteres, que puedan ser interpretados y visualizados, para así crear una estructura de ramificación fractal. Para asi ver su extension, los ligeramente limitados DOL-Systems, en seguida les explico el contexto sensible de los Sistemas Estocásticos de Lindenmayer. La sección de las observaciones contiene las comparaciones de las curvas de los L-Systems y de la curvas de Koch, así como observaciones respecto al problema de la series de notaciones. Finalmente, se discuten las aplicaciones actuales y los modelos alternativos.
Formalmente, un L-System simple es un tuple G = <V, w, P>que consiste en
V: un alfabeto,
w
V +
: que comienza con una palabra no vacía (o axioma) y
P: un conjunto de producciones
P
V x V *
Dependiendo del contexto, las letras del alfabeto podrían representar las células o los módulos, por ejemplo, V={ hoja, brote }. Observe por favor que las letras del alfabeto V no necesitan ser solos caracteres pero puede ser series arbitrarias. Para evitar cualquier malentendido, utilizaré el símbolo del término para denotar los elementos del conjunto V.
Las producciones describen el reemplazo de los símbolos por otros
símbolos. Este reemplazo funciona con la palabra actual en uso, que es
inicialmente el axioma. Después de que se hayan aplicado todas las producciones
aplicables (es decir, una vez que se hayan substituido todos los símbolos), la
palabra original se ha transformado en una palabra nueva, que será la palabra
actual para el paso siguiente del reemplazo. Ese paso del reemplazo (una
iteración puede ser visto como un intervalo de tiempo razonable, durante el
cual ocurre el desarrollo. Generalmente, las producciones se escriben de la
forma s
X.
Esto significa que todas las ocurrencias del símbolo s en la palabra actual
serán substituidas por la serie X.
En los L-Systems, en comparación con las gramáticas de Chomsky, no tiene
sentido de dividir el alfabeto en terminales (símbolos que no pueden ser
substituidos) y no-terminales (los
símbolos que se pueden substituir). Esto es porque no hay objetivo final en
naturaleza, y cualquier palabra representa un modelo válido. De acuerdo con la
definición antedicha, es posible que las producciones substituyan símbolos por
la palabra vacía
que remueve con eficacia ese módulo. Esto resulta conveniente,
ya que por lo general los reemplazos de la identidad no necesitan ser
especificados. Por lo tanto, para cualquier símbolo s
V existe una producción
implícita s
s.
Lo que sigue es un ejemplo simple que demuestra el reemplazo. Dado la especificación siguiente:
V = { Ramificación, Brote, ViejaRamificación }
W = brote
[Que vienen traducidos V = { Branch , Bud , OldBranch } ; W = brote En Ingles]
Producciones:
1: Brote
Ramificación
Brote
2:
Ramificación
ViejaRamificación
Con el uso de las producciones 1 y 2, la secuencia de la iteración está como sigue:
Brote = > Ramificación Brote = > ViejaRamificación Ramificación Brote = > ViejaRamificación ViejaRamificación Ramificación Brote = >...
El primer reemplazo invoca la producción una. El segundo reemplazo ilustra una característica típica de los L-Systems, el paralelismo. Ambos símbolos (ramificación y brote) se han substituido en un solo paso. La ramificación es substituida por la producción dos, y el brote es substituido por la producción una. Esto es biológico motivado; en naturaleza, el cambio ocurre en diversos lugares en el mismo tiempo. Mientras que puede ser que se parezca que esto es solamente una diferencia de menor importancia de las gramáticas secuenciales de Chomsky, que permite actualmente que los L-Systems creen una gama más amplia de lenguajes que las gramáticas comparables de Chomsky [ 15 ].
Tres pasos distinguen las Aplicaciones L-System:
1) Reemplazo paralelo de símbolos según las producciones.
2) Interpretación de la palabra actual para crear un gráfico.
3) Visualización de este gráfico si la información geométrica se codifica en la palabra actual.
Donde el primer paso ha sido explicado anteriormente; ahora miremos la interpretación y la visualización de las palabras derivadas.
La interpretación convierte la palabra actual a un gráfico arraigado. Interpretar una palabra del L-System es leido o repasado de izquierda a derecha con un símbolo localizado mas a la izquierda, que representa la raíz de la estructura. Cada módulo representado por un símbolo se asocia al módulo definido por el símbolo a la izquierda de él. Con esta clase de interpretación, solamente los arreglos lineares de módulos pueden ser creados, y por lo tanto, cada módulo está conectado con el mayor en modo descendiente.
Una de las características más obvias de las plantas es, sin embargo, su
estructura de ramificación. Para modelar la ramificación, es necesario asociar
más de un módulo a un solo padre. Se definen dos símbolos adicionales, los
corchetes, que marcan el principio y el extremo de una ramificación V ' =
V
{ [, ] }. Durante el análisis se interpretan estos corchetes como las operaciones
“push and pop” de una máquina de pila de archivos (stack) [ 2 ].
Una referencia al nodo actual se empuja (push), cuando un abre corchete [ se
encuentre. Se encuentran los nodos subsecuentes que se insertan normalmente
hasta el corchete de cierre que corresponde con el simbolo ]. A este punto, la
referencia se produce un “pop-back” (estamañor detrás), haciendo el nodo
referido como un padre para la ramificación siguiente. La cadena incluida en
corchetes correspondientes se puede interpretar como ramificación completa que
se ha agregado al módulo definido a la izquierda de esta cadena. Especificando
una secuencia de estas cadenas incluidas, un número arbitrario de
ramificaciones se pueden asociar a un solo módulo. Por supuesto, es también es
posible utilizar los corchetes jerarquizados según lo visto en el cuadro 1, que
representa la cadena siguiente como gráfico:
A [+B] [C [D] E] F
r
Cuadro 1: Representación del gráfico de una palabra del L-System "A [+B] [C[D] E] F "
Hasta ahora, hemos utilizado L-Systems para crear gráficos, y en subsecuentes iteraciones, reemplazamos los nodos en el gráfico usando producciones. Lo que falta, sin embargo, es el aspecto geométrico, que permite la creación de modelos gráficos. Los símbolos tales como los que está elegidos arriba ("hoja", "brote") pueden ser fáciles para que los seres humanos los interpreten, pero ellos no significan nada para un ordenador. Para remediar esta situación, las operaciones de los gráficos del estilo LOGO se insertan en el L-System como símbolos especiales. En el lenguaje LOGO utiliza la noción de un cursor, también conocida como tortuga, que puede ser rotada y ser movida a lo largo de su carril. Aquí están algunos de los símbolos especiales:
F: Mueva el cursor adelante por las unidades de n y trace una línea de la punta pasada a la posición actual
f: Mueva el cursor adelante por las unidades de n, pero no trace una línea
+: Dé vuelta el cursor a la izquierda por grados alfa
-: Dé vuelta el cursor en sentido de las agujas del reloj por grados alfa
!: Dé vuelta el cursor en 180°
Las operaciones de la pila [ y ] se extiende “push and pop” la posición del carril del cursor, además del nodo actual. Deje que el cursor se situe en la posición original (0, 0) en un sistema cartesiano, señalando hacia el eje-y positivo, con n = 1 unidad y alfa = 20°. Entonces el L-System siguiente creará las imágenes (escaladas) representadas en el cuadro 2.
V = { F , + , - , [ , ] }
w = F
1: F
F F + [ + F - F
- F ] - [ - F + F + F ]
Cuadro 2: Iteraciones 0,,3 de un L-System ramificado. Las diversas ramificaciones y sus codigos estan coloreadas en la iteración 1.
En el ejemplo antedicho, es necesario definir el tamaño de los pasos y el ángulo de la rotación externa de la especificación del L-System. Si el modelo utiliza diversos ángulos o tamaños de los pasos, entonces sería necesario encontrar un denominador común y combinar varios símbolos de la transformación que crean la rotación o la traducción deseada. Por ejemplo si se va a modelar una estructura con ángulos de 10° y de 40°, tendría sentido de fijar alfa = 10° y de utilizar la palabra siguiente (donde cada uno + representa una rotación de 10°):
+ F ++++ F
Una mejor aproximacion es utilizar los parámetros que especifican estos atributos:
+(10) F(1) +(40) F(1)
Agregando parámetros a los módulos no solamente tiene sentido para los símbolos geométricos predefinidos, sino también para los símbolos definidos por el usuario. El significado de un parámetro definido por el usuario está en el diseñador del L-System. Los parámetros se han utilizado para salvar la edad, el tamaño, y los niveles hormonales intracelulares de las distintas piezas de la planta. Para hacer uso esta información adicional guardada en parámetros definidos por el usuario, la definición de producciones necesita ser cambiada también. Un simple L-System paramétrico es definido de la siguiente manera:
V = { Flor }
w = Flor ( 2,0 )
1: Flor ( Timer
): Timer > 0,0
Flor (Timer-1.0)
2: Flor ( Timer
): Timer < = 0,0 
En el lado izquierdo está el nombre del símbolo, tan bien como un parámetro formal llamado Timer o Temporizador. Si este parámetro formal se encuentra a otra parte en la misma producción, será substituido por el valor real del módulo actualmente bajo consideración. Esta clase de substitución de parámetro ha conducido a investigadores a interpretar producciones como definiciones de la función similares a ésas encontradas en C, PASCAL, etc.
La parte media de la producción tiene que ser una expresión boleana y puede contener a operadores de comparación. Los operadores boleanos y de la comparación siguen sintaxis de C. Si la expresión evaluada es verdadero, entonces el módulo es substituido por el lado derecho de la producción. Como puede verse en la producción 1, es posible realizar cálculos en el lado derecho. Para una palabra que comienza de w = Flower(2,0), las palabras siguientes serán creados por las producciones antes mencionadas arriba:
Flower( 2,0 ) =
> Flower( 1,0 ) = > Flower( 0,0 ) = >
Debido a que no se utilizaron símbolos geométricos, esta secuencia no puede ser visualizada fácilmente. Si el símbolo " F " de la traducción, según lo definido en la sección de la visualización de mas arriba, había sido utilizado en vez de una "Flor" , donde una animación podría ser creada, en la cual una línea es acortada por una unidad por cada paso del tiempo y finalmente desaparece. Este es un ejemplo muy simple, pero espero que sea obvio que los L-Systems paramétricos proporcionan un poderoso mecanismo para crear animaciones del cambio en geometría así como topología.
Con los L-Systems de contexto libre (OL-Systems), se ha dicho que la información solamente es intercambiada entre el módulo substituido y su módulo que substituye. En contraste, los sistemas vivos confían altamente en el intercambio de información entre los módulos vecinos. Para capturar este aspecto, se han introducido los L-Systems sensibles al contexto (IL-Systems). Una vez más, las producciones se cambian levemente para incluir las restricciones en el contexto del módulo que se substituirá.
V = { A, B, C }
w = A( 5,0 ) B( 0,0 ) C ( 0,0 )
1: A(amount)
< B > C : true
B( amount )
2: B(amount)
< C: amount > 2,5
C( amount-2.0 )
Aqui, las producciones lucen un poco diferente a las discutidas hasta ahora. El símbolo que se substituirá está todavia situado en la cara izquierda, pero es incluido por uno o dos corchetes. Estos corchetes delimitan el contexto a la izquierda y a la derecha, respectivamente. Las producciones solo serán aplicadas, cuando el símbolo es encontrado en el contexto especifico, y cuando la pre-condición pueda ser evaluada con éxito. La segunda producción contiene apenas un solo corchete, en donde solamente el contexto izquierdo ser chequeado para saber si hay cadenas que correspondan; ignorandose el contexto del lado derecho.
Iteraciones para el ejemplo de arriba:
A(5.0) B(0.0) C (0,0) = > A(5.0) B(5.0) C (0,0) = > A(5.0) B(5.0) C(3.0) = >...
En este ejemplo, un valor se pasa de izquierda a derecha. En la primera iteración, la producción 1 puede ser aplicada porque en el axioma está un símbolo B, que tiene el símbolo A como su izquierda y símbolo C como su derecha del contexto. B es substituido por un B nuevo que tenga como su parámetro que el valor guardada originalmente en A. Note que no se define ninguna producción que funcione con A, por lo tanto su valor sigue permaneciendo constante a través del proceso de la derivación. También en la iteración 1, aparece como si la segunda producción se podría aplicar también; hay un símbolo B a la izquierda del símbolo C según lo definido por la producción 2. Sin embargo, el valor original guardado en B era 0.0 , que está por debajo del umbral definido en la pre-condición de esa producción (cantidad o "amount > 2.5"). Por lo tanto C no puede ser substituida. En la segunda iteración, B experimenta un reemplazo de identidad debido a la producción 1. Esta vez, producción 2 también puede ser aplicada. El valor de C es calculado basandose en el valor guardado en el símbolo a la izquierda de él. La segunda producción se puede interpretar como transferencia de parte de la cantidad de B a C si está por encima de cierto umbral (2.5).
Este ejemplo no es suficiente para un modelo realista de intercambio de información. Sin embargo, esto muestra, que es posible utilizar la información guardada en los módulos vecinos para la toma de decisiones y el cómputo.
Los Sistemas Lindenmayer son generalmente sietemas deterministas. Así cada vez que se deriva una palabra usando un sistema dado, las palabras que resultan serán iguales. Por lo tanto, puede ser dicho que los L-Systems describen las plantas individuales, pero no la especie de la planta. Esto no siempre sucede como uno quisiera. Imagínese al visualizar de un campo completo de flores. Si solamente un L-System fuese utilizado para describir cada flor, después los resultados parecerían poco realistas. Por otra parte, crear un solo L-System con las producciones individuales para cada planta sería una tarea larga y aburrida, y todavía no podría garantizar semejanza entre los individuos.
Qué se puede hacer en vez de utilizar L-Systems probabilisticos/estocasticos. Éstos proveen de producciones alternativas con la misma cara del lado izquierdo, pero de diferentes caras derechas, donde cada uno de estas alternativas se le asigna una probabilidad. Esta probabilidad se escribe arriba o delante del símbolo de la flecha. Si durante la derivación se encuentra una situación donde más de una producción podria coincidir, un generador de números al azar se emplea para seleccionar a uno de ellos basandose en su probabilidad asignada. El ejemplo de abajo del cuadro 4 demuestra cómo pueden crearse diferentes resultados a partir de la misma especificación del L-System.

Cuadro 3: Un L-System estocástico. Observe por favor las probabilidades de la producción encima de las flechas.
Las producciones deterministas se pueden considerar como caso especial de las producciones probabilisticas, donde la probabilidad es igual a 1. Esta observación se puede utilizar para crear las especificaciones del L-System para una especie de la planta: esos procesos de desarrollo que ocurren en cada planta individual se codifican en producciones con una probabilidad de 1. Se especifican los procesos que pudieron ser diferentes para cada planta individual usando la producción alternativa s con las probabilidades menor que uno.

Cuadro 4: Un grupo de la muestra creado por un L-System estocástico. Aunque cada individuo es diferente, ellos parecen pertenecer a la misma especie.
Los resultados generados a través de L-Systems estocásticos son diferentes para cada proceso de derivación., Sin embargo, a veces puede ser que sea deseable reproducir cierta derivación. Esto se puede hacer usando un truco simple - como la mayoría de los generadores del número al azar no son realmente al azar, pero si se basan algo en una serie de números aparentemente al azar, que es suficiente observar el número que comienza (también llamado la semilla ) y utilizar ese número que comienza, más adelante para producir los mismos resultados.
Un fenómeno que nunca deja de sorprender incluso al más experimentado diseñador L-System se conoce como aparición o emergence[ 10 ]. Este término refiere a la creación de complejas estructuras que comienzan a partir de datos simples. Los efectos similares se pueden observar en la teoría de fractals y son de gran importancia a la investigación de la vida artificial.
Los L-Systems también se relacionan de cerca con las curvas de Koch, tales como la famosa curva del copo de nieve. Sin embargo, hay diferencias sutiles en términos de sus interrelaciones. Una curva de Koch es un conjunto de segmentos de línea orientados sin la información topologica. Las palabras del L-System, por otra parte, contienen la información topologica, y así que cada módulo es dependiente en su padre. Esto se ilustra en el cuadro 5.

Como puede observarse en la discusión anterior, definir un L-System es un trabajo simple; sin embargo, la generación de un L-System que se asemeje de cerca a las plantas existentes es una tarea difícil. Esta dificultad es doble; primero, existe el problema de la aparición, y en segundo lugar está el problema de la representación no-intuitiva.
Al modelar una planta dada, uno sabe el resultado deseado y los pasos intermedios para proceder, y así que uno puede intentar crear correspondecias de tipo L-Systems. Sin embargo, la aparición (relacionada con la amplificación de la base de datos [ 17 ]) evita fácilmente el estimar de los resultados de éstos. En términos de lenguajes formales, el problema se puede describir en cómo encontrar un lenguaje que cree un número de palabras en determinado orden.
Debido a que las estructuras tridimensionales (3D) son descritas usando una notación de la cadena en una sola dimension (1D), a menudo es difícil ver lo que crea una cadena. Para superar este problema de la representación no-intuitiva, algunas sugerencias se han hecho. El ambiente integrado del desarrollo del " L-Arbor " [ 8 ], por ejemplo, permite el especificar de la cara derecha de producciones usando un editor 3D, para evitar el complejo sintaxis. Semejantemente, un editor gráfico proporciona la especificación de la hoja usando NURBS [ 5 ]. NURBS (Non-Uniform Rational B-Splines , es decir B-Tiras racionales no uniformes) son un método para definir curvas especificando un número pequeño de los puntos de control, que se interpolan entonces, para formar una curva o una superficie lisa. Aunque, solamente los aspectos visuales de un L-System se pueden definir usando este acercamiento. En la práctica, sin embargo, uno puede encontrar a menudo especificaciones del L-System donde está inicialmente invisible un módulo y solamente más adelante se puede convertirlo a un módulo visible. Corregir o editar producciones en la notación del gráfico en vez de la notación de la cadena es un acercamiento similar que permite especificar las partes sin visualización de una producción en una manera más fácil.
Puesto que este artículo se refiere a los L-Systems, otros mecanismos de generación de la planta se pueden mencionar brevemente. De Reffye [ 3 ] presentó un influyente modelo inspirado en la biologia para la generación procesos de la planta. En su acercamiento, probabilidades para ciertos acontecimientos de la planta (ramificación del brote, mortalidad, dirección del crecimiento, etc.) se le asignan a los grupos de las ramificaciones. Por lo tanto, especificando un número pequeño de parámetros, una variedad amplia de diversas especies pueden ser modeladas. Un realce reciente a este paradigma que modelaba usando el editor visual y el control del crecimiento ha sido implementada por Lintermann y Deussen [ 12 ]. En general, la facilidad del diseño encontrada en la generación de los procesos de la planta es lograda al coste de tener el control completo sobre el modelo, puesto que los únicos atributos que pueden ser simulados son ésos proporcionados por la simulación del framework. Por otra parte, los L-Systems son mucho más generales y se pueden utilizar producir modelos matemáticos también. Más exacto, en la naturaleza recurrente, lo que es esencial para los modelos fractales, está faltando el acercamiento en los procesos, propiamente tal.
Las plantas no existen en un vacío, sino en un ambiente que pueda utilizar, soportar u obstaculizar el desarrollo. Tendrils, por ejemplo, es dependiente en obstrucciones para crecer hacia arriba. En generales, los organismos vivos estan inmersos en un ecosistema, que afecta organismos y es afectado por ellos. Preguntarse acerca los módulos (query modules), un mecanismo de uso general para obrar recíprocamente con otros procesos, han sido introducidos [ 13 ]. Estos módulos intercambian la información por programas definidos por el usuario utilizando símbolos paramétricos. Una palabra del L-System se pasa a la aplicación requerida, que lee los datos necesarios de ella y vuelve datos substituyendo algunos de estos parámetros. Los módulos de Preguntas (query modules) también se han utilizado para extraer las coordenadas y la orientación absolutos. Aquí hay tres parámetros se utilizan para extraer un vector de la dirección o de la posición del simulador del L-System. Las pre-condiciones de producción después se chequean para saber si hay valores específicos y actúan coordinadamente (ej. evitando un obstáculo). Los impresionantes resultados visuales de un jardín topiary se reproducen en el cuadro 6. Mientras que es bueno que estos mejoramientos funcionen en el formalismo de L-Systems, porque re-definir los complejos ambientes que usan ecuaciones en condiciones previas es inadmisible. Por esta razón, he utilizado un acercamiento levemente diverso para el " L-Arbor ": un polígono 3D como fichero estándar es cargado y se utiliza como volumen de limitación. Si cualquier colisión entre el modelo y el volumen de limitación, entonces se fija un solo parámetro que se puede preguntar usando pre-condiciones. Greene ha precisado las ventajas computacionales del funcionamiento en el espacio voxel para rápidamente controlar para saber si hay obstrucciones como por ejemplo, en la determinacion de la iluminación directa [ 5 ].

Cuadro 6: Un modelo sintetizado del jardín topiary en Levens Hall, Inglaterra (de [ 17 ])
Finalmente, cuando se construyen las animaciones, otro problema ocurre que requiere nuestra atención. Los L-Systems trabajan con pasos discretos de tiempo. Mientras que estos pasos discretos de tiempo se pueden elegir para ser arbitrariamente pequeños, una vez que se fijen, es duro cambiarlos. Más aun, dependiendo de la ampliación, durante las animaciones es posible ver como los módulos nuevos repentinamente aumentan y cambian su apariencia. Una solución descrita [ 16 ] ha sido sugerida por Prusinkiewicz y su grupo. Ellos proponen que en vez de cambios discretos en los parámetros, las ecuaciones diferenciales pueden ser utilizados para los cambios del parámetro. Los cambios geométricos entonces ocurren en tiempo continuo, mientras que los cambios topológicos son los acontecimientos discretos que trabajan como L-Systems ordinarios. Se crea esta manera, una especificación discreto-continua combinada, que cuando está diseñada correctamente elimina los artefactos visuales apenas mencionados [4 ]. Estos L-Systems diferenciados (dL-Systems) han sido implementados en "cpfg " [14 ] y en " L-Arbor " [8 ]. Hay algunos puntos sutiles que necesitan ser consideradas al diseñar dL-Systems, pero están más allá de nuestro alcance. Si el lector esta interesado puede referirse a la bibliografia numeros [16 ] y [7 ] para más información.
La noción y la notación de L-Systems han experimentado un número de cambios, dedes una construcción puramente teórica para describir el crecimiento celular hasta una herramienta versátil para crear modelos mas realistas de estructuras orgánicas. Esto ha sido posible a traves de continuos esfuerzos en incrementar el poder de la expresión y de los avances hechos en el campo de lenguajes formales en general. Sin embargo, está llegando a ser obvio que la notación usada para los L-Systems es de gran alcance, pero es también difícil aprender y dominar. Además, las limitaciones de las consideraciones del diseño pasadas de moda (ej., caracteres del uso 7-bit ASCII de los L-Systems) parecen obstaculizar los grandes adelantos. Por esta razón, dos diversos acercamientos han emergido. El primer continúa la vieja tradición y proporciona el soporte para los modelos matemáticos y las simulaciones realistas, que requieren el control de los módulos individuales. El otro acercamiento se refiere solamente al fácil-uso y a la semejanza visual entre el modelo y la realidad. Existirá una manera de juntarse estos dos acercamientos, teniendo en cuenta las poderosas simulaciones de gran alcance y la facilidad de usar en el mismo tiempo?
Desde un punto de vista filosófico, uno tiene que preguntarse si se emplea un modelo de crecimiento usando unidades atómicas (los módulos o las células) realmente tiene mas sentido. La inclusión de parámetros con valores reales y de ecuaciones diferenciales muestra que por lo menos los atributos de las piezas de la planta no se pueden partir en unidades distintas. Quizás se deba emplear un modelo totalmente diferente, uno que se base en la noción de una estructura continua con parámetros continuos, en vez del modelo actual que representa una estructura discreta con parámetros continuos.
El desafío más grande para las simulaciones futuras de las plantas, sin embargo, será integrar constantemente factores ambientales, tales como plantas circundantes, obstrucciones, disponibilidad del agua y de sales minerales, y condiciones de la iluminación. Cambios en la disponibilidad de los recursos, influyen en el crecimiento vegetal, que alternadamente da lugar a un cambio en los mismos recursos disponibles. Los poderosos modelos de gran alcance y un poderoso hardware serán necesarios simular con eficacia estas interacciones recurrentes de estructuras recurrentes.
Biografía
Marco Grubert (grubertm@hotmail.com)
ha recibido recientemente un grado de MSc de la universidad Técnica de Berlín, Alemania
en Licenciatura en Ciencias Informática con menciones en filosofía. Sus
intereses principales son VR (Realidad Virtual), simulaciones físicas, y AI. Él
está buscando actualmente el empleo en el mundo real antes de volver a la
academia para sus estudios doctorales que sean relacionados con los gráficos 3D
de una cierta manera.