Archive for the ‘Growth’ Category

Workshop RhinoScript at ETSAM(Madrid)

Monday, April 20th, 2009

The last week I have been teaching at ETSAM in Madrid, doing a RhinoScript Workshop in GIGA  Departamento de Ideación Gráfica. Most of the Participants are professors of the university with high levels of mathematics and geometry. The rest, students with high levels in scripting (VB and processing). The workshop lasted two days, we start with Data Types, Mathematical Operations, Conditionals, Loopings, Arrays, Functions and Advanced Functions, Curves Analisys, Surface Analysis, Generation of Surfaces by Parametric Equations (in the group we count with a mathematician), Fractals and Recursion.

The atmosphere during the workshoop was really cool!. I would personally like to thank: Carmen García Reig (Organization and invitation), Ismael García (Organization), Antonio Casas (the mathematician), Pablo Miranda Carpintero (I’m eager to see the programming in Sketch-up), Tomás Pineda (Images), Miguel Vidal, see his blog: arquitecturaprogramable.es

With no particular order, some images of the projects during the workshop.




Tomás Pineda:

tomas4

tomas3

tomas2

tomas1




Pablo Miranda

pablo4

pablo3

pablo2

pablo1




Miguel Vidal

miguel8

miguel7

miguel6

miguel5

miguel4

miguel3

miguel2

miguel1




Ismael García

ismael4

ismael3

ismael2

ismael1




Carmen García Reig

carmen3

carmen2

carmen9

carmen8

carmen7

carmen6

carmen5

carmen4

Tree-like Pergola

Sunday, March 2nd, 2008

This is a simple example of the many applications offered by the iterative branching system developed so far.

It’s a pergola supported by tree-like structures, created with the same system, varying the parameters of the function that calculates the deviation in x, but maintaining growth parameters in z.

The pergola itself is made of NURBS joining the endpoints of each last branch.

The resulting object might be seen as a sculpture of architectural scale. At this stage, any structural calculation hasn’t been done.

by Ernesto Bueno

Thanks to Gonçalo Castro Henriques for the references.

Genr8

Sunday, February 24th, 2008

Genr8 is a plug-in for maya and works generating surfaces. It is very interesting because fuse the universal growth conditions with evolutionary search.

Genr8 it is developed via API of Alias|WaveFront’s and Combine 3D Map L-System that growth in a digital environment, with gramatical evolution. the seed is designed to react of the digital nature and give to the user the control during the evolutionary adaptation, Genr8 dosen’t have structural or material criteria, and the most of the times the results are closer to the chaos.

Genr8 was Developed by Martin Hemberg and Una – May O’reilly and the people of the Emergent Design Group from the MIT.

salida6.jpg

Genr8 has a lot of components to create and evolve differents elements, like curves and surfaces.

Attractors, > act attracting surfaces.

Repellors, > similar like attractor but in a oposite way.

