To continue to use this website you first need to accept the use of cookies. For more information, read this page.
I accept


This page has a list of all of my projects, current and completed.

Bespoke computer building

PC Build for Mr C Thompson


This was my first computer I had built myself. I was building my own at the time but due to a faulty part was waiting on a delivery of the last part and managed to complete this computer before finishing my own computer. Featuring an Intel Core 2 Duo E8400, 4GB RAM, 400W PSU and Radeon 4670 this computer was neatly assembled for Mr Thompson. As part of my service for building the system I had agreed to help maintain it for 3 years afterwards.

This computer was important to him because it was designed to be able to play a few modern games and enjoy the usual activities on the computer.

My PC (2009 - 2011) - The Platypus

My 2009 PC

As mentioned above, my own PC came slightly after my first build. My PC had a Core 2 Quad Q9550, 4GB RAM, 850W PSU and a Radeon 5670. It was primarily used as a data center, featuring three 1TB drives and two 2TB drives and a 120GB solid state drive. The system lasted just 2 years before I felt it was time to start a new project. The project was codenamed The Platypus. After a long two years with the system, with many upgrades from the original specification, it was time for an upgrade, as I had read how good the Core i7 was for video editing due to it's new QuickSync 2.0.

My PC (2011 - 2013) - The Zebra

My PC 2011

The Zebra was a necessary upgrade on my previous PC and was designed specifically for its advantageous video editing capabilities. The Zebra featured a Core i7 2600K, 8GB RAM, 850W PSU and a Radeon 7950. The purpose of this computer was also as my first purpose-built gaming computer. The Zebra is still in action and acts as a server for the many computers I currently own and want to share data with. The Zebra is my primary PC for programming and website creation because it is equip with QuickSync 2.0 and RAID for the best in performance and reliability.

My PC (2013 onwards) - The Zebra X2


Due to a fault in the motherboard of the system, that Gigabyte refused to pay for the collection for, the system's CPU had to be sold. In turn a new system was build. This one was built with pretty much the same specifications as the Zebra but with a Core i7 4770K instead of the Sandy Bridge based 2600K. It has another Gigabyte motherboard, this time without faults from the offset.

PC Build for Mr C Cormack


I was approached by a friend on the subject of building a gaming PC for them. As someone who had lots of experience, they asked for my advice on parts and asked if I would put the system together for them. The system consisted of a Core i5 4670K, 8GB of RAM, 1TB hard disk drive and an AMD R9 280X. These parts were selected based on the customer's own needs.

Bespoke software

BudgieBase (2008)


BudgieBase was an application developed for Dave from Blackpool. Dave bred budgies and wanted a manageable solution for maintaining information about these budgies. That's where BudgieBase came in handy for this purpose. It was my first bespoke application. It gave options for choosing colours and other features which could be easily changed at any time to give more flexibility. The application also had a user interface for inserting information as well as a backend table for storing the database.

BookBase (2010)


Built for my father, BookBase was a database application built on BudgieBase. It was designed more for books, of course. The application stored the ISBN, author, title, a photograph, a field for who is borrowing the book and a barcode. The book would be stored in the database and if anyone were to borrow the book, you could quickly scan it and the database will register it as being borrowed. The next step was simply to specify who was borrowing it. BookBase and BudgieBase evolved into my own Record Checker.

Bespoke websites


This website was built for an individual's company that provides aerial displays for Airshows, Gala days, the Highland Games and many other functions throughout the country.

The website is built with a fresh design using HTML5, CSS3 and jQuery in a responsive design.

The website has a static design but there could be a need for future development in the form of a content management system.

This website was updated in 2017 with a big overhaul at no cost to the client.



This website was built for a company that provides aerial scattering of ashes after cremation as a final send off.

The website incorporates the latest features including a modern front page, a content management system so that it can be updated and a responsive design.



This website was built for a medium sized pub and restaurant in East Lothian in Scotland.

