Julia Holmes

Julia Holmes

Linkedin --- Youtube

Games Programming

Interesting Algorithms

Other Projects

Hide

VR Hand Tracking System

Using OpenVRs open source codebase as well as Googles Mediapipe framework I developed a hand tracking system for VR that uses only cameras. I think that this technology has a lot of potential for the future of VR, as it allows for more versatile tracking, if done well it has usually expensive additions like full body tracking built in.

This project can be found here. It was programmed mostly in C++ but it also made use of Python. Mediapipe(used for tracking) was run through Python, the data retrieved was sent via local TCP networking and received by OpenVRs virtual Driver.

[put diagram of information flow here]

Hide

Themepark Game

Themepark game[working title] is my current long term creative project, it is a VR game in the Mystlike genre, your goal in the game is to uncover the mysteries of Qualia valley. The games style is inspired by Aimkid an artist on Youtube and Twitter ( Aimkids Channel ). In the game you play as a resident of [Village name] when your best friend tells you about the upcoming fetival coming in 30 days.But! As you're walking through your village you spot a strange object making unusual sounds... in this game you'll find that this valley is not as simple as it might first appear!

This game incorporates ease of use mechanics like a long object pull from far away:

This games main gameplay loop is to find interesting locations in the valley which gives more questions than answers, compelling the player to explore the valleys mysteries further. This gameplay loop is inspired by Outer Wilds, a game that has no progrsseion beyond the knowledge gained from exploration. The gameplay is also non-linear meaning it can be completed in any order, this is because all locations in the game are technically accesible from the beggining, however you must first know how to access them.

Hide

Percolation

Percolation is generally described as the filtration of liquid through porous material. The algorithms designed to simulate this process create some really pretty results! Having took some inspiration from an informative video that can be found here I decided to make it for myself.


The Science

In Percolation Theory the type of percolation being simulated is 'Site Percolation'. Site Percolation posits that a 'site' is occupied or unoccupied with probability 1-p that it is occupied. The main question in Site Percolation is that given two points what is the probability that a path exists between them, at p=1 the answer is 100% as all sites are occupied and at p=0 the answer is 0% as all sites are bounded. The chance outside these non-extreme values depends not only on p but the distance between the points, that is unless p=0.5, in this case the chance there is a path between two points is always 50% no matter how far away those two points are.

This is true for 2D percolation, in 3D percolation the critical value of p is 0.3... scientists and mathematicians are still discovering the different values for N-dimensional percolation patterns, these algorithms can tell us a great deal about the nature of emergent structure, for example magnets display percolation patterns in the atoms being polarised for magnetisation, the 'p-value' in this case is modulated via heat.


My Implmentation

The form of percolation I have created is interesting as it has been mathematically proven to have self similiarity, meaning that the patterns created at different scales are similar to each other. This is a common trait of fractals. This fractal in particular holds a really strange property, it is equally likely there is an infinite span of one connected cell or that there isn't.

I developed this code in the Godot game engine, the source code for it can be found here, I created both a compute shader and a CPU version of the code. The CPU algorithm works basically as a flood fill except the 'walls' of the floodfill are determined by if a randomised value at a connection point between two pixels is greater than a value of p. If p is greater than .5 then the percole resolves into small groups of connected cells with similiar sizes, if p is smaller then an infinite spanning group will encompass very small clusters of pixels, only at p=.5 does the fractal nature of this pattern show itself.

Hide

VR Hand Tracking System

Using OpenVRs open source codebase as well as Googles Mediapipe framework I developed a hand tracking system for VR that uses only cameras.