Moritz Falk · Stuttgart, Deutschland

Grafik- &
System­programmierer.

Ich entwickle Renderer, Werkzeuge und die Systeme dahinter. Meine Schwerpunkte sind Immediate-Mode-UIs, GPU-Rendering und eigene Engines – mit einem Fokus auf Performance und einem genauen Blick darauf, was unter der Haube passiert.

Moritz Falk
Aktuell
Mitgründer, Dihedron Software
Entwicklung von Blick Video Editor
Programmiersprachen
C / C++ · Odin · HLSL · MSL
Gesucht
Stellen in System- und Grafikprogrammierung
Freiberufliche Projekte

Ausgewählte Projekte

Berufliche & eigene Projekte

01 /

Blick Video Editor

Dihedron Software GmbH
Mitgründer · UI & Rendering

2026 — heute

Compute-ShaderSDF-RenderingmacOS / Windows

Ein schlanker Videoeditor mit einem Renderer für eine umfangreiche, interaktive Oberfläche.

In einem kleinen Team arbeite ich an den zentralen UI- und Rendering-Systemen von Blick, einem plattformübergreifenden nichtlinearen Videoeditor mit Immediate-Mode-Oberfläche.

  • Ein auf Compute-Shadern basierender, gekachelter Renderer, der vorzeichenbehaftete Distanzfelder (SDFs) auf der GPU auswertet.
  • Eine kleine Rendering-Sprache, die im Shader interpretiert wird und die Rendering-Logik auf der CPU auf ein Minimum beschränkt.
  • Rendering-Caches, die unveränderte Ergebnisse wiederverwenden. Energieeffizienz ist dabei ein Entwurfsziel.
Blick mit Medienbrowser, Videovorschau, Rendereinstellungen und einer mehrspurigen Timeline.
Blick · BedienoberflächeIn voller Größe ansehen ↗
02 /

ARC

AnyDesk
Renderer- & Plattformentwicklung

2024 — 2026

Immediate-Mode-UIRendering-CachesTeamleitung

Eine Immediate-Mode-UI-Bibliothek, entwickelt in einem vierköpfigen Team.

Mein Schwerpunkt lag auf Renderer- und Plattformcode. In den letzten vier Monaten meiner Arbeit an dem Projekt habe ich außerdem die Teamleitung übernommen.

Ein Beispiel-Renderer erkennt veränderte Bereiche mithilfe eines Hash-Grids. Stencil-Buffer und frühe Tiefen-/Stencil-Tests verhindern dann Pixel-Shader-Aufrufe in unveränderten Bereichen. So kann die Anwendung die UI erneut beschreiben, ohne unnötig Pixel neu zu berechnen.

Das Ziel ist eine Immediate-Mode-Oberfläche, die GPU-Rechenleistung und Energie besser nutzt.

ARC-Vortrag auf YouTube ansehenÖffnet einen neuen Tab
Taha Torabpour · Better Software Conference 2025Auf YouTube ansehen ↗

Eine Demo mit Fragerunde von meinem ehemaligen ARC-Teamkollegen Taha Torabpour.

03 /

Ein Spiel & seine Engine

Eigenes Projekt
Grafik- & Engine-Entwicklung

2020 — heute

Voxel-RaytracingGlobale BeleuchtungEntwicklungswerkzeuge

Eine eigene 3D-Engine, mit der ich dynamische Beleuchtung und einen malerischen Grafikstil erkunde.

Hier experimentiere ich mit Rendering-Verfahren und baue die Werkzeuge, um ihr Verhalten und ihre Performance zu verstehen.

  • Mehrere Iterationen einer voxelbasierten dynamischen globalen Beleuchtung: Mesh-Voxelisierung auf der GPU, ein cachefreundliches Beschleunigungsgitter sowie räumliches und zeitliches Denoising.
  • Stochastisches Alpha mit Interleaved Gradient Noise, um Deferred Decals und volumetrische Billboards in die Deferred-Shading-Pipeline einzubinden.
  • Ein separates Werkzeug, das mit einem MSAA-basierten Voxelisierungsverfahren volumetrische Billboard-Daten in einem eigenen Format erzeugt.
  • Eine mit microui entwickelte Oberfläche für Laufzeitmessungen, die Untersuchung von Entitäten und Debug-Ansichten.
