Projects

85 projects across computer vision, applied ML, full-stack products, developer tooling and research.

Page 2 of 8

Automated MEP QTO

Computer vision tool that automatically analyzes 2D mechanical, electrical, and plumbing (MEP) drawings to generate structural Bills of Quantities (BOQ).

PythonOpenCV

Status: Abandoned (concept only; October 2025)

Role: Personal Project / Concept

Robot Chess

An autonomous chess-playing robot system integrating computer vision, game state tracking, and robotic arm physical control.

PythonOpenCVpython-chessStockfishRaspberry PiGPIORobotics

Status: In Progress

Role: Personal / Robotics & Computer Vision

Key Features:

  • Designed computer vision algorithms using OpenCV to detect and localize chessboard grid corners and boundaries, utilizing Canny edges, Hough Line Transforms, RANSAC line fitting…
  • Implemented real-time board state tracking and move detection using the python-chess library, communicating with the Stockfish chess engine to calculate optimal moves.
  • Formulated motion planning and inverse kinematics algorithms to translate calculated chess moves into physical robotic arm waypoint coordinates.

Edge-Intelligent EV Charging Coordination (Smart Grid)

Designing a Deep Q-Network (DQN) reinforcement learning controller for edge-deployed EV charging coordination, benchmarking it head-to-head against a fixed-rule scheduler on identical grid-performance metrics under edge-hardware constraints.

PythonPyTorch (DQN)PandasNumPyScikit-LearnRaspberry Pi 4

Status: In Progress

Role: Research / Independent Study (Systems Engineering UNILAG)

