# Software

### EikMesh

During my Ph.D. I created EikMesh, a Java library for high quality meshes.

### Roboworld

Roboworld is an educational Python package designed for students to learn basic programming concepts.

### Vadere

Vadere is an open-source framework for the simulation of microscopic pedestrian and crowd dynamics. In addition to this core domain, other systems including cars and granular flow can be introduced into the framework.

# Books

### Algorithmic Composition

I am currently writing an online book about Algorithmic Compositions.

### Comutational Thinking

I wrote an interactive introductory book for the course Computational Thinking which I use for my teaching at the Munich University of Applied Sciences.

# Animations

### Elastic Collisions

A set of randomly initialized partiles that move inside a two-dimensional box. Each particle is initialized with some mass, position, and velocity. The color of the particle indicates its speed and its size indicates its mass.

### Forest Fire Simulation

A cellular automaton to simulate and visualize forest fires. The visualization is simple but effective.

### Fourier Drawing

This animation is inspired by the work of Daniel Shiffman and his tutorial 'Drawing with Fourier Transform and Epicycles', as well as the excellent explanation of the Fourier analysis done by Grant Sanderson in the video 'But what is a Fourier series?'.

### Fractal Tree

The following sketch displays a randomly generated tree. It is generated recursively.

### Rotating Lines

Multiple lines rotate around their midpoint. The rotation creates the illusion of movement around a circle.

### Space-filling Curve

Illustration of Sierpiński's space-filling curve in two dimensions.

### Perpendicular Parallel Branching

An animation that can be categorized as pure generative art.

### Monthly Global-Mean Temperatures

A plot of the monthly global-mean temperatures.

### Discrete Voronoi Diagram

Illustration of a flooding algorithm that computes the discrete Voronoi diagram of some random points.