My Work
(1) Variance-Based Sensor Switching

This project focuses on equipping an Arduino-based line-following robot with an innovative sensor switching mechanism that dynamically selects between analog and digital sensors based on real-time variance assessments. A study is performed to test the optimization of sensor performance by leveraging the high-resolution data from analog sensors for precise control and the straightforward outputs from digital sensors for reliable navigation.
The robot incorporates advanced motor control, kinematics calculations, and encoder data processing to ensure accurate movement and orientation. It integrates both digital and analog line sensors to detect its position relative to a line, crucial for line-following tasks. Through detailed data analysis and visualization, the project evaluates the robot's performance, highlighting the trade-offs between sensor accuracy and navigation smoothness.
(2) Scotland Yard

This project is a digital adaptation of the classic detective board game, developed using Java 17 and Maven. This project brings the thrilling chase across London to life, where players can take on the roles of detectives or the elusive Mr. X. The game leverages advanced software engineering principles, including graph algorithms, design patterns like Visitor and Observer, and modern Java features, to deliver an engaging and dynamic gameplay experience.
The implementation is structured into five crucial phases, encompassing game state initialization, player movement through London's transportation network, game state updates, winner determination, and real-time game state observation. Key components include a game state factory, strategic player movement functionalities, and winner determination logic. The project showcases technical highlights such as the use of graph algorithms for player movement, design patterns for scalable architecture, and advanced Java features for efficient event handling and state updates.
(3) Line-Following Challenge

This is an Arduino project undertaken as part of the EMATM0053 Robotic Systems coursework at the University of Bristol. The objective is to develop and program a Pololu 3Pi+ mobile robot to autonomously follow a predetermined line path. The robot is designed to navigate through corners, curves, and intersections, determining the most efficient path back to the starting point. The project leverages the robot's onboard sensors and motor controllers to execute complex maneuvers, ensuring robust performance across various track segments.
Key features include advanced line detection and dynamic navigation, which enable the robot to accurately follow lines under varying conditions and handle complex paths with high precision. A state-based decision-making system orchestrates the robot's behavior, transitioning between different modes of operation based on real-time sensor data.
(4) RedNoise

The RedNoise Graphics Rendering Toolkit is a C++ project focused on teaching the basics of graphics rendering. Utilizing SDL2 for window management and glm for vector and matrix operations, it offers hands-on examples and interactive experiments to help users grasp fundamental rendering techniques. The toolkit covers a range of topics from pixel manipulation and geometric primitives to more advanced concepts like texture mapping and OBJ model rendering.
Key features include red noise generation for demonstrating pixel manipulation, interpolation algorithms for understanding gradients and color transitions, and basic drawing primitives for creating shapes. Additionally, it supports OBJ file loading and rendering, introducing users to 3D model handling. Event handling and interactive graphics are also implemented, showcasing real-time rendering and user interaction, essential for game development and simulations.
(5) COVID-19 Simulation

The above is a Python-based data analysis project designed to explore the spread of COVID-19 under various public health interventions through detailed simulations. It examines the impact of strategies like quarantine centers and social distancing norms on infection rates within a hypothetical population, starting with initial infection rates of 10%, 25%, and 50%. The project employs agents representing individuals, each with behaviors influenced by health status, mobility, interactions, and compliance, providing a dynamic and realistic model of virus spread and the effectiveness of different public health measures.
The simulations reveal critical insights into the effectiveness of interventions. Without public health measures, the virus spreads rapidly, overwhelming healthcare systems. Quarantine centers significantly reduce the spread, especially at lower initial infection rates, while social distancing profoundly flattens the epidemic curve, even at higher infection rates. These findings underscore the importance of timely and effective public health strategies in managing pandemic scenarios.