Affichage des articles dont le libellé est Structure Synth. Afficher tous les articles
Affichage des articles dont le libellé est Structure Synth. Afficher tous les articles

mercredi 25 décembre 2013

Test Blender et Structure Synth

Arbre généré à l'aide de Structure Synth. Nuages-feuillage et rendu avec Blender
Ville générée avec Structure Synth. Le reste avec Blender

Réalisé entièrement avec blender.

Réalisé entièrement avec blender.

Réalisé entièrement avec blender.

Pyramide réalisée avec Structure Synth, rendu et modifications de mesh réalisé avec Blender.


Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Condi

mercredi 28 août 2013

Octogonic


// Camera settings. Place these before first rule call.
set translation [-5.40444 -6.82667 -20]
set rotation [0.999911 -0.0127698 -0.00357114 0.0132595 0.964559 0.263528 7.95024e-05 -0.263551 0.964643]
set pivot [0 0 0]
set scale 5.5
set raytracer::size [1080x1080]
set perspective-angle 100
#define deplac1 92/100
#define modtaille 84/100
#define modcolor 20
#define angle1 22.5
#define angle2 11.25
#define objmat {h 128}sphere
#define modalpha 1
#define nbritra 8
#define nbritrb 8
#define nbritrc 8
#define nbritrd 8
#define nbritre 8

{x 0.5 y 1 s 16 16 1 z -1 color black}box
rulea

rule rulea md nbritra
{ruleb
{x 1 rz angle1 rz angle1}rulea}

rule ruleb md nbritrb
{rulee
{rz angle1 rz angle1}ruleb}

rule rulec md nbritrc
{objmat
{x -deplac1 s modtaille rz -angle1 h modcolor a modalpha}rulec}

rule ruled md nbritrd > rulec
{objmat
{z deplac1 s modtaille rx angle1 h modcolor a modalpha}ruled}

rule rulee md nbritre > ruled
{objmat
{x deplac1 s modtaille rz angle1 rz angle1 rx angle2 h modcolor a modalpha}rulee}

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

lundi 29 juillet 2013

Spirales


Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Flower


Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Hexature


Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Septoflower


// Write EisenScript code here...
#define taillemod 1/3
#define colorig 20
#define colun 20
#define coldeux 20
#define coltrois 20
#define colquatre 20
#define colcinq 20
#define colsix 20
#define rota1 0
#define rota2 0
test
rule test md 6
{
mysphere
{rz 0 ry rota1 rx rota2 x 1 s taillemod h colorig} test
{rz 51,4285714 ry rota1 rx rota2 x 1 s taillemod h colun } test
{rz 102.857143 ry rota1 rx rota2 x 1 s taillemod h coldeux } test
{rz 154.285714 ry rota1 rx rota2 x 1 s taillemod h coltrois } test
{rz 205.714286 ry rota1 rx rota2 x 1 s taillemod h colquatre } test
{rz 257.142857 ry rota1 rx rota2 x 1 s taillemod h colcinq } test
{rz 308.571429 ry rota1 rx rota2 x 1 s taillemod h colsix } test
}

rule mysphere
{
{h 200}sphere::diffuse
}


Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

mercredi 17 juillet 2013

PythaSandBox



Images réalisées à l'aide du logiciel "Structure Synth".
Rendus effectués à l'aide de SunFlow et LuxRender. (Fond noir = SunFlow).
Il s'agit principalement modifications d'une formule de base : 

// Camera settings. Place these before first rule call.
set translation [-0.547945 -4.18692 -20]
set rotation [0.96068 0.271553 0.0578931 -0.162169 0.718015 -0.676871 -0.225374 0.640868 0.733821]
set pivot [0 0 0]
set scale 3.25
set maxobjects 1000000

test
rule test md 12
{
mybox
{x 1 s 0.707 0.707 0.98 rz 22.5 h 2 sat 0.875}test

{x -1 s 0.707 0.707 0.99 ry -22.5 h 2 sat 1}test

}

rule mybox
{
{h 200} box
}


Il s'agit de la formule de la première image, la vague.
Les autres images sont des modifications de cette formule, les rotations étant à 45° au lieu de 22.5° et les deux rotations se faisant en "z" et non en "z" et "y".

Enfin, concernant  Structure Synth, j'ai le plaisir de vous annoncer que d'ici un mois ou deux viendra une interview du créateur de ce formidable logiciel, dont sa réalisation la plus connue actuellement est Fragmentarium, nouveau poids lourd dans le calcul de fractales 3D.

D'ici là, une refonte complète du blog sera faite. Des pages disparaîtront, de nouvelles se créeront.
La page "Amis" sera complètement revue également :)
Bref, de nombreux changements que je vous invite à découvrir d'ici peu :)






Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

jeudi 27 juin 2013

Test animation Structure Synth

Petit test d'animation réalisé avec Structure Synth.

Pour cela, il faut créer deux fichiers.

Le premier dans lequel nous aurons notre forme, dont voici le code :


