Context 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

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}
}

Se una stessa regola appare più volte, CF ne sceglierà una versione piuttosto che un un’altra casualmente. La probabilità che venga scelta un versione è proporzionale al suo peso.
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}
}
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}
}

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


Se avete provato ad installare
E’ automatizzabile tramite script in Python o attraverso altri linguaggi via ActiveScripting, VBScript, Javascript, Perl, Python, TCL o Ruby. 





