El sistema presentat te com a finalitat la generació d'un objcte amb aparença de planeta de forma fractal. Per a fer això es parteix d'unes primitives bàsiques i es sotmeten a una serie de tractaments que mica a mica li van donant forma.
A més de la generació de la superficie del planeta, també hem afegit la funcionalitat de afegir-li un mar a aquest planeta, afegir anells al seu voltant, posar-hi satel·lits... i tot això amb una interficie gràfica prou senzilla d'utilitzar.
Els resultats es poden exportar en diversos formats grafics. Els dos implementats son el VRML i el BDG, però no seria gens dificil estendre aquesta funcionalitat per afegir nous formats. De fet el sistema es molt facilment extensible, gracies a la filosofia que segueix per a implementar totes les seves funcionalitats.
L'aplicació està dividida en dos parts:
La interficie gràfica es la que s'encarrega de permetre la interacció amb l'usuari. Està formada per la finestra principal, una llista de filtres i una botonera. Mitjançant la botonera es manipulen els filtres, i quan es selecciona un filtre apareixen els seus paràmetres a la banda dreta de la finestra. Cadacun d'aquests filtres es correspon amb un paquet format per tres classes Java: el filtre en si, la classe que representa els parametres per aquest filtre i la classe grafica que permet introduïr aquests paràmetres.
Quan l'usuari decideix regenerar l'objecte representat, la interficie gràfica activa el motor de processament gràfic. Aquest motor s'encarrega d'anar aplicant els filtres seleccionats per l'usuari, l'un darrera l'altre, fins acabar amb la generació de l'objecte.
Per a fer això, el sistema recupera els filtres que l'usuari havia definit a la llista de filtres amb els seus paràmetres corresponents i els executa seqüencialment. Cada filtre és independent dels altres i es poden aplicar tots en qualsevol ordre, obtenint, això si, resultats diferents en funció de l'ordre usat.
El model de dades utilitzat en l'aplicació es bastant similar a l'utilitzat al laboratori, però mantenint únicament les relacions estrictament necessaries.
Tenim classes que representen un punt a l'espai, un vertex, una aresta, un triangle i un objecte:
Amb totes aquestes dades i relacions som capaços de fer els calculs que necessitem. En alguna d'aquestes classes hi podem trobat variables auxiliars que ens ajuden a fer alguns calculs, però que realment no formen part de la representació.
El procés de fractalització és un bucle molt senzill:
Quan el procés arriba a la fi, totes les arestes són més petites d'un determinat valor.
En el calcul de les noves arestes i triangles les textures s'interpolen per a que les transicions de color entre els diversos vertexs siguin suaus.