Projects

Portfolio Website

My personal website showcasing my software engineering skills

Technologies Used:

Next.JSTypeScriptTailwind CSSShadCNThree.jsReact Three FibertRPCZustand

Project Details:

This project was an exploration into creating immersive web experiences using React Three Fiber. The goal was to showcase my portfolio in a unique, cyberpunk-themed 3D environment. I faced challenges in creating intuitive user interactions within a 3D space. To overcome this, I designed a hybrid 2D/3D UI for better usability. The projects and experience pages are standard 2D web UI.

AutoRune

AutoRune is an OldSchool RuneScape automation platform developed mostly in Kotlin

Technologies Used:

JavaKotlinReactReduxThunk

Project Details:

The client is the 'brain' of the whole platform. Responsible for running instances of the injected gamepacks as well as user created scripts and relaying the status of them. The client also communicates from the remote dashboard. The dashboard is a web app designed to communicate remotely with the AutoRune client. It creates a socket connection and can send commands and monitor the status of the client and the individual instances. The management repository contains all of the modules that only the developers and maintainers would ever have knowledge of. It contains everything needed to update AutoRune after an OSRS revision change including hooks, api generation, injected gamepack creation, and the ability to add mixins. The utilities repository contains tilities and helpers used across multiple AutoRune modules. Contains things such as ASM extensions, file system utilities, and client specific resources. The scripting api exposes everything needed to create osrs scripts to the platform users. It is a simplification and extension of the actual osrs api which is generated from the hooks and mixins.

Farmer John AI

FarmerBot is an AI agent designed to assist in farm maintenance by efficiently planting and harvesting crops, allowing Farmer John to enjoy more leisure time.

Technologies Used:

PythonMalmoNeural Networks

Project Details:

The project aims to develop an AI agent, FarmerBot, to assist Farmer John with farm maintenance by efficiently planting and harvesting crops, targeting a state value of over 700. Utilizing a Dueling Double Deep Q Network for pathfinding and a simple neural network for decision-making, FarmerBot learns through experience replay and a reward system that encourages optimal navigation and planting choices. Evaluation metrics include pathfinding success rates, decision-making accuracy (with 95% success in top predictions), and productivity measures like path optimality and state value. Results show that the best-performing agent exceeded the target state value, demonstrating effective navigation and decision-making, thereby allowing Farmer John to enjoy more leisure time while FarmerBot supports his farm for years to come.

Virtual Memory System

A virtual memory system (VM) utilizing segmentation and paging.

Technologies Used:

Java

Project Details:

TThis project implements a virtual memory system (VM) using segmentation and paging. The system manages the necessary segment and page tables in a simulated main memory. It accepts virtual addresses and translates them into physical addresses according to the current contents of the segment and page tables. The system also utilizes a translation look-aside buffer (TLB) to make the translation process more efficient.