Here's my Github profile with all my other active projects, i have been using git for version control on a number or projects! My website is being hosted by github and i am using github pages.
Heres my pong game I made with python and the turtle module some time in 2021. It took me a few days to make but was a fun project to do.
This is a game I made in unity as my first ever project. I had alot of fun with this, trying to understand the basics of the unity class libraries was (and still is) quite challenging but I managed to make this with it. Also, the sensational music in this was also created by me... unfortunately. Click the link above to play in another window!
This website that you're on was made using razor pages with asp.net! This has been a long undertaking and I have been learning the razorpages syntax and web devlopment by myself.
01/06/2024 - Temporarily taken down the website for "maintenence", i intend to revamp the user experience on mobile as up to now it has been pretty atrocious. Created a new landing page "down for maintenence!". I intend to completely ditch asp.net and convert the website to pure html, javascript, and css.
10/06/2024 - APIs are used to communicate betweena a webpage and a database, for obvious reasons, this is a a cruical skill to have in webdevelopment and I have begun learning how to use and eventually create one. Developers that create APIs can then reuse or share their apis to others and so I have implemented "TheCatAPI" that fetches a random cat image. I have put this in its own page called Cat.html To do this, I had to learn about asyncrounous functions and the different ES6 and ES8 versions of javascript.
20/06/2024 - Have recently completely revamped the website, working with viewport units and adapting to mobile has been a learning experience for me and has enabled me to write dynamic webpages as you can see. It was especially important to get my website working on mobile for its accessibilty as I found the majority of users are in fact on mobile. this revamp has been an ongoing process but has now come to a close after alot of css work.
In this game, you have to stop the stampeding animals from getting past you, throw food at them to get rid of them. I created the initial version back around December of 2022 as part of the Unity Junior Programmer course projects. Click the link above to play in another window!
17/03/2023 - I decided to revisit this project, adding in and improving on various features. I added in a three heart life system and uploaded it to unity play so it could be played in a browser.
18/03/2023 - I've been trying to implement an inventory bar that shows the next food item to be shot. I also am implementing a reload feature with its own reload icon on the corresponding inventory slot that must be held down to reload your food objects. I have been working on the game all day for more or less 14 hours straight as there is so much to this. It has been quite the undertaking but it is finally coming together, I almost have it working perfectly.
19/03/2023 - I finished off the inventory slot system and reloading system today and have been working on adding in a progressive difficulty that constantly increases as the game goes on. Again, I have been working at this all day long.
20/03/2023 - With the life, slot and reloading system added; I decided to separate the difficuly increases into levels that change with the terrain. I have also implemented a final boss type character on stage 5 which is essentially just a big chicken that takes more food to kill but moves slower on the screen aswell as the other animals.
21/03/2023 - I added boss music and victory music aswell as a final secret 6th level that is only accessed upon beating level 5. The 6th level goes on forever and gets harder over time so no matter what you will lose eventually, but this allows players to get their own unique highscore past the winscreen. Furthermore, I have finetuned the animal speed and spawn rates on each of the levels to be more fair but also challenging - I think i have it just right. Overall, I feel finished with this project and am very satisfied with how it is now.
I Have Finished My Horde Project! I pivotted the idea instead to a lady getting chased by zombie barbie dolls - Renaming the project to "BARBIE ZOMBIES!", complete with a similar life system to my animal run game and is availible on unity play HERE!
01/02/2023 - This work in progress, my initial vision for this project is an topdown isometric type game with zombiesque creatures that attack you.
02/02/2023 - So far i have downloaded a character model and managed to animate the player when they move.
11/02/2023 - I have now scripted the behaviour of the zombies, they simply spawn as a clone in the same spot at intervals and follow the player. I programmed their heads to constantly look at and follow the player, their models are simple geometric shapes still tho.
23/02/2023 - I've downloaded a few sword models and bound one to the player models hand. When they attack, the game object is activated and leaves a cool trail behind too. Additionally, I added in Collision detection with the zombies exclusively and have their game object be destroyed if hit by the player.
10/03/2023 - Finally figured out how to make the player look at the mouse, had to use raycasts from the mouse screen position, then detect the position of the ray collision in the actual world space, bind an empty game object to that collision position, then have the player look at that game object constantly. It Feelt great to figuere this out in particular.
I want to make an adventure game similar to the legend of zelda ocarina of time. The idea came to me and I have been meaning to work on it ever since.
10/06/2023 - To start with, I have been experimenting with the camera and control types. The objecitve was to make the camera move with the mouse which is much harder than you might expect. I have had to delve much deeper into unity's new input system which can get very complicated. Then use the input to alter the rotation of the camera. This is difficult to do because the camera rotation values are in quaternions and quaternions should never be directly altered in unity unless absolutely neccesary. Thus i had to convert values back and forth between vector3s and quaternions which got very complicated, however, now i have a working camera system that can be re-used in any first person or 3rd person game i make.
14/06/2023 - Now the problem with the third person camera is that the character is always over the shoulder of the player. This is fine apart from when the player wants to run away but still be able to move the camera to look around independantely like in an open world game such as GTA or, as is the ultimate goal of this project, The legend of zelda. I will be working on this next.
Designing an operating system from scratch, should improve my foundational computer architecture knowledge aswell as my electrical engineering skills, Obviously a big undertaking and i intend to take my time to understand each step.
01/10/2025 - I have been working on a side project to create my own Operating System! OS from 0 to 1 is a fully comprehensive book designed to be self contained course on the fundamentals of creating your own operating system from scratch. So far I have been reviewing my conditional logic and developing my understing of electrical engineering, mainly at allaboutcircuits.com. This should be a crucially helpful course to improve my fundamental understanding of computers and their architecture, something i already know a thing or two about and would like to apply my knowledge practically, really consolidate and build upon it.
01/12/2025 - At a foundational level, computers operate using combinational logic gates to make decisions. To get a better grasp of how this logic works in practice, I’ve been working through a recommended Coursera course called nand2tetris. The goal is to build a range of logic chips, starting with basic gates like AND, OR, and MUX, and progressing to more complex components like MUX32 chips that handle multiple input bits and multiplex them. This course is helping me deepen my understanding of how computing works right down to the physical level. I’ve been using hardware simulator software to design and test these chips — first by sketching out logic diagrams, then by coding and simulating their behaviour. It’s been a really interesting way to connect theory with actual hardware design.
15/06/2024 - This project is a graphics collage I built in p5.js to explore experimental image manipulation. It blends multiple layered images using techniques like blendMode(), tint(), and filter(INVERT) to create glitchy, animated visuals. One of the main techniques I used was slicing an image into horizontal bands and dynamically adjusting each slice’s width with Perlin noise. This creates smooth, organic distortions that constantly shift while the sketch runs. I used get() to crop slices from the image and inverted the colours in real time before placing them back on the canvas. I also added layered motion using sine waves and noise to animate a bunch of floating eyeballs. These use blendMode(DIFFERENCE) to create contrast-heavy, reactive visuals that change depending on what’s behind them. This added another layer of randomness and movement to the piece. The whole collage plays with contrast, layering, and visual feedback to create a surreal effect. I learned a lot about how to combine image sources and control their behaviour using built-in p5 functions. It was mostly about experimenting with rhythm, motion, and disruption using image data.
20/06/2024 - This is a browser-based drawing app I built using p5.js and JavaScript. I focused on making it interactive and fun to use, with tools that behave in realistic ways. One of the main features I added was the spray tool, which randomly scatters dots around the mouse to mimic a spray can. It keeps going while the mouse is held down, and I added sliders for spread and density so users can tweak how it behaves. I hooked this up using DOM elements and linked them to the tool with JavaScript, so everything updates live. Another big part was the rectangle tool. Getting this working properly meant figuring out how loadPixels() and updatePixels() actually affect what’s shown on the canvas. I used them to show a live preview of the rectangle while dragging, and then locked it in when the mouse is released. The tools are all separate files and connected through a toolbox system, which makes everything modular and easy to update or expand later. I kept things simple and user-friendly with clear icons and controls. Overall, I’m happy with how it turned out — it’s stable, does what I wanted, and feels satisfying to use.
22/06/2024 - This project is a 3D simulation of moving cells built using p5.js with WEBGL. Each cell has its own position, velocity, and size, and they bounce around inside a 3D box. When two cells collide, they bounce off each other and lose a bit of their size — once a cell gets too small, it’s removed from the simulation entirely. The cells are coloured based on their size using HSB values, so as they shrink, their colour shifts in real time. I used vector math for position and velocity tracking, and added proper collision detection using 3D distance calculations and basic kinematics. Cells also detect and react to hitting the walls, reversing direction and correcting their position if they go out of bounds. It was a fun way to play around with motion, forces, and spatial interaction in 3D. I also learned a lot about vector operations and how to structure reusable object-oriented code in p5.js. I’ve been experimenting with adding more behaviours too — like growth conditions and better lighting — but as it is now, it’s already pretty satisfying to watch and tweak live in the browser.