About

Hi, I’m Chris! I’m a 21 year old PhD student reading Computer Science at Durham University. This webpage contains information about various projects that I am involved in and links to my reports. If you are interested in anything and would like to chat, feel free to email me at:

 


Latest Work

This section outlines my current research and latest work. Before you read this, it is already out of date :)

 


Dissertation: Object Clustering for Game Environments
Our new algorithm, Object-Mapped Behaviour-Grid (OMBG), produces near perfect non-Euclidean clusters of arbitrary shapes and sizes in constant time complexity according to some predefined resolution. We show an improvement in the reduction of network overhead by categorising object behaviours into primitive shapes, and we observe success with five example behaviours implemented in a realistic multithreaded and hardware-accelerated environment.
Download
[PDF]


Download
[EXE]

Space Online MMORPG
This was a fun small computer graphics assignment. I made a full 3D MMORPG with a multi-threaded server in C++ using openGL. Features include extremely low packet transfer based on predictive key input, CLOD, heightmapped terrain, an infinite world, multiple animated MD2 models, occlusion culling, deformed grass crystals, basic collision, stats, autonomous AI NPC's and many more.


Projects

This section links to various projects and a download is provided where possible.

 

Cross-Site Development
This project lasted a year and our goal was to work in two teams and collaborate cross-site with Newcastle University in order to design and implement a delivery system for Proctor & Gamble. We implemented a client which connects to an SQL database. It can handle multiple orders, delivery algorithms, user access levels, produce reports & graphs and many, many more features.

Highly Dynamic Clustering
This was the position paper for my clustering project dissertation. I am currently simulating more than 15 million objects with a C++ openGL multi-threaded implementation.

Messenger "I Seek You"
This project is a LAN based messenger which instantly connects and uses UDP Multicasting to deliver messages. It also has many other features including TCP file transfer and HTML messaging.

RMI Project
I programmed this using Java RMI (Remote Method Invocation) on a custom flat-file database. It allows for multiple toy-store branches and stock monitoring from multiple warehouse servers. The report was bound to a strict 3 page limit.

Desert Island
This project involved manually coding a desert island, entirely in Java3D with no extra libraries. The sharks swim in opposite directions around the island at varying speeds. Initially the sun rises and the user has control over moving the camera. Also, when the sun is clicked, the sharks change direction. It requires Java3D installed into the native JDK or JRE to run.

Bite Me! ONLINE!
This is a fan project using graphics from Nintendo. The game features online play based on peer-to-peer connectivity. It also features a chat feature, multiple layers and many varying sized custom-made maps. Note, it is not released yet. Email me if you would like more details.

Keynote
This was fun! One of my first ever Java programs. It was before I had a piano in my room, I used to spend hours at the computer so tried to turn my computer keyboard into a music instrument. This is the result. After lots of practice, I can play Fur Elise - but it's very difficult. It loads instruments from your soundcard and you can also click keys on the virtual piano. + More features.

 

Reports

This section refers to other less interactive research, and algorithm study.

Artificial Intelligence algorithms
This was a quick project where I examined and implemented three existing solutions to the travelling salesman problem. The algorithms that I implemented were bruteforce, greedy & genetic. Most of my findings went into the genetic algorithm, where I implemented several techniques to acquire effectiveness and efficiency. Note: the report was limited to a strict 3 page limit and isn't detailed.

Java to Haskell conversion
This 8 page report examines the conversion of a program between Java and Haskell (a purely functional programming language). The results are an extremely language-independent and conceptual solution to the problem.

Theorem Provers
The goal of this project was to examine two existing theorem prover tools. One of which, Prover9, was automated. The other, Coq, was an assisted theorem prover. The report evaluates both and examines advantages and disadvantages.

 

Personal profile

So yeah, the above is fairly geeky, but what else do I get up to?
Those who know me know that computers are only 30% of my life. The rest is spent with a passion for music, creativity, cooking, designing, dancing and all sorts of other (slightly crazy) things!

Copyright © Since 2005 Christopher Willcocks. All right reserved.