Showreel

All of the code has been written in Java, C++, or C. Each project details the language. Up to date source code for some projects can be viewed at my GitHub account here.

If you have any problems running any of these samples, or if you have any other queries at all, please feel free to contact me at here.


View Jeremy  Kemp's profile on LinkedIn

Simple 3D Custom Physics System with OpenGL (2011)

I have created a simple 3D physics system of spheres which allows the user to spawn new spheres, either by dropping them and letting gravity take its course, or by firing a sphere into the world with a customisable velocity.

I learnt and implemented everything that I used in the demo in under a week as a way of challenging myself to learn and implement something entirely new with a short deadline.

Features include:

  • Gravity
  • Simple collision detection which can be turned on or off
  • Spawn-able spheres
  • Ambient and diffuse lighting
  • Sphere blending effect
  • Slow motion
  • Full screen
  • Movable camera with keyboard and mouse
  • Collision sound effects
  • Switchable textures for the floor and spheres
    • MipMapped filtering
    • No filtering
    • Linear filtering

Download for Windows

Screenshot of Custom Physics System

Android Unit Converter (2011-Present)

Android Unit Converter is a simple unit conversion application for the mobile Android platform. I am primarily developing this application, simply because of my interest in mobile development, as well as being an exercise in keeping my Java skills up to date.

Unit Converter currently performs area, currency, length, volume and weight conversions. The currency converter is particularly impressive as it performs conversion with live exchange rate information as long as the user has an active internet connection.

The code for Unit Converter can be seen at my GitHub account here. Additionally, you can download the app on the Android Market here.

Parallel Graph Searching Library (GPU) (2009-10)

CUDA Graph Searching Library is my undergraduate dissertation.

To run this project, your computer must have a CUDA enabled graphics card to run.

Using CUDA to write these algorithms allowed me to create parallel versions of the algorithms for CUDA GPUs with the aim of decreasing their running times when compared to their sequential equivalent.

The Graph Library consists of a graph creator and reader. These allow you to specify how many vertices you want on the graph as well as the maximum number of edges per vertex you wish to assign. The resulting graph is saved as a text file. The graph reader can then read one of these graph files for use by the graph searching algorithms.

The algorithms implemented on both GPU and CPU are:

  1. Breadth First Search
  2. Depth First Search
  3. Prim’s Minimal Spanning Tree Algorithm
  4. Kruskal’s Minimal Spanning Tree Algorithm
  5. Dijskstra’s Shortest Path Algorithm

You can view the paper I wrote for the project here.

RMI Mini-Library (2009)

The RMI Mini-Library is a distributed system implementing Java’s RMI (Remote Method Invocation) technology which was developed as a university project. I have not as yet compiled the application into appropriate Jar files. As such, the download includes comprehensive instructions as to how to run the application using the popular IDE, Eclipse.

The system allows a user to hire books from a library as well as create books in the library’s catalogue and general user maintenance.

Download for Windows/Linux/Mac

Merry Go Round (2008)

Merry Go Round is a simple visualisation of a fairground merry go round ride and was designed to show understanding in the underlying concepts of 3D graphics, rather than create a graphical showcase.

Merry Go Round was created using Java and Java3D for an assignment at university. Subsequently, you must have Java3D installed as well as the Java Runtime Environment.

Instructions are included in the download.

Download for Windows/Linux/Mac

Networked Pac-Man (2008)

Networked Pac-Man is a simple multiplayer game that allows you to play with other gamers over the internet or locally. It consists of a client application that the user runs, and a server application that the client connects to.

It was developed to show understand of networking protocols, rather than creating a fully fledged game.

Networked Pac-Man was created in Java and as such needs Java Runtime Environment to play.

Instructions are included in the download.

Download for Windows/Linux/Mac

Travelling Salesman (2008)

Travelling Salesman consists of three algorithms that solve the travelling salesman problem when given a graph as input from a text file. The three algorithms are A*, Hill Climbing and Greedy Best First. Once complete, the project outputs a text file which contains the solution that it has found.

This project also includes an Abstract Data Type (ADT) that I created that represents a graph. A vertex is represented in the class “Vertex” and an edge is represented in the “Edge” class which consists of two vertices.

Travelling Salesman was created in Java and as such needs Java Runtime Environment to run.

Instructions on how to use the project are included in the download.

Download for Windows/Linux/Mac

Trackbacks /
Pingbacks

  1. Custom Physics System » Jeremy Kemp