Below is a summary of some of the commercial and academic projects I've worked on.

2024

Marinerg E-Infrastructure - ICHEC

The Marinerg project aims to build a European distributed research infrastructure for offshore renewable energy. ICHEC are part of a work-package to build the e-infrastructure to support the project, including the design of web portals to support facility access and a data management system. The project is at an early stage, but some of the content is open-source and available here.

Tools

ICHEC Common Tools - ICHEC

Recently at ICHEC we've started building up a collection of documentation and software tools to help us standardize some of our workflows across projects. The documentation takes the form of a handbook which has a public version. The software takes the form of a collection of open-source Python packages, including functionality for technical report generation, system monitoring, batch task processing on HPC systems and workflow management.

Tools

Hierarchical Storage Management API - ICHEC

As part of the IO-SEA project for developing next generation exascale storage systems, ICHEC developed an API and implementation for interfacing a collection of diverse storage backends under a hierarchical storage management (HSM) paradigm.

The developed software package Hestia is a C++ application including Http and S3 client and server implementations and an interface to to CEA's Phobos tape storage library.

Tools

2021

Porting the Webex App to Linux - Cisco

Webex on Linux

Image: The Webex App running on Ubuntu 22.04

At Cisco I was the technical lead on the project to bring the Webex App to the Linux platform, supporting Ubuntu and Red Hat. My main technical work was on the installer, build system integration and platform integrations (e.g. keychain).

Tools

2019

3D Modelling and Graphical Programming in the Browser - ZEG.ai

Videos: Left - A browser-based 3D modelling tool based on graphical programming being used to create a 3D model of a table. Right - Scripted morphing of a table with photorealistic rendering.

Most 3D model creation is highly manual with the typical process not being well suited for automation. While at ZEG.ai I worked on developing different ways to build 3D content that are better suited for automation. One project involved building a browser-based 3D modelling engine and a new graphical programming language. The engine was built using C++ and integrated with Three.js and Angular in the browser using WebAssembly. The language was expressive and user-friendly, allowing commercial quality 3D models to be created by non-expert users. See the ZEG.ai Sketchfab channel for nice examples.

A related project involved creating a cloud-based renderer so that models built in the browser could be quickly used to create photo-realistic renders and animations. This involved Python wrapping the C++ 3D engine with PyBind and integrating it with Blender/Cycles on AWS. Render tasks were managed with RabbitMQ and Celery.

Tools

Single Image Reconstruction of 3D Models with Deep Learning - ZEG.ai

Video: Fully automatic 3D model generation from a single image in the browser. This example was based on the Pix2Mesh architecture running on AWS.

While at ZEG.ai I worked on several projects for automatic 3D model generation from single images. This involved researching, assessing and building on many state-of-the-art architectures from the academic literature. These covered 3D CNNs, custom octree-based architectures, graph CNNs and differentiable renderers. One particularly interesting approach was based on Neural Programming via RNNs allowing the graph created in the browser-based graphical programming language to be directly predicted.

Tools

2018

Single Image Reconstruction of 3D Models with Computer Vision - ZEG.ai

Video: Automatic generation of 3D models from single images using computer vision and mesh morphing approaches.

One of the early projects I worked on at ZEG.ai involved the generation of 3D models automatically from single images using computer vision techniques. The most effective approach involved item segmentation, classification and mesh morphing via optimization to best fit the resulting shape. This worked reasonably well for items with simple topology such as low poly containers, footwear, and clothing. I also evaluated more sophisticated computer vision approaches based on pose-estimation and non-rigid registration.

Tools

2017

Automatic 3D Model Generation - Entrepreneur First

Automatically generated lamps Automatically generated living room

Image: Left - An early prototype of an automatic shape generator for lamps. This idea later evolved into a powerful approach for general 3D model generation, such as the room and contents on the Right.

While at Entrepreneur First most of my activities were related to company building and customer research, however my partner and I did build a snazzy automatic lamp model generator on a 4-day coding binge. This was written from scratch in Python with Blender and Cycles integration in a Docker container, while my partner built a React/Node web platform for it. I'm quite proud of this one as it was pulled together very quickly under pressure. The source code is available here.

Tools

