giugno 2009

You are currently browsing the monthly archive for giugno 2009.

spiralContext Free (CF) è un software per generare immagini da una serie di istruzioni.

Utilizza un semplice set di comandi chiamato Context Free Design Grammar (CFDG).

Un file CFDG è sostanzialmente un gruppo di regole per disegnare forme usando altre forme.

Le forme base sono:

  • SQUARE
  • CIRCLE
  • TRIANGLE

Ci sono pochi altri componenti opzionali ed un unico componente obbligatorio:

  • La direttiva startshape è obbligatoria e informa CF da quale regola partire.
  • Le direttive opzionali: background, tile, size, include, shape, path

Ogni forma può essere modificata da un serie di parametri, in forma e colore.

Il rendering avviene in pochi secondi e quindi è possibile apprezzare subito il risultato dei nostri sforzi 😀

Contextfree

Le possibilità  più interessanti sono senz’altro fornite dalla ricorsione.

Disegnamo un cerchio e attraverso la ricorsione ne variamo progressivamente la luminosita e la dimensione. Utilizziamo poi il nostro cerchio sfumato per costruire una spirale:

startshape Spirale

rule Spirale  {
	Cerchio{}
	Spirale{x 1 size .9  rotate 30 }
}

rule Cerchio  {
	CIRCLE{}
	Cerchio{brightness 0.2 size 0.9}
}

spirale

Se una stessa regola appare più volte, CF sceglierà una versione piuttosto che un un’altra casualmente. La probabilità  che venga scelta un versione è proporzionale al suo peso (che viene indicato dopo il nome della regola).

Proviamo ad aggiungere una versione della nostra regola cerchio che utilizza un quadrato come forma base.

startshape Spirale

rule Spirale  {
	Cerchio{}
	Spirale{x 1 size .9  rotate 30 }
}

rule Cerchio  {
	CIRCLE{}
	Cerchio{brightness 0.2 size 0.9}
}
rule Cerchio  {
	SQUARE{}
	Cerchio{brightness 0.2 size 0.9}
}
spiralemista

Introducendo queste variazioni pseudo casuali possiamo ottenere immagini sorprendenti.

startshape rami

rule rami {
    SQUARE{y .1 s 0.02 0.2}
    ramo{y .1 s .99 b .1 sat .1 h 60}
    ramo{y .1 f 90}
}

rule rami{
	rami{}
}

rule ramo {
	rami{r 30 s .7}
}
rule ramo {
	rami{r 20 s .8}
}
rule ramo 0.2 {
	rami{r -20 s .616}
}

tree



Context Free permette di inserire le proprie creazioni nella gallery online del sito, nella quale si possono trovare degli autentici capolavori insieme ovviamente al codice per riprodurli.

Context Free è disponibile per Mac OSX, Windows e Linux e in formato sorgente.

Un buon punto di partenza è la sezione tutorial del sito.

Buon divertimento

Tags: , , , , , ,