top of page
ChatGPT Image Jul 4, 2026, 04_40_23 PM.png

Organisations face several problems.

Automation and artificial intelligence has been seen by many to provide the solution.

github.png

Understanding human movement through parkour and artificial intelligence
 

Using Machine Learning Techniques to identify client skill level. 

Python, Pandas, itertools, pickel, os, numpy, cv2, Sqlite3, Docker, Influxdb, Arduino/ESP32, C++, Rokoko Studio
 

🚀 AI-Based Skill Assessment & Adaptive Training System

Overview

Designed and built an end-to-end system that captures real-world sensor data, processes it, and uses a custom-built neural network to assess user skill level and adapt training accordingly.

Problem

Traditional training systems apply a one-size-fits-all approach, failing to adapt to individual ability. This project explores how real-time data and machine learning can be used to automatically assess skill level and personalise training.

System Architecture

ChatGPT Image Jun 25, 2026, 10_37_41 PM.png

  • Myo Data Capture:
    Built a hardware-based data collection system using myo sensors and microcontrollers. Initially developed with Arduino, then transitioned to ESP32 for improved reliability and scalability.Implemented firmware in C++ after identifying limitations in Python-based approaches (PyFirmata). 

ChatGPT Image Jul 4, 2026, 03_46_14 PM.png

  • Movement Data Capture:
    Collected high-frequency full-body motion data using a 9-DOF motion capture suit operating at 200 FPS. Captured orientation, acceleration, rotation, and elevation data in real-world training environments, producing structured time-series datasets used to train machine learning models for movement classification, skill assessment, and adaptive training.

  • Data Pipeline & Storage:
    Streamed continuous sensor data into a time-series database (InfluxDB) deployed via Docker.
    Developed Python scripts to ingest, segment, and prepare data for training and testing workflows.

  • Machine Learning Engine:
    Implemented a neural network from scratch in Python (NumPy) without relying on high-level libraries (e.g. TensorFlow). Built models from base physics principles providing greater controle over the model.  
    Adapted learning algorithms to work with structured CSV data rather than standard image datasets.
    Applied object-oriented design to support training, testing, and prediction pipelines

.

Key Technical Decisions

  • Switched from Arduino → ESP32 to improve hardware robustness

  • Moved from SQL → InfluxDB to support continuous time-series data

  • Built neural network from first principles to gain full control over model behaviour

  • Used NumPy for vectorised computation to optimise performance

Outcome

  • Functional end-to-end pipeline: sensor → database → model → prediction

  • Successfully processed and structured real-world data for machine learning use

  • Developed a flexible system capable of adapting training based on user performance

What This Demonstrates

  • End-to-end system design (hardware + data + ML)

  • Ability to learn and apply new technologies (C++, embedded systems, time-series DBs)

  • Strong understanding of machine learning fundamentals

  • Engineering decision-making and problem-solving under constraints

Future Work

  • Deploy model in real-time for live feedback

  • Expand dataset and improve model accuracy

  • Integrate into a user-facing application

  • Explore reinforcement learning for dynamic training adaptation

bottom of page