A C++ implementation of an assembler for the 16-bit Hack computer architecture, based on the specifications from "The Elements of Computing Systems" (Nand2Tetris). This program translates assembly code written in the Hack language into binary machine code that can be executed by the Hack computer. It processes both A-instructions (addressing) and C-instructions (computation), handling symbolic labels and variables according to the Hack specification.
HomeBot is a dynamic smart home control application built using Python and KivyMD. I attempted this project in high school to practice on kivymd and language parsing concepts i learnt from "Programming principles and concept using C++ by Bjarne Stroustrup". The core milestone I acheived in this project is implementing a custom Data Definition Language (DDL) designed to define the structure of a building (rooms and gadgets) dynamically, allowing the UI to render itself based on a text configuration string rather than hardcoded layouts. This project demonstrates a data-driven approach to UI generation. Instead of manually placing buttons and sliders for every light or fan, the application parses a custom configuration string to build the object model in memory, which the interface then reflects.
A C++ implementation of a VM translator that converts virtual machine code (.vm) into Hack assembly language (.asm) as specified in the nand2tetris course. This translator implements the standard VM model with stack-based operations, memory segments, and function call handling. The VMTranslator reads a .vm file containing intermediate VM code and translates it into Hack assembly code that can run on the Hack computer platform. It handles all standard VM operations including arithmetic commands, memory segment access, program flow, and function calling conventions.
Alien Quest is a 2D space shooter game built with Python and Kivy. This project was created immediately after graduating high school as a personal challenge to build a game engine from the ground up. Instead of relying on pre-built physics or high-level game engine features, I implemented the core physics, collision detection, and rendering logic myself to deeply understand the fundamentals of game development and advanced OOP.
This was an hackathon project i built with in a team at the Lagos Impact Hackathon 2025. I played the role of a backend developer building the backend with python (django). Handling Database management, Deployment, Model Inferencing etc.
Connect N is a customizable strategy board game developed using Python and the Pygame library. Created as an high school senior, this application generalizes the mechanics of classic games like Tic-Tac-Toe and Connect Four into a scalable, grid-based experience. The game allows players to compete on a square grid of variable size (NxN), supporting both local multiplayer and single-player modes against a Heuristic-based algorithm.
A robotic platform that I built at the beginning of my 200 Level second semester. This robot involved a lot of C++ programming handling bluetooth communication with PS3 controller, Motor Control Using the LedCWrite Esp32 API controlling a L298N Motor Driver. I also built a custom Servo Library due to esp32 framework instability, I implemented and tuned a PID Controller to enable the robot to move in straight paths and face target directions making use of the MPU6500. I made use of an SSD1306 128x64 pixels display programming a Display panel to data reporting such as actual heading relative to calibrated position, Battery Level (Used a voltage divider and 12 bit ESP32 ADC), Connection Status to ESP32 CAM AI THINKER board and PS3 Controller. One other feature was the use of an RFID card to unlock the robot before usage or using a secret key combination on the PS3 controller to unlock. The main MCU i used was the ESP32 Dev module running the Robot Firmware I programmed.
This project is a Python application that provides a visual demonstration of the Fourier series. It takes a user-defined drawing, represented as a series of 2D points, and reconstructs it using a set of rotating vectors, often called epicycles. This creates a beautiful animation where the tip of the final vector traces out the original shape. This was built to practicalize concepts learned in my Advanced Engineering Mathematics Course, specifically showing how a complex periodic function (a drawing) can be decomposed into a sum of simple sinusoids.
An hackathon project i build with a team at the Cavista Hackathon 2026 where we came 4th place. I functioned as a backend & ML developer. I built the backend with python (django).
This is a virtual environment with a robot using a virtual camera to navigte around. I designed a playfield for a robot with URDF and xacro. The robot to was built using URDF and xacro to implementing its joints and mechanics. Properties such as mass, inertia, coefficients of friction was well the defined. Using gazebo plugins i was able to enable cameras in gazebo on the robot of which i used a ROS node to use that image do computer vision processing on it and publish velocity command messages on a topic. The specification of the system was tailored towards The World Robot Olympiad Gameplay rules. I presented the project to participate in the competition in a team as a preamble to the Physical implementation. This was a project in 300L second semester to consolidate my ROS2 training using the online documentation and the theory of machines course i took that semester.
My first attempt at building a robot which i did as a fresher under my lecturer taking MCE101. I learnt alot during this project initially using an Arduino Uno MCU then changing to the Arduino Leonardo MCU. I was able to programming it in C++ to avoid obstacle. I later did a simple remote controller using a 433mhz transmitter with an Arduino Nano and a receiver on the robot. The remote was a simple one using just a joystick. It was a very fun porject for me because i had anticipated and started C++ and Electronics prior to this.
This project is a 2D graphical simulator for a 5-bar SCARA (Selective Compliance Assembly Robot Arm), built with C++ and the SDL2 library. It provides a visual representation of the robot's movement, its reachable workspace (configuration space), and demonstrates the principles of both forward and inverse kinematics. This was a personal project undertaken at the end of my first-year, second semester in university. The primary goal was to gain hands-on experience and a deeper understanding of kinematics and advanced trigonometry. It served as a practical exercise to apply theoretical knowledge from my coursework into a functional, interactive application.
In 100 level I attempted to build a self balancing robot using an Arduino Nano MCU and an MPU6500 accelerometer and gyroscope sensor. I implemented PID for the first time to stabilize the robot. But even after many tuning attempt the robot was not able to stabilze. This was due to bad design which when i took a mechanics course I learnt that there were design specifications i didn't take account for when build the robot making it hard to maintain stability.
Developed as a personal project in 200-level second-semester, I built this application with the specific goal of transforming the simple, often predictable game of Tic-Tac-Toe into a complex, multi-layered strategy experience.
The Traffic Control System is an IoT-based solution for managing and monitoring traffic at multi-road intersections. It integrates embedded hardware for real-time control with a Django-based web server for remote observability and data analytics. This project was done as a mini demonstration which could be scaled with computer vision for density tracking.
This is an Hackathon project that i work on with team winning 2 hackathons (Cavista 2025, CodeFest Nigeria 2025) both in first place. I played the role of a backend, ML & Embbedded System Developer. The second iteration of the project built at Codefest Hackathon i prototyped a wearable. The device checks live vitals and report our server. Then monitoring and AI/ML inferencing are Displayed in on the Dashboard.
Its a system that regulates the level of water in a tank. It uses a solenoid value to control of water to a tank and a sphygmanometer sensor to determine the water level by allowing using the change in air pressure in the pipe when the water level changes. I used an ESP8266 MCU to control the system. It also runs a local webserver that allows you to monitor and set the behavior. I calibrated the system by manually taking measurements of pressure against the actual level in litres, Then use numpy's polyfit function to fit into a quadratic equation (the graph wasn't linear). I use the coeficients in the firmware to get accurate water levels.