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