Jonatan Ebenholm's Portfolio

5th year student as Master of Science in Media Technology and Engineering

Scroll

/ status

Now

Working on
MSc thesis on inverse rendering for industrial inspection — at SICK IVP, Linköping.
Graduating
June 2026.
Looking for
Graphics, GPU, or rendering roles starting summer / fall 2026.
Based in
Norrköping, Sweden — open to roles across Östergötland, not relocating.
Minecraft Terrain Engine
Minecraft Terrain Engine

High-performance GPU-driven voxel terrain engine in C++20 with OpenGL 4.3+ compute shaders, indirect drawing, spline-based terrain shaping, and a multi-threaded chunking architecture.

WIP: DroneSim

Autonomous drone navigating procedurally generated terrain in C++/OpenGL — control loop steers the drone through the simulated environment in real time.

Gesture Controller
Gesture Controller

Real-time gesture recognition driving a Godot game over WebSocket — MediaPipe hand tracking, a TensorFlow/Keras CNN classifier, and an OpenCV webcam pipeline.

Pathtracer on GPU

GPU path tracer in C++/OpenGL with fragment-shader rendering for photoreal frames.

Elemental Clash
Elemental Clash

Unity 3D 1v1 RTS using ArUco cards for unit placement; built for my bachelor thesis.

Solar system simulation
Solar system simulation

Blender add-on to simulate and auto-animate solar systems with generated materials.

Papers

Research papers and writeups.

Gesture Recognition for Video Game Controllers

Jonatan Ebenholm

Compares two approaches to real-time gesture recognition for game input: a custom CNN trained on the HaGRID dataset plus self-collected images, versus a Feed Forward Neural Network operating on 21 3D hand landmarks extracted with MediaPipe. The MediaPipe + FFNN hybrid reached 100% validation accuracy with sub-second per-epoch training, outperforming the CNN on both accuracy and rotation robustness.

Simple Path Tracer with BVH Acceleration Structure

Ludwig Boge, Jonatan Ebenholm

A path tracer implemented entirely in a fragment shader (C++/OpenGL), targeting near real-time rendering of diffuse, specular, glossy, and transmissive materials. Accelerated with a CPU-built Bounding Volume Hierarchy traversed in the shader via Shader Storage Buffer Objects.

Monte Carlo Raytracer in C++

Ludwig Boge, Jonatan Ebenholm

A Monte Carlo raytracer written from scratch in C++ for the TNCG15 Advanced Global Illumination course. Solves the rendering equation via Monte Carlo estimation across Lambertian reflectors, perfect mirrors, transparent surfaces, and area light sources; benchmarks the effect of shadow ray count and sample count on render quality.

AniMatch: A Content-Based Anime Recommendation System

Berkay Orhan, Jonatan Ebenholm

A content-based recommendation system that suggests anime titles from intrinsic metadata using BERT embeddings and cosine similarity. Avoids the cold-start and privacy concerns of collaborative filtering — built around a quick "use and leave" web flow with no user accounts.

Education & Experience

SICK IVP / Linköping University logo

Master's Thesis — Inverse Rendering for Industry Inspections

Jan 2026 – Jun 2026

SICK IVP / Linköping University

Master's thesis applying inverse rendering — recovering scene geometry, materials, and lighting from images — to industrial inspection workflows.

Linköping University logo

Programming Assistant — LiTHeHack

Sep 2025 – Jun 2026

Linköping University

Paid programming assistance role under LiU's LiTHeHack initiative, supporting students with programming work.

Linköping University logo

Laboratory Assistant — Applied Transform Theory

2024

Linköping University

Lab assistant for the Applied Transform Theory course — guided students through lab sessions on Fourier analysis, Laplace transforms, and signal/system analysis.

Linköping University logo

Master's Degree in Media Technology and Engineering

2023 – Present

Linköping University

Specializing in Computer Graphics, GPU programming, video game systems programming, and machine learning / AI.

Linköping University logo

Bachelor's Degree in Media Technology

2020 – 2023

Linköping University

Foundations in programming, applied mathematics, and media technology.

Coursework

Selected highlights from my MSc program.

Computer Graphics

  • G3D Computer Graphics6 HP4
  • AModelling Project6 HP5
  • AAdvanced Global Illumination and Rendering6 HP5
  • AComputer Graphics (Advanced)6 HP4

Machine Learning & AI

  • AMachine Learning for Social Media6 HP5
  • AArtificial Intelligence — Principles and Techniques6 HP5
  • AArtificial Intelligence for Interactive Media, Project6 HPG

Automatic Control

  • GApplied Transform Theory6 HP5
  • GSignals and Systems6 HP5
  • GAutomatic Control6 HP5
  • AModelling and Simulation6 HP4

Other

  • GElectronic Publishing6 HP5
  • GCommunication and User Interfaces6 HP5
  • GCalculus II6 HP5
  • GStatistics6 HP5

About

I'm finishing an MSc in Media Technology and Engineering at Linköping University, with the focus pulled hard toward computer graphics, GPU programming, and applied machine learning. My master's thesis is hosted at SICK IVP in Linköping, where I'm working on inverse rendering for industrial inspection — recovering scene geometry and materials from imagery to support automated quality assessment.

I came at graphics through art — years of figure and gesture studies, then a media technology degree for the practicality plus the graphics angle I'd been curious about as a gamer. Code turned out to be a way to build worlds the way drawing built faces and figures. TNCG15 — Advanced Global Illumination is what made me a graphics programmer proper, and TSBK07 — Computer Graphicsthe semester after dropped me into parallel programming. I haven't really left.

Most of what I build lives on the line between graphics and systems: GPU-driven voxel engines, fragment-shader path tracers, procedurally generated worlds. I like the work that asks you to think at two levels at once — the high-level structure of what's being rendered, and the low-level mechanics of how the GPU is actually executing it. The projects above are mostly me chasing that.

After graduation, I'd love to land on a graphics or rendering team at a game studio, or industry-adjacent work in the same space as my thesis — vision, simulation, perception. A full-time research role would tempt me too, if the project is the right kind of strange.

Skills

C++
C#
Python
TypeScript
OpenGL
Three.js
Unity
Godot
Blender
TensorFlow
OpenCV
MATLAB
React
Next.js
Tailwind CSS
Git