I am a software developer specialising in C++, C#, Games Programming and .NET ---
for buisness enquiries contact me at juliaholmes2727@gmail.com
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 especially with hands. If done well it has usually expensive additions like full body tracking built in.
This was a university project and was my dissertation for my final year, I chose this project as VR is an incredibly fascinating technology that interests me a great deal. I consider VR to be the most immersive widely accesible technology that has ever existed. VR gives depth(literally) and potential to our created worlds, it can show immersive capabilities that far surpass 2D screens, to see a tall building in VR is to truly experience its immensity in a way that is very difficult to replicate at the movies.
I believe XR technologies are going to shape how we consume media and interact with our fellow person in new ways in the coming decade, it will allow for international communication that is not only instant but includes all of the mannerism and personality that is lost through modern communication types like text and videochat. VR allows for a person to be their true self, even if their true self is not a human!
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. Here's a diagram of the data flow, this project was designed to run in real time:
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, with a flick of the wrist any object will come right to your hand!
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 progresseion 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.
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.
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.
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.
This project was developed in C# in the Godot game engine, it implements a simple feedforward neural network with a small number of hidden layers. The network is trained using gradient descent and the training data is generated using known functions. The example seen here is learning to match a circle using generated training data based on the equation of a circle seen on the right:
This network using the sigmoid activation function and mean squared error loss function.
I have used machine learning libraries like Tensorflow and PyTorch before but I have never really understood how they work under the hood. I wanted to learn how neural networks work from the ground up, I wanted to understand how the algorithms work and what is happening when you train a network. I also wanted to learn about the mathematics behind neural networks, I have a good understanding of calculus and linear algebra which came in handy when implementing backpropagation and gradient descent.
This project can be found here. Simply clone the repository and open it in the Mono Godot editor version 4.0 or higher(make sure its mono).
Ever since I learned it was possible I have wanted to create and host a personal website, in January of this year I started this journey. I decided the best platform for this project was .NET as it uses the programming language I am most experienced in, C#!
This website is being developed using the ASP.NET Core framework in Visual Studio 2022. The database setup is using DAO and SQL statements to manipulate the data, I find this prefferable as it grants more control.
I am fascinated by the early history of the internet, in the early 2000s most website traffic was going through user created and hosted websites, these 'personal websites' used to be a core part of the internet, a part that has sadly faded in the modern day. Personal websites give unlimited creative freedom in how you want to present yourself, compared to most social media sites where you may only have very limited control over how your webpage is formatted.
This interest was sparked recently when I found the website Neocities.org which allows static webpage hosting (HTML and CSS). On neocities you can find thousands of incredible creative projects, hubs for artists and webrings! I think the internet used to be far more diverse and creative then it is now and I want to be part of bringing that back!
Hosting my own website allows for functionality not normally accesible to static websites, it allows for long term data-storage for systems like comments, it allows for features like inbuilt games that can be run on your webpage, I want to make my personal website as interactable as possible and a fun place to spend your time browsing.