Janis Born

I am a computer scientist developing algorithms for 3D geometry processing. My main research area is the generation of high-quality maps between discrete surfaces (with a particular focus on their topological aspects) using numerical and combinatorial optimization methods. Other interests are reconstruction and approximation using spline or subdivision surfaces, automatic shape matching, and real-time rendering and simulation.

I received my PhD from RWTH Aachen University at the Visual Computing Institute, advised by Professor Leif Kobbelt. I now work at Autodesk.

This page showcases some of my professional and personal projects.


P. Schmidt, J. Born, D. Bommes, M. Campen, L. Kobbelt
Publication at SGP 2022

TinyAD is a C++ library for automatic differentiation, targeting optimization problems where the objective can be split into a sum of small per-element terms (as is common in FEM and many geometry processing applications). It computes per-element derivatives using forward-mode differentiation and automatically assembles gradients and sparse Hessians.

This work won the best paper award at SGP 2022.

PDF Video Code Project Page

Surface Map Homology Inference

J. Born, P. Schmidt, M. Campen, L. Kobbelt
Publication at SGP 2021

We propose a new method to infer topological descriptions from (potentially low-quality) input maps. We robustly extract a purely combinatorial encoding of the given map topology, represented by a homology map (which maps classes of cycles between surfaces). Inferred homology maps may then be used to guide compatible surface decompositions for the construction of high-quality surface homeomorphisms.

This work won the best paper award at SGP 2021.

PDF Video Code Project Page

Layout Embedding via Combinatorial Optimization

J. Born, P. Schmidt, L. Kobbelt
Publication at Eurographics 2021

We present a reliable algorithm to compute embeddings from a given layout template into a target surface with prescribed layout vertex positions. Unlike previous greedy approaches, our method employs a systematic branch-and-bound search to find an optimal sequence of edge insertions that produces a short and natural embedding. Applications include chart-based parametrization, re-meshing, and the initialization of surface maps.

This work received honorable mentions for the Günter Enderle Best Paper Award at Eurographics 2021.

PDF Video Code Project Page

Inter-Surface Maps via Constant-Curvature Metrics

P. Schmidt, M. Campen, J. Born, L. Kobbelt
Publication at SIGGRAPH 2020

This work introduces a novel representation for continuous maps (homeomorphisms) between discrete surfaces: While vertex images are specified explicitly, the images of edges and faces are fully defined by geodesics within a constant-curvature metric on the target surface. This encoding facilitates continuous (e.g. distortion-minimizing) map optimization for surfaces of arbitrary topology.

Project Page

Distortion-Minimizing Injective Maps Between Surfaces

P. Schmidt, J. Born, M. Campen, L. Kobbelt
Publication at SIGGRAPH Asia 2019

Traditional parametrization methods find low-distortion maps between a surface and the plane. In this work, we represent maps between two surfaces (of disk topology) by computing their overlay in a planar intermediate domain. Instead of only computing two individual parametrizations, we jointly optimize for the end-to-end intrinsic distortion of the composed map in an injectivity-preserving way.

Project Page

Geometry Lab Exhibits

University Project 2017

For the Geometry Lab art exhibition, we created a series of small exhibits that demonstrate different optical phenomena related to reflections and projections, e.g. a cylindrical mirror anamorphosis of a 3D object (inspired by the work of Jonty Hurwitz). Together with a colleague, I wrote programs to compute the distorted shapes which were then manufactured using 3D printing.

Vanishing Points Demo

University Project 2017

An interactive demo teaching classical one-point, two-point, or three-point perspective constructions, created for the Geometry Lab art exhibition. Users can place vanishing points on the image plane or at infinity and observe how the perspective on a 3D scene changes in real-time.

Spline Surface Fitting

M.Sc. Thesis 2015

For my Master thesis, I developed methods for the approximation of 3D meshes using polynomial tensor-product patches. For a given polygon mesh with an embedded quad layout, we construct a spline surface with global G1 continuity (generalizing biquadratic uniform B-splines). The control points of this model are then optimized for a smooth and accurate reconstruction.

We developed an extension of this spline model to allow non-uniform (G1) joints also across regular patch boundaries, which improves approximation quality for control grids with uneven spacing.


Virtual Aachen

Student Assistant Project 2013—2014

During my work as a student assistant at Visual Computing Institute, I developed algorithms to generate models of 3D buildings from OpenStreetMaps data. The system handles complex buildings with different levels and arbitrary footprints and incorporates metadata (where available) like height, roof shapes, or facade and roof materials.

Project Page

VR Roller Coaster

Student Project 2013—2014

Excited to try out one of the new Oculus Rift dev kits, a friend and I developed this roller coaster simulator using a custom C++ engine and OpenGL renderer.

It comes with an editor where users can create custom tracks, which are represented by B-spline curves. The realistic motion of the roller coasters is simulated in real-time.

Video Project Page

GPU-Based 3D Fluid Simulation

Student Project 2013

An interactive fluid simulation implemented as a university project for a game programming course together with a fellow student. It is a real-time GPU implementation of the grid-based Stable Fluids approximation of the Navier-Stokes equations.

Special features are solid-fluid interactions based on GPU rasterization, and rendering with self-shadowing using volume ray casting.

Real-Time Rendering of Procedural Facades

B.Sc. Thesis and Publication at Eurographics 2013

For my B.Sc. thesis, I worked on a rendering technique that assembles building facade textures based on procedural grammars which are evaluated on-the-fly in a GLSL fragment shader. I extended this system to also allow the dynamic instantiation of detailed 3D objects on the facade, which is implemented entirely on the GPU side.

Together with my thesis advisor, we later published a paper on this technique, which was presented at Eurographics 2013.

Project Page

Space Arcade Game

Student Project 2011—2012

An arcade-style racing game developed by our institute's game programming club (roughly 10 members) in a custom-written C++ game engine. We presented the finished game at our university booth at the Gamescom trade fair in 2012.

I wrote the game's audio system, based on OpenAL and some of the gameplay code.

Project Page

Portal Game Engine

Student Project 2011

A 3D puzzle game engine developed in C++ as a group project for a university lab course. Our team of 3 students implemented a custom OpenGL renderer while other teams contributed gameplay code and level design tools.

Besides the (recursive) rendering of portals, our engine featured a deferred lighting system, particle systems, cubemap-based reflections, transparent objects with faux refractions and various screen-space effects.



My solo competition entry for the 14th Ludum Dare 48 hour game programming contest, with a very literal interpretation of the theme: "Advancing Wall of Doom".

Uses the Ruby/Gosu library with a few extensions to create full-screen post-processing effects using GLSL fragment shaders.




A user interface AddOn for World of Warcraft I developed back in 2006 using the built-in Lua scripting engine. I later re-created this AddOn for the game's re-launch in 2019, where it has been installed by more than 100,000 users.




A fast-paced jump-and-run sidescroller where the player must race through a procedurally generated cave while avoiding various perils and obstacles.

I created this game within 48 hours as part of the 5th Ludum Dare game programming competition where it won first place in the "fun" category. It uses the Ruby/Gosu library.