The pub is one of my favourite places to eat so when I heard that they needed a new website and were interested in my previous work, I gave them my business card. They immediately wanted me to build them a website that would be cheaper to run than before and would look modern and appealing.

The website is built with a fresh design using HTML5, CSS3 and jQuery in a responsive design.

The website has an active restaurant menu that makes it easier for users to view different categories of food before they go and puts the website above the standard pub design websites out there.



This website was built for a fresh baguette and sandwich shop found in North Berwick and Bonnyrigg.

This was the first website I built as part of Jambour Digital and was also the first website to feature the Girder framework which is used on all websites produced now.


My website
2010 onwards

I opened this site on the 14th of April 2010 using a simple template that my host at the time provided. The purpose of the site was to speak about me, mainly. In 2012 I put my software on my website so that others could download it and use it. By late 2012, I had learned a bit more about web development and decided to refurbish my entire website. After finishing the refurbishment in January 2012, I decided to redo it again, releasing version 3.0 in June 2013. This version, the current version, was fully functional in December 2013. Finally, the current version, version 4.0, was released in January 2018 built with my own Girder framework.

Since about June 2013, my web development skills have improved so drastically that now I see myself as a web developer rather than just a software developer.


Elements Office Ultra Edition

2005 onwards
Elements Office Icon

Elements Office logo

Elements Office Ultra Edition has been designed as a fully fledged office suite. The suite is now made of multiple individually downloadable applications, including Cobweb, Painter Pro, Record Checker and Wonderword. The suite has been under development for years since 2005.

Elements Office has now taken over from Octangonal Office which had a similar design. I am the lead programmer on this project, and work with my brother who creates icons for the software.

Painter Pro

2008 onwards

My brother and I began to work on a program called Painter Pro. It started off as nothng but a simple drawing application but as the project grew so too did the effects library that powered it.

In October 2009 I released the first beta of the application. In 2011, along with all other software projects, Painter Pro went through a massive change - moving the program into a library that can be reused over and over again. Until about 2012, when I was primarily a software developer, development was fast and new features were added every month. In 2013, when I changed my course and became more interested in web development, which I found that I'm even more talented at, Painter Pro was one of the things that suffered the most due to the lack of development.

In mid-2014 when my website was how I wanted it and officially finished, I took up development again and Painter Pro, Cobweb and BlackRabbit Script became my sole projects in software development. They all received many new features and updates.

Zenith Parsing Engine (ZPE)

2015 onwards

My main project throughout the last few years was BlackRabbit.

BlackRabbit logo

BlackRabbit Script logo

BlackRabbit was my own scripting language that took advantage of my class library and the classes and methods within it.

Work continued until October 2014 when it became an organised mess.

In May 2015, I started my new Zenith Engine, which is the Java equivalent of BlackRabbit Script.

BlackRabbit Script has since been ditched for my new Zenith Engine.

Here is a sample:

function multiply($n, $times)
	$out = 0
	for($i = 0, $i < $times, 1)
		$out = $out + $n
	end for
	return $out
end function
University projects

Chain Chomp in SecondLife

My Chain Chomp from SecondLife

Whilst I was at a summer school course in 2009 as part of my university work, I was working on SecondLife. I had to make a model using the limited resources of SecondLife. Thus, my team of three decided to make a Chain Chomp model whose mouth would open and close and his eyes would follow avatars as they get closer.

Not everything we had planned went into the project, but it did achieve the majority of what we set out to do. We were still very pleased with the end result, and whilst the model may have been very simple, SecondLife does not have an incredibly good way of moving the whole model at once, so our concept of making the whole Chain Chomp follow the user around whilst being chained down did not work.

Our team won and I received the Merit Award for Computer Science.

My Pokemon in SecondLife

Flygon in SecondLife