Microrheology - University of Oxford

Blood Flow

Image: A segmented tumour microvessel network and a computer simulation of red blood cells flowing through it (thanks to Dr. Miguel Bernabeu, University of Edinburgh).

The availability of oxygen in tumours affects malignancy and responsiveness to treatments such as radiotherapy. Tumour oxygenation depends on how red blood cells are distributed throughout the microvasculature. Suitable rules for modelling the distribution of red blood cells in the pathological vasculature of tumours have not yet been determined. I worked on studying how red blood cells distribute at branching points in the tumour, and ultimately making better predictions of oxygenation. This study was in collaboration with Prof. Ruth Muschel's group at the University of Oxford, Dr. Miguel Bernabeu at the University of Edinburgh and Prof. Tomas Alarcon's group at the CRM, Barcelona.

My role here was segmentation of 3D image stacks from mulit-photon microscopy in mice, design of microfluidics chambers for flow experiments, particle tracking for measuring red blood cell flux and help in post-processing and 3D visualization of experimental and simulation results.

Relevant publications:

Semi-Flexible Polymer Networks - University of Oxford

Tracking

Image: A simulation of two cells deforming a semi-flexible network (thanks to Dan Humphries).

The extracellular matrix is a fibre network through which cells can communicate mechanically. The fibrous nature of the network allows cells to communicate over surprisingly large distances. Dr. Dan Humphries, Prof. Eamonn Gaffney and I investigated how the architecture of these fibre networks affects cell-cell communication.

Relevant publications:

2016

Angiogenesis - University of Oxford

Sprouting Angiogenesis

Image: A simulation of sprouting angiogenesis in a corneal micropocket assay experiment.

Sprouting angiogenesis is a process in which new vasculature is formed. It is of central importance in the diagnosis and treatment of many cancers. It is a complex combination of biophysical processes, which are the focus of much on-going research. I worked on the development and application of open-source software for multi-scale modelling of this process and integration with intravital imaging data, in collaboration with Prof. Ruth Muschel's group at the University of Oxford.

Relevant publications:

Radiotherapy - University of Oxford

Radiotherapy

Image: A multi-scale, agent-based simulation of radiotherapy using a real tumour microvessel network.

The responsiveness of tumours to radiotherapy depends on oxygen availability, which in turn depends on the structure of the tumour microvessel network. I studied the relationship between the 3D structure of the microvasculature and radiotherapy response. This involved simulating tumour growth and radiotherapy using multi-scale, agent-based soft tissue models.

Relevant publications:

2015

Stent Design - NUI Galway

Tracking

Image: Finite element simulation of stent delivery in a stenosed, curved, vessel.

Accurate simulation of coronary stent deployment in the body can reduce reliance on costly experimental testing and accelerate device design. Detailed simulations, including curved, stenosed arteries and folded balloons encompass many challenging areas of solid mechanics. This includes, large deformations of anisotropic elastic materials, finite sliding contact, and construction of complex 3D geometries. I developed techniques for high-resolution stent deployment modelling, and applied them in studying bioabsorbable magnesium devices.

Relevant publications:

2014

Bioabsorbable Alloys - NUI Galway

Radiotherapy

Image: 3D Scanning electron microscopy of a bioabsorbable magnesium alloy post corrosion.

A new generation of temporary, bioabsorbable metallic medical devices is showing great promise. New computational techniques are required for simulating the bio-corrosion of these devices and predicting long term performance and risk. I developed several models of magnesium bio-corrosion, based on experimental testing of long-term corrosion of AZ31 alloy under static loading and applied these in the study of bioabsorbable metal stents.

Relevant publications:

Metal Micromechanics

Tracking

Image: A crystal plasticity finite element simulation of a deforming stent strut.

The struts of coronary stents are less thick than a human hair. At this size-scale the assumptions of continuum plasticity theory begin to break-down, as metallic grains become comparable in dimension to the the strut. Explicitly modelling individual grains when simulating the deformation of stent struts allows 'statistical size effects', resulting in unexpectedly low failure strains, to be investigated. I studied the deformation of stent struts using crystal plasticity theory for a range of candidate stent materials, including magnesium.

Relevant publications: