Magazine Science

Context Free Art : logiciel mathématico-algorithmico-artistique

Publié le 28 octobre 2008 par Olivier Leguay

Lorsque

startshape pop
rule pop {
TRIANGLE{flip 10}
TRIANGLE{flip 0 b 1 s 0.99999}
3* {r (120)} pop{s .5 y .58}
}

produit

sierpinski.jpg

Et lorsque

startshape grid
rule grid {
10* {y 1} row {}
}
rule row {
10* {x 1} core {}
}
rule core .5  {
SQUARE {b -1 }
CIRCLE {b 1}
core {s .95}
}
rule core .5 {
SQUARE {b 1  }
CIRCLE {b -1}
core {s .95 }
}
rule core .001 {}

produit

patchwork.jpg

Que

startshape earth
background {b -1}
rule earth {
globe { z 1 s 5 }
continent1 { z 2 s 1 y 0.31 x -0.6 rotate 180 alpha -0.7
}
cloud { z 3 s 0.9 y -0.54 x 2 rotate 90 }
}
rule globe {
CIRCLE { hue 204.8874 sat 0.7374 b 0.0575  }
globe { s 0.99 b 0.02 x 0.0045 }
}
rule cloud {
cloud1 {}
cloud2 {}
}
rule cloud1 {
CIRCLE { s 4 alpha -0.95 }
cloud1 { b 0.1 x 1.5 s 0.6 rotate 46 alpha 0.01}
cloud2 { b 0.2 y 1.4 s 0.8 rotate 43 alpha 0.01}
}
rule cloud2 {
cloud1 { b 0.2 x 1.3 s 0.8 rotate 12 alpha 0.01}
cloud2 { b 0.1 y 1.2 s 0.4 rotate 14 alpha 0.01}
}
rule continent1 {
TRIANGLE { s 2 hue 118.4956 sat 0.2747 b 0 skew 20 30 }
continent1 { b 0.01 x 0.58 y 0.78 s 0.35 rotate 55 }
continent1 { b 0.01 x 0.75 y 0.2 s 0.15 rotate 55 }
continent1 { b 0.01 x -0.0 y 0.75 s 0.78 0.37 rotate 37
}
continent1 { b 0.01 y -0.79 s 0.9  rotate 155 }
}

aboutit à

terre.jpg

Et puis que

