Jonatan Ebenholm's Portfolio

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

/ status

Now

Working on
MSc thesis on inverse rendering for industrial inspection, at SICK IVP in Linköping.
Graduating
June 2026.
Looking for
Software or systems engineering roles starting summer / fall 2026. C++, C#, Python. Especially keen on graphics, GPU, computer vision, or simulation work.
Based in
Norrköping, Sweden. Open to roles across Östergötland, not relocating.
WIP: Cloud Sim

Real-time volumetric clouds in C++ and OpenGL, raymarched from a compute-built 3D texture.

Minecraft Terrain Engine
Minecraft Terrain Engine

GPU-driven voxel terrain in C++20. Compute shaders build it, indirect draws render it.

WIP: DroneSim

Autonomous drone flying through procedural terrain, meshed on the fly with marching cubes.

Gesture Controller
Gesture Controller

Hand gestures drive a Godot game over WebSocket, via MediaPipe and a Keras CNN.

Pathtracer on GPU

Path tracer running entirely in a fragment shader, accelerated by a CPU-built BVH.

Solar system simulation
Solar system simulation

Blender add-on that simulates a solar system and animates it with generated materials.

Papers

Research papers and writeups.

Gesture Recognition for Video Game Controllers

Jonatan Ebenholm

Compares a CNN trained on HaGRID against a feed-forward network fed 21 hand landmarks from MediaPipe. The landmark version reached 100% validation accuracy, trained in under a second per epoch, and held up far better under rotation.

Simple Path Tracer with BVH Acceleration Structure

Ludwig Boge, Jonatan Ebenholm

A path tracer written entirely in a fragment shader, handling diffuse, specular, glossy and transmissive materials at near real-time rates. The BVH is built on the CPU and traversed in the shader through SSBOs.

Monte Carlo Raytracer in C++

Ludwig Boge, Jonatan Ebenholm

A Monte Carlo raytracer built from scratch in C++ for TNCG15. Solves the rendering equation across Lambertian, mirror and transparent surfaces lit by area lights, and benchmarks how shadow ray and sample counts affect quality.

AniMatch: A Content-Based Anime Recommendation System

Berkay Orhan, Jonatan Ebenholm

A content-based anime recommender using BERT embeddings and cosine similarity over title metadata. No accounts and no collaborative filtering, which sidesteps both cold-start and privacy problems.

Demos

Interactive 3D experiments.

Procedural Terrain

Multi-octave simplex terrain with elevation biomes, water specular and distance fog. Drag to spin.

Spinning Cube

The minimal template every other demo is built from.

Cube Demo

Five thousand cubes in a single instanced draw call. Hover one to pick it out.

Wave Experiment

A quarter of a million points rolling on a wave, animated entirely in a vertex shader.

Particle Wall

Ten thousand points on a grid, pushed around by the cursor in a vertex shader.

Hole Demo

Clipping planes cut a crater that follows your cursor, with balls rolling into it.

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

Recovering scene geometry, materials and lighting from images, and applying that 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 their programming work.

Linköping University logo

Laboratory Assistant, Applied Transform Theory

2024

Linköping University

Guided students through lab sessions on Fourier analysis, Laplace transforms, and signal and 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.

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'm looking for strong engineering work in systems, graphics, vision, or simulation. Graphics and GPU work is where I'm strongest, and industry-adjacent work in the same space as my thesis (vision, simulation, perception) is just as compelling. 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