Barnaby's Portfolio

About Personal VR Game Modding Miscellaneous Commissions

About me

My name is Barnaby, I'm (currentYear-2004) years old and I like writing HTML more than most people.



Skills

Personal projects (2022 - Present)

My personal projects have been made both with care and simplicity in mind. I try to give a bit of personality to everything I make, including the stuff that's informative and about me.
I like to use these projects as an experiment of my abilities, to see how much I can make with as little code as possible.

This portfolio works both with and without JavaScript, although you get a better experience with it enabled.
You're currently experiencing this page WITHOUT JavaScript.

VR utilities (2023 - Present)

ALVR

Source Code

ALVR is an open-source application, written in Rust, which enables streaming from a PC to any standalone VR headset. I have contributed multiple features to ALVR, such as hand gestures, AV1 support on Windows with AMD GPUs, and support for inside-out body tracking.

Body tracking

The Meta Quest 3 and Quest Pro headsets support 2 forms of body tracking, inside-out upper body tracking and "generative legs". Their upper body tracking uses the inside-out camera data to directly track the user's arms and torso. "Generative legs", differently, estimates the position of the user's legs using a machine learning model.

Adding support for these features in ALVR required using an undocumented OpenXR extension and trasmitting data to the PC, which then emulates HTC Vive Trackers in SteamVR.

Hand gestures

ALVR has long supported hand tracking, however, not many VR apps and games support using hand tracking as an input method. To solve this, I added "gestures" to help bridge this gap, allowing performing certain motions with your fingers to trigger emulated controller inputs to allow use of hands as an input method in all VR software.

PicoZen VR Library App

Website   Source Code

PicoZen is an alternative (and I have to tell people it's unofficial) library and utility app for PICO XR (and Quest). I designed it to look and feel like it came stock with the PICO OS.

PicoZen runs on any Android-based VR headset and shows all the apps installed on the user's headset, including ones that are hidden in the default file manager. It also has tools for sideloading custom apps and backing up saves.

Stats

Lifetime downloads (8 May 2023 - 12 Feb 2024): 4,929
Monthly proxied FTP bandwidth (21 Jul 2023 - 20 Aug 2023): 426GB
Weekly backend requests (13 Aug 2023 - 20 Aug 2023): 368.53k
Proxied FTP doesn't account for all bandwidth transferred through PicoZen as unproxied FTP and SMB are supported in the app (but not the website).

PicoZen Website

The PicoZen website was made to emulate the style of the app as closely as possible while also maintaining a responsive design.

To make PicoZen's sideloading capabilities more accessible, I created a web-based analogue for this feature which leverages the FTP to HTTP proxy I created for the app.

Game Modding (2022 - Present)

TFORevive

Website   Source Code

Titanfall Online was a cancelled free to play first person shooter game based on Titanfall 1 and developed for the Korean/Asian market. Its development begun in 2016 and suddenly ceased in 2018, after seeing a few beta test periods in South Korea.

The TFORevive project was founded to restore the playability of that game, in order to let people just play it and enjoy it, and in order to explore and expand the modding capabilities to something never seen before in the Titanfall series.

TFORevive Game UI

Titanfall Online originally used the Coherent UIGT library for it's UI. As part of the TFORevive project, we removed UIGT and replaced it with Ultralight.

With this change, I was tasked with creating a brand new UI to replace the outdated, half-functional UI. We decided upon using Vue to create the required UI elements in an extensible single-page HTML view.

One notable aspect of the UI is the loadout screens, which are dynamically populated with data from the game engine and call native functions to manage the real-time player preview.

Many components of the UI redesign required programming not only in HTML, but also C++ and Squirrel as well as the use of a disassembler to aid in reverse-engineering and hooking compiled code from the game engine.

TFORevive Website

The TFORevive website is stylised to mirror the design of the in-game UI, with clear parallels to the game UI as well as the launcher but changes made to better suit the web environment.

TFORevive Launcher

I made the TFORevive launcher to be both easily navigable and visually stunning, as to catch the player's attention before they even open the game and to ease them into the game's interface design.

As shown in the images above, users can customise multiple aspects of both the launcher's appearance and the game's function from within the launcher.
As an example, the mod menu allows toggling any installed mod as well as viewing each mod's details in a easily digestible format.

TFORevive Installer

One of the main goals of TFORevive is to preserve the legacy of Titanfall (2014). To do this we needed to ensure that the content of the game could be preserved along with its gameplay. For this task I created the TFORevive Installer using the Electron framework.

Using my prior work on Harmony VPK Tool, having fully reversed-engineered the game's archive format, I was able to implement my existing code to extract files from an install of Titanfall and package them into mods for TFORevive to ensure that the game and all its content remains playable.

Harmony VPK Tool

Source Code

To enable easier modding of games from the Titanfall series (which use the 'Respawn Source' engine), I developed a Rust crate for manipulating Respawn's undocumented fork of the VPK Archive format

The crate that powers Harmony VPK Tool is called sourcepak and it supports extracting from VPK files compatible with Titanfall as well as those made for Portal 2, Source Filmmaker and Left 4 Dead.

Harmony VPK Tool originally used the TFVPKTool TypeScript library, which was only compatible with Titanfall VPK files. Harmony VPK Tool has since been rewritten in its entirety to use the sourcepak crate, and take advantage of its many benefits.

Northstar

After the surprise release of the Northstar mod for Titanfall 2 in 2021 I helped secure the 'masterserver' and the mod client against multiple security exploits, helping to prevent abuse of the server listing feature and enforcing player usernames, and improved server-side functionality to ensure ease of use for both players and server hosters.

I also created the homepage for Northstar, which has since had additional parts added by other open-source contributors. The main landing view remains almost entirely as it was on the day I first created it.

Miscellaneous (2020 - Present)

Timetable

I got frustrated of the slow, unreliable timetable that my university uses and one day decided to investigate. As it turned out, they had absolutely no caching on their backend and also requested that your browser do the same.

I set out to solve this by making my own wrapper around their API, which fixed many of the poor design choices and implemented appropriate caching. I then used this new, improved API to create a custom timetable UI that supports many of the same features as the original UI, while also being faster and saving data so that it can also work offline.

Discord Bots

Since 2018, I've created many Discord bots (successful or not).

In 2023 I created \\schizo, a simple bot with few in-depth features and a fully modular design.

The project was a way to explore a different kind of design than I'm used to, with a more vibrant and emphasised look.
The website shows off this unique style, the likes of which I rarely find an opportunity to express.

In 2020 I helped create the fully customisable Wahtson and made a custom Wiki for the bot's configuration.

Commissions (2022 - Present)

I have completed multiple commissions and projects to unanimous satisfaction.
I refuse to settle at "okay".

Testimonies

Showcase

Scrumpbot

Trident

Headscratchers