Gravity, > as it`s name, act in an uniform way in the global coordinates (x, y, z)

Boundaries, > you can create boxes, surfaces, to act like boundaries of the growth.

Seeds, > the seed by default it is a regular polygon, and you can control the side, starting position of the polygons, also you can define your own seeds, for example drawing curves or using the grammar of genr8.

this example represent a square:

Edge0 + ~ Edge1 + ~ Edge0 + Edge1
Edge0 -> Edge0 [ [ + Edge1 ] – ~ Edge1 ] Edge0
Edge1 -> Edge1 [ [ + Edge0 ] – ~ Edge0 ] Edge1
Angle 90

there are some conditionals to create grammar, In the first line you have to define the Axiom, and only can be a regular polygon, and may only contain ” + “, “~” and Edge(number). Each word should be separated by one space, and the lines need a return. and the comments have to be in separated lines and starting like C++ with two “//”, so there are more elements and rules to create seeds by grammar, but this is an idea how can they work.

To create my Own grammars I start using the predifined types and then looks how they work and so on…

After you define your grammar you have to define the different elements of the growth, for example:

n/ -> the number of the growth steps

s/ -> the sacale of each growth step

rn/ -> the noise that you want in the growth.

fc/ -> fix the center of the growth

ds/ -> if you want draw every step of the growth

and there are too much Mel commands to create and define the environment.

So the plugin has to control: the scaffold, the environment, the Grammar, the Genetic Engine and the Fitness.

The first exercises come from the page and the papers who explain genr8. the other ones are developed by me.

captura-pantalla.jpg

Default Examples:

genr8 -kc

genr8 -fp -sl 8 -n 5 -ba 70 -t 4 -r 0 0 3 -rn 0.1 -s 1.1

polyCube -w 3 -h 4 -d 3
genr8 -t 3 -rn 0.1 -n 4

polyCube -w 3 -h 4 -d 3
genr8 -t 3 -n 5 -a 0 0 4 -g z -0.5

PolySphere -r 5
genr8 -t 4 -n 5 -ba 90 -g z -1 -sp 0 0 7 -sl 3 -s 1.3

genr8 -t 4 -n 6 -ds -s 1.3 -r 0 0 -3 -r 0 4 0 -ba 90 -r 1 -3 -4 -r 2 2 5 -r -3 -2 1

genr8 -t 3 -n 5 -g z -1 -r 0 0 -3

polyCube -w 3 -h 4 -d 3
genr8 -t 4 -n 5 -r 3 3 3 -co

personal experiment:

genr8 -n 5 -rn 0.2 -t 4 -r 0 0 3
-intersting surface results

-Variation 1
genr8 -n 5 -rn 0.2 -t 4 -g z -1 -r 0 0 -3

-Variation 2
genr8 -n 8 -rn 0.1 -t 3 -g z -1 -r 0 0 3 -r 0 0 -3
polyCube -w 15 -h 15 -d 5
genr8 -n 5 -rn 0.2 -t 4 -s 1.2 -a 7.5 7.5 -1 -a -7.5 7.5 -1 -a 7.5 -7.5 -1 -a -7.5 -7.5 -1 -r 0 0 -1
-before to execute, create the polyCube and select it.

-Variation 1 the same thing, select the Polycube before
genr8 -n 4 -rn 0.2 -t 4 -s 1.2 -a 3 3 -1 -a -3 3 -1 -a 3 -3 -1 -a -3 -3 -1 -r 0 0 -1

-Variation 2
-Select the polyCube to get a crazy result in the box.
-or leave it to run free to produce some kind of flower.
genr8 -n 8 -rn 0.2 -t 4 -s 1.2 -a 2 3 -1 -a -2 3 -1 -a 2 -3 -1 -a -2 -3 -1 -r 0 0 0

-looks some familiar element
genr8 -n 8 -fp -t 4 -r 0 0 -5

salida1.jpg

salida2.jpg

salida3.jpg

salida4.jpg

salida5.jpg

Iterative Branching I

Sunday, February 24th, 2008

After experimenting with L-systems, the present study focuses on RhinoScript. Using the methodology of L-systems’ computation, I have developed scripts that build systems of branch bifurcation. This time, it addresses the problem of (non-recursive) iteration.

The iteration is done through an incremental loop prior input of system parameters: quantity of iterations, deviation factor and thickness factor for the branch. Each iteration defines a starting point and two endpoints to build a pair of cylindrical branches.

As the system grows, it will change the thickness of the branch and the opening of the bifurcation. This opening can increase or decrease depending on the function applied to the displacement of the endpoint, defining the deviation.

To make calculations short, for now the system is two-dimensional; meaning that deviation of branches only happens in x, and growth in z.

In the case studies, we can see different combinations of functions for deviation and growth: increasing, decreasing and fixed.

In script execution, the construction of the system is not automatic; it prompts the user to select the branch to bifurcate, so the user can decide the structure to build.

The last image shows a comparison of different structures built with the same system, using the same parameters.

by Ernesto Bueno

eb_0201.jpg

eb_0202.jpg

eb_0203.jpg

Iterative vs. Recursive Branching Systems

Saturday, February 16th, 2008

This is a study on re-writing systems (iterative and recursive) and its implementation in formal models of emerging structures, especially branching structures. The development of models of different iterative systems (as loops) and recursive systems (self-repetition) is done through computation: D0L-systems (analog computing), L-systems (with LParser based programs), and RhinoScript. I’m trying to reach similar formal solutions with different methods. Subsequently, the results obtained are compared, as long as their methods.The study is part of my PhD research on the extrapolation of structural systems of trees for developing generative architecture. The first goal is to acquire knowledge in both re-writing systems and computing techniques, but also to get an idea on which methods are closer to natural emergence. Specially when comes to tree structures. Some of these first images are illustrations of a summary for a paper.

More soon

By Ernesto Bueno

eb_0101.jpg

eb_0102.jpg

eb_0103.jpg

eb_0104.jpg