New Page, I'll add past and future projects as I get time.

Danimals!

Danimals was the big project I did as part of my final year at uni. I had the freedom to develop any piece of software of my own choosing. I had recently been reading quite a bit on human psychology and philosophy and decided to code a program that would utilise evolutionary programming to discover the optimal solution to something called the prisoners dilemma.

Download
Source
Java executable
Info
Genetic Algorithms
The Prisoner's Dilemma
A few Danimals on display

I researched a few programming languages and decided to go with Java. Java seemed the best pick for home programming in Linux and uni showcasing in Windows. Plus I already had considerable knowledge of it and I could envisage this project being a big one.

I began, as you should with any project, with lots of research, planning, target setting and other such things. Then got onto the fun of caffeine powered coding. I spent many hours work on this and produced lots of exciting code.

The sciencey parts came along easily and caused no real problems. Lots of testing (algorithms, genetic mutatians, breeding, etc) ensued. I re-jiggled the planning to add extra functionality (modular selection techniques, statistic reporting and a few other smaller bits), I think I over stretched myself slightly here, producing better code but allowing less time for the front end. Especially with impending coursework deadlines and looming exams dates.

I enjoyed making the front end although I do think it could have been implemented much much better. A quickly reducing time allowance and increasingly busy me didn't help much either. The front end, as well as being pretty, did allow better visualisation of the bit string stats. I added a grid in which to show the bit strings and designed them as little cute circles with eyes and legs. I then added functionality to allow the user to assign colours to certain genetic traits, thus allowing the user to easily identify emerging patterns and genepool diversification.

After all those many nights of coding I had my completed product. Following the tradition of my previous project (TicketDan) I named this after myself and called it Danimals. Aww, bless.

The perfectionist in me wanted to invent more hours and do more work but my time was up. I vowed to commit myself to further work after demonstration of the software but I went to the pub instead.

The software worked exactly as intended, as stated the GUI could be better and there is a glitch with the redrawing of the Danimals resulting in a skewed placement of their bodily parts. The science worked perfect and the Danimals evolved to be good, bad, intelligent, predictive and colourful as I predicted they would (and following results from other experiments into the Prisoners Dilemma). The program is a bit cryptic to use without prior experience, I might attempt to write a manual for assistance to anyone wishing to play with the software. Time permitting of course.