My work in SecondLife in 2012 consisted of working on a Pokemon. My idea originally was to make my own Pokemon and then make it do it's own thing, however, a friend of mine in the class suggested that we both make Pokemon and make them battle. I worked on about 200 lines of code that works on weaknesses and super-effectives from Pokemon as well as a communication method whilst we both designed them. You can download the source code for the type effectiveness from this link. The rest of the battle involved communication and self maintainted animation for all the attacks and abilities. It worked very well and the project received a total mark of 86%.

The project was extremely good fun and competitive and whilst learning SecondLife seems to be a waste of time at university, it helps to encourage one's own creativity. I had finished the project well and truly on time, finishing the whole Pokemon the week before it was due. In reflection, I feel that more could have been done with model itself and I could have tried to use Blender to build the model, but I was more focused on the programming element of the whole idea.

Altaria in SecondLife

As part of the same project, I took the options a bit further. I created a Pokeball that stores the Flygon within it, rezzing him out of the ball. I then also added another Pokemon (similarly Dragon typed) to the Pokeball called Altaria, who is also pictured. Altaria did the same as Flygon and has animation as well, giving the user of the Pokeball a second choice.

Altaria was also able to do similar things to Flygon, but I did not complete it before the end of the project as my priority was with Flygon and chose to leave Altaria with just the basic animations that already existed. I would have liked to have added more features to Altaria such as wings that come out of the clouds and perhaps mixed the moves up a bit.

Both Pokemon were stored inside the Pokeball, which I thought was a lovely touch to end the whole project. Although this project was a collaborative project, my partner who was working on his Pokemon only contributed the model of his Pokemon, whereas I made two models and all the source code for battling (however, the source code had to be made by myself because I had it all planned, and it worked in a very complex manner, so it would not have been ideal for both of us to work on the code).

For the whole project, I came third in the Crufts event for my project.



Flitter, a major project that I was involved in at the end of the first semester of second year, was one which shows off my web programming and design skills. A lot of Flitter's style came from my site and I was the main designer of the site. We all worked together on the PHP side of things.

My lecturer complimented our project continuously and we received 24.5 out of 25 for it.

I have hosted Flitter here.

Web programs



Since HTML5 dropped support for the frameset - which was an ugly, badly implemented navigation pane and inline frame - I thought I would develop a lightweight one myself. It's just some CSS that makes it easy to build a frameset like style in HTML5.

I have since dropped this project and will begin a refurbished version soon.


2014 onwards

BalfBlog is my blogging mechanism. It is used on my site and it's purpose is to integrate into any website without any real change (change a couple of style files and nothing more).

BalfBlog is built with PHP and MySQL which means that most web servers can support it too, making it easy to use. I have not yet released it other than an alpha version which can be downloaded from this website's Download Center if you are given permission.



This appears in several places across my website. It is very similar to Magnific Popup that also appears across my website. I use this for full screen presentations mainly. You can find one under Projects > Zenith Parsing Engine. It is simply a modal popup that gives the user a very basic (at the moment) dialog.


2015 onwards

BalfBar is a menu bar designed to be similar to jQuery Smartmenus but with an added bonus of being really lightweight.

It is written in JavaScript and Sass and is very easy to customise to your own website (as with most of my projects).

The main page for this project can be found here.


2015 onwards

JBRibbon is a ribbon control, very similar to Microsoft's one. It is designed to make web interfaces similar to those found on desktop systems. I will be using it in one or two of my future projects.

The main page for this project can be found here.


2015 onwards

I am developing an online quiz system. Not much is available at the moment but more will become available as I proceed with it.


2016 onwards

Although BalfSlider kicked off in early 2013 with the initial version, it was completely ditched in 2014. I never planned to make a new one.

On the 12th October 2016 I began work on a new one. On the 17th of October 2016 it was finished. The new version was known as BalfSlider 2.0. This version included the concept of 'model' based transitions to allow easy development and focused on modularity over a fixed design.

The key focus of this version was to ensure that the jQuery plugin worked well from the beginning and could integrate into any website fairly quickly.

The main page for this project can be found here.