# mayation_

## Leaf

Posted in parametric design, results by A. Benjasem on August 8, 2010

hj

## back to L-system

Posted in parametric design, results by A. Benjasem on August 8, 2010

## Lorenz attractor

Posted in MEL script by A. Benjasem on September 3, 2009

Parametric forms are created using mathematical formulas. Those formulas could be as simple as x + y = 22, or they could be generated from complex mathematical systems that have already been set by scientists and mathematicians. In this post, we’re exploring a system initiated by Edward Lorenz who was studying the movement and behavior of gaseous systems. He came up with the following formula that can be used to draw and trace the path of the gas molecules.

dx = delta * (y – x)

dy = r * x – y – x * z

dz = x * y - beta * z

global proc Lorenz() {
\$iterations = 2000;
float \$x = 1.0;
float \$y = 1.0;
float \$z = 1.0;
float \$newdx;
float \$newdy;
float \$newdz;
int \$i = 0;
curve -n Lorenz -d 3 -p \$x \$y \$z;
do {
\$newdx = dx(\$x, \$y, \$z);
\$newdy = dy(\$x, \$y, \$z);
\$newdz = dz(\$x, \$y, \$z);
\$x = \$x + (0.01 * \$newdx);
\$y = \$y + (0.01 * \$newdy);
\$z = \$z + (0.01 * \$newdz);
curve -a -p \$x \$y \$z Lorenz;
\$i++;
} while (\$i < \$iterations);
}
global proc float dx(float \$x, float \$y, float \$z) {
float \$delta = 11.0;
return \$delta * (\$y – \$x);
}
global proc float dy(float \$x, float \$y, float \$z){
float \$r = 50.0;
return -1 * \$x * \$z + \$r * \$x – \$y;
}

global proc float dz(float \$x, float \$y, float \$z){
float \$beta = 4.0;
return \$x * \$y – \$beta * \$z;
}

## Wireframe render

Posted in tools by A. Benjasem on September 1, 2009

Many times while designing, I find it more interesting to look at a solid object in wireframe mode. In any 3D software the modeling is done through wireframe. When rendering the model however, it becomes solid. This tool allows you to convert any object made with Nurbs or surfaces in Maya to wireframe. You can change the number of sections or frames in every column and row. You can also change the radius of each frame.

```

global proc wireframe(int \$u, float \$v) {
\$obj = `ls -sl`;
rebuildSurface -ch 1 -rpo 1 -rt 0 -end 1 -kr 0 -kcp 0 -kc 0 -su \$u -du 3
-sv \$v -dv 3 -tol 0.01 -fr 0  -dir 2 \$obj;
int \$i;
string \$curIso;
float \$inc_v;
float \$inc_u;
float \$curIsoValue;
float \$j = 0;
\$inc_v = (1.0 / \$v);
\$inc_u = (1.0 / \$u);
\$profile_radius = 0.05;  //change this value to change the size of the wireframe.
\$profile = `circle -ch on -o on -nr 0 1 0 -r \$profile_radius ` ;
for (\$i = 0; \$i <= \$v; \$i++) {
\$curIsoValue = (\$inc_v * \$j);
\$curIso = \$obj[0] + ".v[" + \$curIsoValue + "]";
select -r  \$curIso;
\$curve = `duplicateCurve -ch 1 -rn 0 -local 0  \$curIso` ;
extrude -ch true -rn false -po 0 -et 1 -fpt 1 -upn 0
-rotation 0 -scale 1 \$profile[0] \$curve[0] ;
\$j = \$j + 1;
}
\$j = 0;
for (\$i = 0; \$i <= \$u; \$i++) {
\$curIsoValue = (\$inc_u * \$j);
\$curIso = \$obj[0] + ".u[" + \$curIsoValue + "]";
select -r  \$curIso;
\$curve = `duplicateCurve -ch 1 -rn 0 -local 0  \$curIso` ;
extrude -ch true -rn false -po 0 -et 1
-fpt 1 -upn 0 -rotation 0 -scale 1 \$profile[0] \$curve[0] ;
\$j = \$j + 1;
} print "\n written by mayation.wordpress.org\n"  }

solid to wireframe
```

## What is Parametric Design?

Posted in parametric design by A. Benjasem on August 31, 2009

It is a process used to manipulate, regenerate and design objects based on a set of rules or parameters. Parametric design is now being widely used in the fields of architecture and product design. There are many concepts that appear regularly in parametric design projects. One important concept is repetition, which works best when it is used in parallel with rotation, scaling and movement. This simply means to copy an object multiple times while introducing a gradual change in its scale for example.

Another concept frequently used in parametric design is Mutation. What is meant by mutation is the progressive change in the form of an object along a process based on a few rules. This might completely transform the object to a new form, which makes animation and video logging a great tool to monitor the transformation.

In architecture, surface manipulation is used to perforate the façade of a building. In scripting, this requires two things. One is of course a surface or a plane, and the other is a system that can determine the degrees and directions of the manipulations taking place. Although randomness could easily be implemented in parametric design, following a system brings great aesthetic value to the result.

Computer visualization programs like Maya and Rhino are used to create 3D forms using a scripting language. Each program has its own language, which is relatively easy to learn. In this site we’ll be using MEL (Maya embedded language) to explore and demonstrate parametric design.