Key Features:

  • Formulated state design using 35 physical/grid variables, cycle-encoding temporal features (sine/cosine) and applying Min-Max scaling.
  • Implemented action space gating to enforce user preferences as hard constraints.
  • Designed dynamic rewards (r(s,a,s')) incorporating a smooth congestion penalty and weighted grid targets (cost, utilization, peak load, variability, interruptions).

Chess Coach (LLM Skill — Proof of Concept)

An LLM-agent chess coaching skill — proof of concept for an "understanding-first" chess coach where concepts generate moves and the engine only verifies (a departure from engine-first tools like chess.com Game Review).

Pythonpython-chessStockfishMarkdown

Status: Proof of Concept (August 2026)

Role: Personal Project / Proof of Concept (AI)

Key Features:

  • Position-analysis script (analyze_position.py) computing attackers/defenders per square, pins, hanging pieces, pawn structure, king safety, open files, and knight outposts via…
  • Stockfish integration for evaluation, candidate-move verification (--line/--eval), and a full-game scan flagging eval swings and time-trouble.
  • Curated chess knowledge base (openings, middlegame, tactics, endgame, study habits) plus a personalized repertoire and game log that grow through review.

ARB Research Competition — Edge AI Predictive Maintenance

Edge-AI predictive-maintenance concept for cement grinding mills: a React monitoring console simulating sensor telemetry, alongside Python and MATLAB scripts that generate synthetic vibration and acoustic-emission data for an Equipment Health Index.

ReactViteTailwind CSSRechartsPythonNumPypandasMATLABGitHub Actions

Status: Prototype Complete (2026)

Role: Competition Entry (DCP University Engineering Challenge 2026, Track 2)

Key Features:

  • Console models three Loesche mills (raw, cement, coal) with four injectable states: normal baseline, bearing micro-spall, COPE motor decoupling, and emergency stop.
  • Rolling scope charts compare low-frequency vibration and high-frequency acoustic emission against ISO 4.5 mm/s and 85 dB thresholds.
  • Python and MATLAB simulations generate 30 days of gearbox telemetry at 5 kHz vibration and 100 kHz AE, with a defect seeded on day 15 and EHI plus class confidence written to CSV.

AI-Literature (LLM Literary Generation Toolkit)

Python toolkit implementing a research blueprint for engineering literary text with LLMs: a semantic GraphRAG retrieval layer, QLoRA fine-tuning of a base generator, and LLM-as-a-Judge evaluation across three quality dimensions.

PythonPyTorchHugging Face TransformersPEFTbitsandbytesAcceleratesentence-transformersNetworkXYAMLunittest

Status: Completed (2025)

Role: Personal Project (Research Codebase)

Key Features:

  • GraphRAG layer embeds literary chunks with Sentence Transformers, builds a NetworkX similarity graph, and persists it as GraphML for reuse across runs.
  • QLoRA fine-tuning path through Transformers, PEFT, bitsandbytes and Accelerate, configured by dataclasses with YAML overrides.
  • LLM-as-a-Judge scoring of Affective Fidelity, Understanding Potential and Instructional Fidelity, aggregated with lexical-diversity metrics.

Stories-by-LLM (Narrative Generation Research)

Research codebase comparing a top-down prescriptive narrative engine against a bottom-up emergent one, built on per-character belief tracking, a clue ledger and strict verification, with a LaTeX paper reporting a nine-chapter comparative run.

PythonLLM subagent orchestrationJSON state filesLaTeXMermaid

Status: In Progress (2026)

Role: Personal Research Project

Key Features:

  • Epistemic world state separating ground truth from per-character BeliefState, so theft and lies leave stale beliefs while only characters in the room update theirs.
  • Two pipelines: prescriptive plotter → intents → writer → event extractor, and emergent character proposals resolved by a game-master conflict resolver with an audit log.
  • Three-layer verification in strict mode: prose-to-plan alignment, epistemic consistency, and intent-to-action congruence.

Eye-Tracking Coding for Cerebral Palsy (AFRETEC MATLAB Challenge)

MATLAB tool that lets students with cerebral palsy write and run programs by looking at screen regions through an ordinary webcam, with dwell-to-select driving a symbol keyboard and a menu tree.

MATLABComputer Vision ToolboxCascadeObjectDetectorUSB webcam

Status: In Progress

Role: Competition Entry (AFRETEC UNILAG MATLAB & Simulink Challenge 2026)

Key Features:

  • Five-class nearest-neighbour gaze classifier over z-score-normalised eye crops, calibrated per user with four sub-points per region and trimmed means.
  • Adaptive recalibration adds extra rounds to any region with high internal spread or a too-close neighbour.
  • Majority vote over the last seven frames drives a 1.5 s dwell, with a fifth "rest" class rejecting transitional gaze.

Yahboom DOFBOT Robot Arm (ROS 2)

ROS 2 Humble workspace driving a Yahboom DOFBOT arm: MoveIt motion planning on a PC, servo control on a Raspberry Pi, and a YOLO detection pipeline feeding a vision-to-pick sequence.

ROS 2 HumbleMoveItPythonUltralytics YOLOv8OpenCVArUcoRaspberry Pi

Status: In Progress (2026)

Role: Personal Project (Robotics & Vision)

Key Features:

  • Six-package workspace: description, serial driver, ros2_control bridge, MoveIt config, bringup, and vision.
  • YOLOv8n detection node publishing annotated frames plus JSON detections, with class allow/block filters, area limits and an FPS cap.
  • Vision-to-pick pipeline: detections → pixel-to-base homography → IK → open, approach, descend, close, lift on the physical arm.

Naija Nutri Hub (Hacktoberfest Fork)

Fork of the Naija Nutri Hub backend — a FastAPI and MongoDB authentication service for an Azure-based Nigerian food classifier. In this copy the classifier, nutrition and location modules are empty placeholders.

PythonFastAPIMongoDBpymongopython-josepasslibAzure AI Custom VisionGitHub Actions

Status: Fork maintained (2025)

Role: Open Source Contribution (MLSA Hacktoberfest fork)

Key Features:

  • FastAPI endpoints for sign-up, login, OTP resend, and a JWT-protected /users/me route.
  • HS256 access tokens with 30-minute expiry via python-jose, and bcrypt password hashing through passlib.
  • MongoDB persistence across separate user and OTP collections via pymongo.

speak-to-docs (Speech-Enabled RAG)

Speech-enabled retrieval-augmented app: upload a document, ask by voice or text, and hear an answer grounded in the extracted text.

PythonStreamlitLangChainAzure OpenAIAzure AI Document IntelligenceAzure Speech ServicesPyPDF2python-pptx

Status: Completed (2024)

Role: Open Source Contribution (MLSA Hacktoberfest 2.0)

Key Features:

  • Streamlit chat interface with session message history; contributed the cached LLM/embedding resources so Azure OpenAI clients are constructed once per session.
  • Azure AI Document Intelligence prebuilt-read extraction over PDF, PPTX and TXT uploads.
  • Azure Speech Services used both ways: REST transcription of recorded audio and SDK synthesis with the en-NG-EzinneNeural voice.

Audio-Tokenizer-PoC (Neural Audio Codec)

Notebook proving out neural audio tokenization with SNAC at 24 kHz: speech is encoded into three hierarchical token streams and decoded back for an audible round-trip comparison.

PythonPyTorchSNACtorchaudioHugging Face datasetsJupyter

Status: Proof of Concept (2025)

Role: Proof of Concept (Audio ML)

Key Features:

  • SNAC 24 kHz codec loaded through SNAC.from_pretrained and run under inference_mode.
  • Encoding yields three hierarchical streams of 64, 128 and 256 tokens for a single utterance.
  • torchaudio resampling to 24 kHz before encoding so arbitrary input sample rates are accepted.