Menu transitions, focus and navigation, key rebinding for Genesis Noir

Genesis Noir is designed to seamlessly support swapping between mouse, keyboard, and controller. Here's a pre-art pass on the keybinding GUI allowing for almost all controls to be remapped, as well as a short demo showing the focus management system that keeps sync between the different input methods in the menus, in addition to submenu management with transitions and focus-forwarding into subwidgets.

Some extra information about the focus management system is contained in this blog post.

2D Verlet Gravity Mesh Simulation for UE4

This gravity system uses a procedural mesh component driven by a verlet simulation to emulate black holes pulling in galaxies for Genesis Noir.

We Are the Caretakers - Editor tools

Caretaker has a lot of character stats, abilities, and effects/buffs/debuffs. It quickly became apparent during development that we needed a way to expose a lot of that functionality to designers so that they could create and iterate on these elements as quickly as possible without needing to involve a programmer, so when designing those systems I made sure to allow for in-editor behavioural customization with minimal code required. These editor windows use a lot of introspection so that if an additional character attribute, buff, or modifier were added, there was no need to alter the editor boilerplate to make those selectable. Pictured here are some of the editor tools for customising Effects, Abilities, and Missions with their associated objectives.

Custom Game Controllers

A series of custom game controllers, using STM32 Cortex-M microcontrollers for USB functionality and an Unreal 4 plugin for input device support.


The FABRIK IK solver is a custom animation blueprint node which allows fast IK solving for bone chains of arbitrary length, using an approximation algorithm which is faster than the CCD implementation used in previous engine versions.

The algorithm itself is courtesy of Andreas Aristidou.


This Unity-based space simulation was delivered via the browser, as a research tool, to assess player decision-making processes and apply the analysis to real-world financial decisions. Players responded to events, making choices in an attempt to prolong their journey, by managing fuel, crew and ship equipment. It included a separate editor application to allow the client to customize the simulation and events, to their requirements, without having to write code.

Leap Motion UE4 Integration

Predating the official plugin, this was a plugin allowing for UE4 Blueprint projects to incorporate data from the LEAP motion sensor into their games. It uses events rather than polling and allows for the sensor data to be used to dynamically drive skeletal mesh animation.