Edward Agombar

Ed Agombar

WikiMapper (Current)

The WikiMapper project aims to take a ~100GB XML Wikipedia dump file and transform it into a graph database that can be explored visually.

So far, a multithreaded parser has been developed that extracts each page and the links associated with it, and writes them to a CSV file is parallel. These CSV files can then be used to quickly generate a Neo4j database using the Neo4j-admin tool.

Now that the database can be created, a method is needed to visualise this data. Due to the sheer size of the database (over 300 million links), the default Neo4j visualiser will not cut it. A program is being developed using OpenGL to visualise the data. On top of this, in order to efficiently access the data from the Noe4j database, I am implementing the Bolt protocol in C++ to access data from the database.

C++

XML Parsing

Bolt Protocol

Neo4j

CMake

Parallelisation

OpenGL

GProf

Home Server

After completing an intership in a cloud infrastructure department, I decided to build my own home server. I wanted to learn more about cloud infrastructure, as well as having a place to host my own projects. Initially, I set up a Kubernetes cluster to learn more about it. However, I eventually settled on using Proxmox to manage to containers and VMs.

Linux

Kubernetes

Networking

Cloud

Proxmox

Spanner

Spanner is a website that allows users to analyse their listening habits and playlists. I undertook this project to learn about web development, gain some expereince on the front end, as well as giving me an escuse to build a sever to host the site! The frontend was developed in Typescript with React. The backend, which communicates with the Spotify API and processes the data, was developed in Go.

Go

Typescript

Oauth

API Design

HTML

CSS

SQL

Gesture Controlled Robot Hand

For my masters project, I developed a gesture controlled robotic hand. I designed and 3d printed a hand with 6 degrees of motion, controlled via a microcontroller. The microcontroller recieves data from a Raspberry Pi, which recieves position data via UDP from a desktop application that I developed in QT over the internet. The desktop application utilises computer vision to track the user's hand with a webcam and the MediaPipe library.

MediaPipe

OpenCV

QT

Raspberry Pi

Fusion 360

C++

Python

UDP

Table Football Robot

At the Nottingham 24 hour Hackathon - HackNotts84, I led a team to win Intel's 1st place prize, building a table football robot and competing against over 40 teams from 25 Unis across the UK.

This was acheived using computer vision and parts of a 3D printer. We were able to track the location of the ball in real time using a webcam and OpenCV and send Gcode commands to the robot control board in order to intercept and kick the ball towards the goal.

Hackathon

Intel

OpenCV

GCODE

C++