#define rotz 45 
{z -0.01 s 256 256 1 h 199 }box 
test 
rule test md 15 {
    maboite {x 500/1000 s 707/1000 707/1000 1.002 rz rotz h -10} test
    {x -500/1000 s 707/1000 707/1000 1.002 rz rotz h -10} test 


rule maboite { {h 200}box }


Comme nous pouvons le voir, nous avons défini une variable "rotz" qui sera utilisée pour l'animation.
Nous créons donc un second fichier dans lequel nous mettrons ce code javascript :


#javascript 

function pad(number){ 
    number = number + ''; // convert to string 
    while (number.length < 4) { 
       number = "0" + number; 
    } 
    return number; 


Builder.load("NouveauMovie.es"); 
max =360; 
for (i = 0; i <= max; i+=1) { c = i/max; Builder.reset();
   Builder.setSize(640,360);
   Builder.define("rotz",c*360); 
   Builder.build(); 
   name = "./outputanimation" + pad(i); 
   Builder.templateRenderToFile("Sunflow-Colored.rendertemplate", name + ".sc",true); 
   Builder.execute("sunflow", name + ".sc -nogui -o " + name + ".png", true); 
}


Et nous obtenons ainsi le résultat suivant :

dimanche 2 juin 2013

Structure Synth - Flocon de Koch

J'ai décidé d'essayer de reproduire la structure du flocon de Koch dans Structure Synth.

C'est à dire, ceci :


( sourcehttp://fr.wikipedia.org/wiki/Flocon_de_Koch )

Voici la formule utilisée pour générer cette forme.
Je vais tenter de vous l'expliquer car il a fallu tenir compte, pour le placement, de certaines choses telles que le redimensionnement à chaque nouvelle itération.


{s 24} Koch

rule Koch md 7
{
   {x 2/3 s 1/3 x -1/9 y 1/5 rz 60 h 10} Koch 
   {fx x -4/3 s 1/3 y 1/5 x 2/9 rz 60 h 10 } Koch 
   {s 1/3 x -1/9 y 1/9 h 10} Koch
   {x 4/3 s 1/3 y 1/9 x -1/9 h 10} Koch
   LigneSpheres


rule LigneSpheres md 16

   MySphere 
   {x 1/8 h 1} LigneSpheres


rule MySphere

   {s 1/8 } sphere::shiny 
}


1. rule "Myshpere"
La première faite a été de préparer l'objet utilisé, dans notre cas : une sphère.
Je lui ai appliqué un redimensionnement de 1/8 car l'objet final peut vite devenir très grand et sortir des limites du zoom de Structure Synth. La taille finale sera choisie tout à la fin lorsqu'on fait appel à la règle finale "Koch".

2. rule "LigneSpheres"
Avec la sphère préparée précédemment, nous allons créer une "ligne".
Ayant une taille de 1/8, nous effectuons un déplacement en x de 1/8 et modifions sa teinte de 1.

3. rule "Koch"
La règle du flocon de Koch est assez simple.
Une ligne est divisée en 3.
Le tiers central est remplacé par un triangle équilatéral...
A chaque nouvelle itération, nous réappliquons cela à toutes les arrêtes...

Attention, à retenir : notre ligne est faite de 16 boules de taille 1/8.
Notre ligne a donc une taille totale de 2. Ceci est important pour la suite.

Dans ma règle, j'ai commencé par réaliser les deux arrêtes visibles du triangle équilatéral.

En première ligne, nous déplaçons notre ligne  de 2/3 en x. (donc, 2 car la ligne a une à une taille de 2, c'est à dire : 6/3. et 1/3 de 6/3 = 2).
Nous la redimensionnons ensuite de 1/3.
Et enfin, nous lui appliquons un nouveau déplacement en x de -1/9.
Pourquoi ? Car le pivot de l'objet utilisé pour le redimensionnement se trouve au centre de l'objet et non sur son bord.
Lorsque nous redimensionnons un objet et que nous voulons l'aligner avec son objet référent, il faut obligatoirement passer par une translation de l'objet.

Pourquoi faire deux translations en x et non une seule ? Car si il avait fallu la faire une seule fois, nous aurions eu un déplacement de 5/9 uniquement, beaucoup moins logique à expliquer ou à comprendre de prime abord.
Enfin, nous appliquons une translation vers le haut (y) de 1/5 avant d'effectuer une rotation de 60°.
Pourquoi effectuer la translation avant la rotation? Car le pivot et donc l'axe y subirait également une rotation, rendant impossible d'effectuer une translation par rapport au reste de la scène.
Pourquoi 1/5? Le problème du redimensionnement fait que les objets ne sont plus alignés et il faut donc trouver une valeur correcte et le plus proche de la valeur exacte afin que l'image soit réaliste. Il m'aura donc fallu passer par une phase de test et d'essais pour trouver la bonne valeur.

En deuxième ligne, j'ai commencé par "fx", une commande signifiant que l'on souhaite effectuer un "miroir" sur l'axe x de l'objet. Le pivot se retournant également, j'ai simplement repris les valeurs de la première ligne et les ai modifiées en fonction...

Les troisième ligne est la plus simple. Nous effectuons simplement un redimensionnement de 1/3 et la replaçons ensuite de -1/9 en x et 1/9 en y afin de la faire correspondre à la ligne de l'itération précédente.

Pour la quatrième ligne, nous effectuons comme pour la troisième mais réalisons d'abord une translation de 4/3 en x afin de placer notre nouvelle ligne.

La dernière ligne, "LigneSpheres", fait que notre ligne de sphères apparaisse à chaque étape de notre règle :)

Attention, un bug dans Structure Synth fait que si vous remplacez la sphère par des boites, toutes celles apparaissant suite à l'utilisation de "fx" poseront un problème d'affichage (qui disparaît au rendu, mais rend l'utilisation difficile)





Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Nouveaux tests - Structure Synth








Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.