startshape TETESS
rule TETESS {9*{x 1.2}TETES{}}
rule TETES {9*{y 1.5}TETE{}}
rule TETE {FormeT{z -5}FormeY{s .3 y .2 z 5}FormeB{b 1 y
-.24}CHEVEUX{y .3 z -10}}
rule CHEVEUX 10{CHEVEUX{flip 90}}
rule CHEVEUX .5{CHEVEUX{flip 180 y -.5}}
rule CHEVEUX {100*{r 3.6}Sh3{x .1 s .15}}
rule CHEVEUX {15*{r -18 s .95}Sh3[r 150 x .2 s .2]}
rule CHEVEUX .2{60*{r 6}TRIANGLE{y .3 s .05 .6}}
rule CHEVEUX {30*{r 3 s .96}Sh6[r -60 x .15 s .15] 30*{r -3
s .96}Sh6[r 240 x .15 s .15]}
rule CHEVEUX .3{30*{r 6 s .9}TRIANGLE{y .3 s .05 .6}}
rule CHEVEUX {3*{r 9 s .9}Sh4[r 60 x .15 s .01]}
rule CHEVEUX {30*{r -6}Sh5[r 180 x .15 s .2]}
rule FormeT {FormeT{s .96}}
rule FormeT 10{FormeT{r 2}}
rule FormeT 10{FormeT{flip 90}}
rule FormeT 10{FormeT{flip 180}}
rule FormeT 10{FormeT{skew 1 .84}}
rule FormeT {ShT{}}
rule FormeY 3{FormeY{s .96}}
rule FormeY 5{FormeY{x .1}}
rule FormeY {FormeY{y .1}}
rule FormeY 10{FormeY{flip 90}}
rule FormeY 30{FormeY{r 1}}
rule FormeY 10{FormeY{skew 1 .84}}
rule FormeY {ShY{x -.5 s 1.1}ShY{x .5 s .9}}
rule FormeY {ShY{x -.4}ShY{x .4}}
rule FormeY {ShY{x -.5 s .8}ShY{x .5 s .8}}
rule FormeY {ShY{x -.4 s 1.15 z 1}ShY{x .4 s .85}}
rule FormeB 10{FormeB{flip 90}}
rule FormeB 10{FormeB{r 3}}
rule FormeB {Sh2{s .03}Sh2{s -.03 .03}}
rule ShT 3{CIRCLE{s .8 1.1}}
rule ShT 2{3*{y -.1}CIRCLE{y .15 s .8}}
rule ShT 2{5*{y -.1}CIRCLE{y .25 s .7}}
rule ShT 5{6*{y -.1 s .95}CIRCLE{y .25 s .78}}
rule ShT {8*{x -.05 r 2}Sh1{x .15 s .3 .27 r -7.5}}
rule ShT 2{8*{x -.05 r 2 s .98}Sh1{x .12 s .3 r -9}}
rule ShT 5{6*{y -.1 s .95 r 6}CIRCLE{y .25 s .78}}
rule ShT {9*{y -.06 r 9}CIRCLE{y .3 s .66}}
rule ShY 10{ShY{s -1 .95}}
rule ShY 10{ShY{s -.95 1}}
rule ShY 10{ShY{r 3}}
rule ShY {CIRCLE{b 1 s .3}}
rule ShY {CIRCLE{} CIRCLE{b 1 s .8 z .1} PUP{s .15 z .2}}
rule PUP 3{CIRCLE{}}
rule PUP {CIRCLE{s 2.4}CIRCLE{b 1 s 1}}
rule PUP 60{PUP{x .1}}
rule PUP 30{PUP{r 30}}
rule Sh1 {30*{y -.1}CIRCLE{y 1.5}}
rule Sh2 60{CIRCLE{}Sh2{x .1 r 2 }}
rule Sh2 1.5{}
rule Sh2 {Sh2{flip 180}}
rule Sh3 30{CIRCLE{}Sh3{x .1 r 2 s .97}}
rule Sh3 {Sh3{flip 180}}
rule Sh4 1000{CIRCLE{}Sh4{x .1 r .2 s .999}}
rule Sh4 {Sh4{flip 180}}
rule Sh5 {SQUARE{s 2 .1}}
rule Sh5 6{Sh5{s .9 1}}
rule Sh6 10{CIRCLE{}Sh6{x .1 r 1 s .98}}
rule Sh6 {Sh6{flip 180}}

arrive à représenter :

barbapapa.jpg
Lorsque
illusion.jpg
se réduit à

startshape snake_matrix
rule snake_matrix{
2*{y 10} snake_column{r 90 y 5 x 25}
4*{x 10} snake_column{z -1}    
}
rule snake_column{
3*{y 10} snake_with_bg{}
}
rule snake_with_bg{
CIRCLE{s 10 b 1}
snake{}
}
rule snake_with_bg{
CIRCLE{s 10 b 1}
snake{flip 180}
}
rule snake{
20*{r 18} element{y -4.5}
snake{s .8 r 9}
}
rule element{
SQUARE{s .7 1}
CIRCLE{s .5 1 x -.35 h 60 sat 100 b 0.82}
CIRCLE{s .5 1 x .35  h 216 sat 100 b 1}
}

Et que ces quelques lignes de code

startshape SF
background{b -1}
rule SF {
6*{r 60}ARM{ }
}
rule ARM {
SPHERE{ s 5 1}
ARM { x 3 s 0.6 r 32 alpha -0.03}
ARM {x 3 s 0.6 r -32 alpha -0.03}
}
rule SPHERE {
COLORING{ h 60 b 0.25 }
}
rule COLORING {
SHAPE{}
COLORING { x 0.001 y 0.001 z 1 s 0.99  b 0.05 hue 0.15
}
}
rule SHAPE {
CIRCLE{}
}

suffisent à faire :

hyperbolique.jpg

Je dis qu'il est certainement intéressant d'aller voir d'un peu plus près ce qui se passe Là !


Retour à La Une de Logo Paperblog

A propos de l’auteur


Olivier Leguay 1825 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte