Production AI/ML Projects
AI-Powered Road Infrastructure Monitoring System
The AI-Powered Road Monitoring System addresses the critical issue of late detection of road defects, which poses significant safety risks to drivers and commuters. By leveraging the regular coverage provided by waste trucks, the system captures the state of every road each time they are traveled on. This consistent city-wide data enables councils to prioritize the most important road damages while monitoring potentially problematic cases.
Technologies: PyTorch, Computer Vision, Object Detection, Google Cloud Platform, Docker
AI-Powered Street Waste Detection System
The AI-Powered Street Waste Detection system focuses on identifying and locating debris and waste that may obstruct roads or compromise street cleanliness. By integrating the detection system with the extensive coverage of waste trucks, the system provides a comprehensive view of a city's overall quality and health. This information can be used to create a rich map of waste locations, facilitating efficient cleanup efforts.
Technologies: PyTorch, Computer Vision, Object Detection, Google Cloud Platform, Geospatial Analysis
LLM-Enhanced IoT Device Monitoring Platform
The LLM-Enhanced IoT Device Monitoring Platform transforms complex IoT telemetry data into actionable insights through intelligent automation. By integrating Large Language Models with the Model Context Protocol (MCP), the system analyzes device performance patterns and generates comprehensive daily reports with natural language explanations.
Technologies: Large Language Models (LLMs), Model Context Protocol (MCP), API Integration, Data Analysis
Academic & Research Projects
Skin Lesion Segmentation with Improved U-Net
Applied improved U-Net architecture on the ISIC dataset for melanoma detection, achieving a minimum Dice score of 0.8 for lesion segmentation.
Deep Learning
TensorFlow/PyTorch
Computer Vision
Medical Imaging
View on GitHub
The agenda of this project is to apply the improved U-Net
architecture on the ISICs data set to predict the segmentation
response of the lesion image in the test data set, and the overall
minimum Dice score is 0.8.
The data set is challenged by "Analysis of Skin Lesions for Melanoma
Detection" using a data set of annotated skin lesion images from
ISIC archives. The data set contains raw (input data) and segmented
(response data) images of skin patches, which are used to detect
skin lesions. The response data includes a binary mask image in PNG
format, which indicates the position of the original skin lesion in
each input lesion image.
Key Learnings:
• Solving pattern recognition problems via deep CNN
• Deep learning frameworks: TensorFlow and PyTorch
• Algorithmic design with software engineering principles
• Contributing to PatternFlow - a pattern recognition and image processing library
• Mathematical frameworks: group theory and tensor calculus
GreenMiles - Sustainable Transportation App
React Native mobile app incentivizing public transportation through gamification, carbon footprint tracking, and social connectivity. Users earn rewards for eco-friendly commuting.
React Native
TypeScript
MySQL
Node.js
Mobile Development
View on GitHub
GreenMiles is a mobile application designed to incentivize public transportation use while fostering social connections among commuters. The app addresses urban congestion through environmental awareness and gamification. Users can track their carbon footprint through public transport usage, connect with other commuters, earn points for using public transit, and redeem rewards including gift cards and free ride vouchers.
The application was developed using React Native with Expo, TypeScript, MySQL for backend database operations, and Node.js. It demonstrates a comprehensive approach to making sustainable transportation appealing through environmental impact visualization, an incentive structure rewarding eco-friendly commuting choices, and community features fostering peer engagement around sustainability.
Key Learnings:
• Design and build significant software solutions based on design briefs
• Apply multimedia design and software development to deliver polished systems
• Overcome challenges with new designs and technologies
• Apply sound project management skills and tools
• Work successfully in multi-disciplinary teams
• Conduct user investigation, involvement and evaluation
• Apply ethical thinking to technology projects
LaserTank AI Solver - Search & Reinforcement Learning
Implemented AI solvers for LaserTank puzzle game using A* search, MDP planning, and reinforcement learning algorithms to navigate optimal paths.
AI Search
A* Algorithm
Reinforcement Learning
MDP
Python
View on GitHub
LaserTank is an open source computer puzzle game requiring logical thinking to solve a variety of levels, originally developed by Jim Kindley in 1995. In LaserTank, a player controls a tank vehicle which can move forwards, turn clockwise and counterclockwise, and shoot a laser which can be used to interact with special map elements. The game takes place in a 2D map divided into grid cells. The player must navigate from a starting position to the flag in as few moves as possible while avoiding "game over" conditions.
The project involved turning LaserTank into a search problem by defining: (1) a problem state representation (state space), (2) a successor function indicating reachable states (action space and transition function), and (3) a cost function (utility function) with uniform cost of 1 per step.
The solver program takes a testcase filename and output filename as arguments, finds an optimal solution, and writes the solution as a comma-separated list of actions: MOVE FORWARD ('f'), TURN LEFT ('l'), TURN RIGHT ('r'), and SHOOT LASER ('s').
Key Learnings:
• Uniform Cost Search and A* Search algorithms
• Value Iteration (VI) and Policy Iteration (PI)
• Q-learning and SARSA reinforcement learning techniques
CANADARM Motion Planning - Probabilistic Roadmap
Developed motion planning algorithms for ISS Canadarm2 robotic arm using Probabilistic Roadmap techniques to navigate obstacles and grapple points in 2D workspace.
Motion Planning
Probabilistic Roadmap
Robotics
Python
View on GitHub
Canadarm2 is a remote-controlled mechanical arm aboard the International Space Station (ISS). The robotic arm is used to deploy, capture and repair satellites, position astronauts, maintain equipment, and move cargo. This project implements motion planning for a simplified 2D version of the Canadarm operating in a planar workspace represented as [0, 1] x [0, 1] C R^2, populated by rectangular obstacles and grapple points which the end effectors can attach to.
Given the initial and goal configurations of the Canadarm robotic arm, as well as a map of the environment, the program finds a valid path satisfying multiple constraints: (1) primitive steps with joint movement limited to 0.001 units, (2) obstacle avoidance, (3) self-collision avoidance, (4) workspace boundaries, (5) joint angle constraints (15-165 degrees), (6) segment length bounds, and (7) collision checking at step boundaries.
Key Learnings:
• Probabilistic Roadmap (PRM) path planning
• Motion planning with multi-joint robotic arms
• Collision detection and constraint satisfaction
• Graph-based search in configuration space
RUSHB Network Protocol Suite
Built a custom network protocol implementation including server, adapter, and switch components for reliable data transmission across networks.
Computer Networks
TCP/IP
Protocol Design
Python
View on GitHub
Developed a complete network protocol suite consisting of three components: (1) RUSHBSvr - a network server capable of sending messages to clients complying with the custom protocol, (2) RUSHBAdapter - works as an adapter for one process through TCP connection, and (3) RUSHBSwitch - functions like a network router supporting both local and global operations.
The final goal for this programming project is sending and receiving data across the global network without losses and errors. Data can be anything attached to the adapter, such as netcat, RUSHBSvr, or even stdin. The implementation demonstrates understanding of Internet architecture, communication protocol design across various layers, network security threats and countermeasures, and RFC standards compliance.
Key Learnings:
• Internet architecture and component functions
• Communication protocol design principles across network layers
• Network security threats and countermeasures
• Computer networking protocol implementation based on RFC standards
• Network traffic analysis using protocol analyzer tools
• Network layers, DNS, HTTP, and file systems
FOCUS - Time Management App for Students
Designed and developed an engaging mobile application through human-centered design process to help university students manage time efficiently with task management and incentivization.
UX Design
Adobe XD
Mobile App
Human-Centered Design
View on GitHub
The team designed and developed an engaging mobile application with minimal cognitive demands for university students that promotes efficient time management by mitigating distraction and aiding task management through incentivisation. The application enables users to study in a more productive manner within the same time constraints.
The functionality of the application is split into four main categories: task management, time management, progress tracking, and incentives. The development followed a rigorous interaction design and human-centered design process completed in three cycles: (1) Contextual Inquiry, Conceptual Design, Low Fidelity Prototype (Paper prototyping) & Initial Evaluation, (2) UX enhancement with Medium Fidelity Prototype developed in Adobe XD & Rigorous Empirical Evaluation, and (3) High Fidelity Prototype (fully functional) with Expert Evaluations from other group members.
Key Learnings:
• Interaction design and human-centered design processes
• Prototyping from low to high fidelity
• User investigation, involvement, and evaluation
• UX design principles and tools (Adobe XD)
• Empirical and expert evaluation methodologies
• Designing for minimal cognitive demands
Networked Flight Simulation in C
Built a networked simulation system in C99 with three programs (aircraft, airport, mapper) communicating via TCP networking using pthreads for concurrent operations.
C Programming
Pthreads
TCP Networking
Systems Programming
View on GitHub
A complete simulation consists of three C99 programs: (1) roc2310 - simulates an aircraft, (2) control2310 - simulates an airport, and (3) mapper2310 - maps airport names to ports. Multiple instances of these programs are executed concurrently to carry out the simulation. The project extensively used pthreads for concurrent programming and communicated via IPv4 TCP networking with blocking communications.
Key Learnings:
• C programming compilation and initial features
• Process management and inter-process communication
• Virtual memory concepts
• File descriptors and pipes
• Thread programming and synchronization techniques
• Network layers and protocols
• DNS and HTTP protocols
• File systems architecture
Asteroids Game on AVR Microcontroller
Developed a classic Asteroids game on AVR ATmega324A microcontroller with LED display, seven-segment display, and serial terminal output.
Embedded Systems
AVR
C Programming
Hardware Interface
View on GitHub
The program is a simple version of the classic Asteroids game. The AVR ATmega324A microcontroller runs the program and receives input from a number of sources while outputting a display to an LED display board. Additional information is output to a serial terminal, and as part of this project implementation, a seven-segment display and other LEDs were integrated to enhance the gaming experience.
Key Learnings:
• AVR microcontroller programming
• LED matrix display control
• Hardware interfacing and I/O operations
• Serial communication protocols
• Real-time embedded systems programming
• Seven-segment display implementation
Public Transportation Network Model
Object-oriented Java program modeling a public transportation network with passengers, routes, stops, and multiple vehicle types (bus, train, ferry).
Java
OOP
Data Structures
Transportation Modeling
View on GitHub
The program models a public transportation network with a comprehensive class hierarchy. Main classes include: (1) Passenger - a standard passenger with ConcessionPassenger subclass, (2) PublicTransport - defines basic vehicle functionality with Bus, Train, and Ferry subclasses, (3) Stop - responsible for routing passengers to their destinations, and (4) Route - defines basic route functionality with BusRoute, TrainRoute, and FerryRoute subclasses.
Key Learnings:
• Object-oriented design principles
• Class hierarchy and inheritance
• Network modeling and graph structures
• Java programming best practices
• Transportation systems analysis
Student Help Queue Desktop App
Desktop application written in Python using Tkinter for managing student help queues with quick and long help options, real-time wait tracking, and statistics.
Python
Tkinter
GUI Development
Queue Management
View on GitHub
A desktop application written entirely in Python using Tkinter for GUI development. When a user presses either the "Request Quick Help" or "Request Long Help" button, the application displays a dialog box that asks the user for their name. Once entered, the application joins the user to the queue, displays their name on screen, and regularly updates the amount of time they have been waiting (roughly once every ten seconds). The "Questions Asked" heading tracks questions answered since opening the application, maintained separately for quick and long help categories.
Key Learnings:
• Python GUI development with Tkinter
• Queue data structure implementation
• Real-time UI updates and event handling
• Dialog box implementation
• Time tracking and statistics management