Jonatan Ebenholm

/ open to roles from late 2026 · Norrköping, SE

Jonatan Ebenholm

Systems and software engineer

Real-time renderers and GPU-driven engines in C++ and OpenGL. Finishing an MSc in Media Technology at Linköping University.

/ selected work

Projects

all 10 projects →

Cloud Simin progress

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

  • C++
  • OpenGL 4.6
  • compute
  • raymarching
source ↗
Minecraft Terrain Engine

Minecraft Terrain Engine

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

  • C++20
  • OpenGL 4.3
  • compute
  • indirect draw
source ↗

DroneSimon hold

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

  • C++
  • OpenGL
  • marching cubes
source ↗
Gesture Controller

Gesture Controller

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

  • Python
  • TensorFlow
  • MediaPipe
  • Godot
source ↗

Pathtracer on GPU

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

  • C++
  • GLSL
  • BVH
  • SSBO
source ↗
Solar system simulation

Solar system simulation

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

  • Python
  • Blender API
source ↗

/ master's thesis · SICK IVP × Linköping University · 2026

Research

Recovered geometry didn't beat photographs at finding scratches, but it kept working when the material changed.

Inverse Rendering for Industry Inspections: Are surface scratches easier to find in SVBRDF maps recovered by inverse rendering than in the photographs themselves?

results

407scratches, all found from near-field image input, which beat even ground-truth normal maps
≈50%higher score for normal maps when only the material's appearance changes
30 hpJan–Jun 2026, hosted by SICK IVP in Linköping

/ background

About

Jonatan Ebenholm
working on
cloud renderer · Vulkan · C++ physics engine
looking for
graphics, GPU, vision or simulation roles, late 2026
based in
Norrköping · hybrid OK
download cv ↓

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 thesis, hosted at SICK IVP, is done. One 6 HP course stands between me and the degree, so November 2026.

I came at graphics through art: years of figure and gesture studies, until code turned out to be a way to build worlds the way drawing built faces and figures. Most of what I build lives on the line between graphics and systems: GPU-driven voxel engines, fragment-shader path tracers and, lately, a volumetric cloud renderer.

The next things are further down the stack: a physics engine in C++, Vulkan after a few years of OpenGL, and .NET. I'm looking for strong engineering work in systems, graphics, vision, or simulation.

Languages

  • C++
  • C#
  • .NET
  • Python
  • TypeScript

Graphics & GPU

  • OpenGL · GLSL
  • Compute shaders
  • Vulkan (learning)
  • Three.js / WebGL

Engines & tools

  • Unity
  • Godot
  • Blender
  • CMake
  • Git

ML & vision

  • TensorFlow
  • OpenCV
  • MediaPipe
  • MATLAB

/ education & work

Experience

all coursework →
SICK IVP / Linköping University logo

Master's Thesis: Inverse Rendering for Industry Inspections

Jan 2026 – Jun 2026

SICK IVP / Linköping University

Linköping University logo

Programming Assistant, LiTHeHack

Sep 2025 – Jun 2026

Linköping University

Linköping University logo

Laboratory Assistant, Applied Transform Theory

2024

Linköping University

Linköping University logo

Master's Degree in Media Technology and Engineering

2023 – Present

Linköping University

Linköping University logo

Bachelor's Degree in Media Technology

2020 – 2023

Linköping University

/ writing

Papers

all 8 papers →

/ interactive

Demos

all 5 demos →

Procedural Terrain ↗

Cube Demo ↗

Wave Experiment ↗

/ contact

ebenholmdev@gmail.com