BSc Diploma Thesis · University of Maribor, FERI

A digital twin of a runner, built from real Strava data. Eight university courses, one athlete, rebuilt in software: pull the runs, give them their own language, teach a machine to read them, put them on a map, and turn them into a game.

Explore the project
Disciplines
08
Technologies
08
Digital Twin
01
01 The concept

One runner,
mirrored in code.

A digital twin is a living software copy of something real. Virtual Runner is that for a person who runs: every run pulled from Strava, then rebuilt as a system you can watch, query, race against and play.

It was never one program. The thesis stitches eight separate courses from my degree into a single athlete, each course contributing the part it taught me to build.

  • React
  • Node.js
  • MongoDB
  • Kotlin
  • Android
  • Java
  • Python
  • C++
Captured run, replayed by the twin
02 How it fits together

From a Strava run
to a playable twin.

  1. CollectStrava + phone sensors
  2. DescribeCustom route language
  3. UnderstandNeural networks
  4. ShowReact web platform
  5. PlaylibGDX game

Under it all System administration keeps the stack alive: CI/CD, deployment and scripting.

Parallel track A standalone distributed-computing study: a blockchain validated with MPI, exploring how runner records could be stored tamper-proof across nodes.

03 The accredited curriculum

Eight disciplines.

Each card is a real FERI course, and the exact piece of Virtual Runner it made possible.

61U018

Spletno programiranje

Web Programming

The hub of the twin. A full-stack platform that visualizes your Strava runs, replays them on an interactive map and ties every other component together.

  • React
  • Node.js
  • Express
  • MongoDB
  • REST
  • PWA
61U166

Principi programskih jezikov

Principles of Programming Languages

Where data enters the twin. A Kotlin app that pulls your runs straight from the Strava API, built to put competing language paradigms and type systems into practice.

  • Kotlin
  • Jetpack Compose
  • Strava API
  • Type systems
  • OOP
  • Functional
61U174

Platformno odvisen razvoj aplikacij

Platform-Based Development

A mobile app that captures live movement straight from the phone's sensors. GPS, accelerometer and compass become a raw signal the twin can record on its own.

  • Android
  • Kotlin
  • GPS
  • Accelerometer
  • SQLite
  • MVP
61U021

Prevajanje programskih jezikov

Compiler Construction

A small language with its own lexer, parser and interpreter for describing running routes and drawing them as GeoJSON on a map.

  • Lexer
  • Regex / FSA
  • LL / LR parsing
  • Attribute grammars
  • Interpreter
  • GeoJSON
61U173

Paralelno in porazdeljeno računanje

Parallel & Distributed Computing

A standalone study in distributed trust: a blockchain validated with MPI across nodes, a proof of how runner records could live tamper-proof with no single point of failure.

  • MPI
  • OpenMP
  • Blockchain
  • C++
  • Amdahl's law
61U037

Uvod v računalniški vid in razpoznavanje vzorcev

Computer Vision & Pattern Recognition

Neural networks trained on run metrics, pace, heart rate and cadence, to recognize running form, fatigue and performance trends.

  • Neural nets
  • MLP
  • Pattern recognition
  • Classification
  • Feature extraction
61U172

Razvoj računalniških iger

Game Development

A libGDX mobile game that turns real runs into multiplayer play: race your friends, and your own digital twin, across the routes you have logged.

  • libGDX
  • Java
  • Game loop
  • 2D
  • Multiplayer
  • Input handling
61U023

Sistemska administracija

System Administration

The plumbing. CI/CD pipelines, deployment, Bash scripting and security keeping all the moving pieces shipping and online.

  • Bash
  • CI/CD
  • Linux
  • Networking
  • Cryptography
  • Deploy

One thesis, eight worlds

Eight courses,
compiled into a runner.

Back to the portfolio