Engine-Demo auf YouTube ansehenÖffnet einen neuen Tab
It's voxel o'clock · Engine-DemoAuf YouTube ansehen ↗

Weitere Projekte & Experimente

Projekt für Details aufklappen

2023

SynthForce 2099

Ein Pseudo-3D-Arcade-Rennspiel, entstanden mit vier Personen in einem zehntägigen Game Jam.

Unter engem Zeitdruck haben wir verschiedene Disziplinen aufeinander abgestimmt. Der Renderer erzeugt durch Skalieren und Verschieben von Sprites einen räumlichen Eindruck im Stil von Arcade-Spielen wie OutRun.

Für Platzierung und Feinabstimmung habe ich ein kleines System zur Anpassung von Werten zur Laufzeit implementiert. Es liest den Quellcode des Spiels und lädt ausgewählte Variablenwerte mithilfe einer Hashtabelle und eines Makros im laufenden Spiel neu.

Screenshot von SynthForce 2099 aus dem itch.io-Beitrag des Teams.
SynthForce 2099 · Game-Jam-Beitrag
2022–23

Dynamische diffuse globale Beleuchtung

Eine D3D11-Implementierung auf Grundlage einer Forschungsarbeit von NVIDIA.

Mein erstes größeres Projekt mit einer Grafik-API und Shadern. Durch die Implementierung wollte ich probe-basierte Beleuchtung und ihre Kompromisse verstehen, darunter die Platzierung der Probes und den Umgang mit dynamischen Objekten.

Die Implementierung funktioniert, hat aber keine Beschleunigungsstruktur und verwendet einfache, unoptimierte Shader. Sie war ein guter Ausgangspunkt für meine spätere voxelbasierte Arbeit.

Entwicklungsaufnahme · 10. Februar 2023Video öffnen ↗

Ich habe diese Arbeit auch im Discord-Kanal #showcase-projects des Handmade Network vorgestellt.

2022

Software-Rasterizer

Die Transformations- und Rasterisierungspipeline auf der CPU nachvollziehen.

Ausgehend von tinyrenderer habe ich Echtzeit-Rendering, eine bewegliche Kamera und ein einfaches Clipping-Verfahren ergänzt. Das Projekt half mir, die Abfolge der Transformationen zu verstehen, insbesondere den Clip Space und das kanonische Sichtvolumen.

Software-Rasterizer · Demo

Ich habe diese Arbeit auch im Discord-Kanal #showcase-projects des Handmade Network vorgestellt.

2022

MiniRay · CPU-Raytracer

BVH-Traversierung, Multithreading und ein schnellerer Weg von Modelldateien zu Pixeln.

Für interaktives Rendering habe ich eine Bounding Volume Hierarchy und ein Threading-Modell mit einem Producer und mehreren Consumern implementiert.

Ein eigener OBJ-Loader speichert bereits eingelesene Modelle in einem eigenen Format zwischen, damit große Dateien nicht erneut geparst werden müssen. Als Übung zum Verständnis und zur Reduzierung von Abhängigkeiten habe ich außerdem die C-Runtime entfernt.

MiniRay-Rendering einer Statue mit Schwert und Schild sowie einer spiegelnden Kugel darüber.
MiniRay · CPU-Raytracing nach Whitted

Über mich

Ich bin Programmierer in Stuttgart und Mitgründer der Dihedron Software GmbH. Meine Erfahrung verbindet Grafik- und Plattformentwicklung in kleinen Teams mit der Entwicklung eigener Engines.

Mich interessieren Aufgaben an der Schnittstelle von Systemprogrammierung, Rendering und Performance: die Arbeitslast verstehen, passende Darstellungen wählen und die Implementierung darauf abstimmen.

C / C++   Odin   HLSL   MSL

Kontakt aufnehmen.

Ich bin offen für Stellen in der Grafik- und Systemprogrammierung sowie für freiberufliche Projekte. Schreib mir gerne per E-Mail oder auf X zu einem Projekt oder einer möglichen Zusammenarbeit.