Jan Appel

Portfolio & Curriculum Vitae

Download this CV as a lightweight PDF

Full Name
Birth Date
Occupation
Nationality
Jan Niklas Appel
05.12.1997
Student
Swiss and German
Address


Email
Mobile
Bernerstrasse 14
5400 Baden
Switzerland
jan.appel@outlook.com
+41 79 122 72 25

Skills

Programming & scripting languages
I am very experienced with languages like C#, Java, Python and JavaScript and have a good understanding of HTML/XML, CSS/SCSS, PHP, GDScript, SQL (MySQL) and LaTeX and Typst. From my studies, I also have some experience with C, C++, x86 Assembly, Haskell and OCaml.

Development tools
Working with Visual Studio Code and Eclipse for years gave me extensive experience with these IDEs. Due to hosting visuation.ch as a Docker-based Express.js application on a DigitalOcean Ubuntu instance, I have some experience with container usage and web hosting, especially with Node.js. Additionally, I use a Debian-based Linux operating system daily. In the past, I used XAMPP, phpMyAdmin and MediaWiki extensively. I also have a good understanding of Git and RegEx.

Frameworks, libraries and engines
Over the years, I gained lots of experience with LWJGL (OpenGL) and Unity and Godot (GDScript) while developing games as well as Unreal Engine during our virtual production project, the Arduino platform while developing electronics and the Bulma CSS framework and Svelte/SvelteKit during the creation of my websites. As for networking, I heavily used KryoNet, FishNet and sometimes Mirror. While developing several small Android apps, I worked a lot with Android Studio, mostly using the Flutter library.

Other tools
I am very experienced with Adobe Photoshop, Affinity Photo, Designer and Publisher, as well as with Blender. I also have extensive experience with Adobe After Effects and InDesign, Davinci Resolve, the Microsoft Office and LibreOffice suites, Notion and QGIS. Lately, I have been experimenting with ComfyUI and the Automatic1111 Stable Diffusion WebUI.

Languages
My native languages are High German and Swiss German. I am fluent in English with an EF C2 proficiency, which I received after being an exchange student in Dublin, and I know approximately B2-level French from school.

Soft Skills
I enjoy working with a team as well as alone. I am open to ideas and able to approach problems and conflicts reasonably and rationally. I like to do tasks well and give strong attention to functional detail and aesthetic. Throughout all my projects, I have learned how to maintain clean, structured and modular code. Directing several short films with 35 people or more involved gave me some organisational and leadership experience.

Curriculum Vitae

1997

Birth

2004 - 2009

Primar­schule Meier­hof, Baden

2009 - 2013

Bezirks­schule Baden

2013

Beginnings of programming

I started by writing some Visual Basic programs and got more into Java while writing several Bukkit server plugins including Block-Labyrinth, Mine­craft Shoot­Mania and Survival World.

2013 - 2017

Kantons­schule Baden

My focus subject (Akzent­fach) was Natural Sciences and Mathematics and I chose Visual Arts as my special subject (Schwer­punkt­fach) and Computer Science as my complementary subject (Ergänzungs­fach).

2014 - 2017

Custom Game Engine & Mine­craft Clones

Over the years, I did lots of experiments with Minecraft-like voxel engines and developed my own Java game engine based on LWJGL 2 (OpenGL) along the way. Everything you see below, up until I really started using Unity in around 2017, was made using this custom engine. It supports the rendering and manipulation of vertex buffer objects, provides utilities for loading Wavefront .obj files, supports the runtime compilation of OpenGL Shading Language .glsl files and rendering to a frame buffer object (virtual texture) and thereby all sorts of shading techniques and post-processing effects like physically based rendering, blur and bloom. As for physics, it supports AABB as well as 2D convex collider collision through an implementation of the separating axis theorem.
Using this engine, I also made some other simple games like Color Tanks (inspired by Wii Play) or a TRON-like game, as seen on the last two slides.

2016

Final Project: Traffic Simulation

This project was done together with Lukas Lötscher as our final project (Matura­arbeit) at Kantons­schule Baden.
Its purpose was to study traffic throughput on the Schul­haus­platz intersection in Baden before and after a huge reconstruction. We wanted to find out whether it was going to help with traffic jams and if so, by how much. After presenting our findings, we found that they coincided very well with official internal results by Departement Bau, Verkehr und Umwelt des Kantons Aargau.
The entire simulation was made in Java using only LWJGL 2, my custom engine and our own code.
As one of the best final projects (Maturaarbeiten) in canton Aargau, we received an award for "Hervor­ragende Matura­arbeit" and were invited to the Pro Argovia 2017 presentation. This way, Schweizer Jugend Forscht learned about our work, invited us to present it and later show it at their exhibition.

Newspaper article in the Aargauer Zeitung

2016

Der Krieg – Nach einem Gedicht von Georg Heym

This short film was originally intended as a small homework project for our German class but after speaking to the teacher, we decided to step it up. The story is derived from a poem called Der Krieg by Georg Heym, which addresses war and the contrast between belligerent enthusiasm and its disillusioning consequences.
This is the biggest film we have produced yet, with 35 people or more involved and being shown on the big screen at Kino Orient.

2017 - 2022

ETH Zürich

I enrolled in the Bachelor of Science ETH in Informatik programme at ETH but only managed to gain 168/180 ECTS due to one failed subject. My passed subjects include:

  • Introduction to Programming
  • Algorithms and Data Structures
  • Calculus I
  • Parallel Programming
  • Algorithms and Probability
  • Computer Networks
  • Data Modelling and Databases
  • Calculus II
  • Systems Programming and Computer Architecture
  • Theoretical Computer Science
  • Formal Methods and Functional Programming
  • Compiler Design
  • Computer Systems
  • Introduction to Machine Learning
  • Visual Computing
  • Information Security
  • Human Computer Interaction
  • Dependency Structures and Lexicalized Grammars
  • Human Factors I
  • Energy, Resources, Environment: Risks and Prospects
  • Introduction to Negotiation
  • Economics of Sustainabile Development
  • Bachelor Thesis

2019

Student Project House: Project Gaia

Together with Fabian Hess and Erik Sulimma, I participated in the Unbox Your Idea programme at the Student Project House at ETH Zürich.
Our project was about designing and prototyping a frame-like plant pot for growing herbs and other small plants to be hung up on a wall. We used a combination of tanks, servo motors, LED lights and other electronics, all powered by an Arduino UNO, to periodically automatically water the plants in the three available pots and efficiently provide them with light.
When presenting our work, we managed to win the Zühlke Award 2019.

2021

Cave Generation Algorithm

This is a Unity prototype of a mine/cave exploration game. Its core is a generation algorithm that not only works on a 2D plane but also in 3D. It uses an SQLite database to store all cave tiles and their attachment points (entries/exits). The algorithm randomly selects a fitting tile from the database that matches the type of attachment point. It also makes sure that no two tiles overlap and that there are no open ends or cut off attachment points, resulting in a variety of interesting cave systems.

2021

Stock Portfolio & Cryptocurrency Price Prediction

The stock/crypto portfolio on the first slide is a web application that uses PHP and an SQL database for the back-end and the Bulma framework and Chart.js library for a fancy front-end. For the back-end price requests, it uses Yahoo Finance for stock prices and CoinGecko for cryptocurrency prices. The application is designed in a way that it can calculate holdings, wins and losses based on just transaction data very effectively without using cached data so it is able to reconstruct states at any point in time.
As for the cryptocurrency price prediction, I trained a Tensorflow neural network on a large dataset of daily Bitcoin prices over 10 years. I pre-processed this data by adding another data point: BUY, HOLD or SELL, depending on the relative price difference to one week later. This alone gave me a model prediction accuracy of around 55 to 60 percent. I then did a sentiment analysis of Elon Musk's tweets and added the scores as extra data points for even better accuracy.

2021

Pattern Recognition Prototype

As with the price prediction above, the Introduction to Machine Learning course at ETH Zürich inspired me to use what I learned in a real application, just in the form of a game. The idea was to build a tower-defense-like game but with a twist: Unlike most tower defense games, the player can't only build turrets and watch them fight off the attackers but it is possible to manually cast spells to help the turrets with large waves of enemies.
The way this (rather crude) Unity prototype is done is by rendering the drawn shape or pattern to a low-resolution virtual texture, applying some tricks to deal with the low touchscreen sample rate, and feeding this into a Tensorflow neural network that I previously trained on images produced using this exact method.

2022

Bachelor Thesis: Measuring Tracking Performance of Augmented Reality Algorithms

As my Bachelor thesis at ETH Zürich, I helped my supervisors Henry Raymond and Börge Scheel develop Behind the Art, an augmented reality application for the Liechtenstein Princely Collections. I developed a method to measure, analyse and compare commercially available augmented reality algorithms on factors such as tracking accuracy, precision, performance and stability. Finally, I demonstrated the validity of the system using the popular AR frameworks Vuforia and AR Foundation. The work was awarded the highest grade without graduation.

2022

Legionärspfad Vindonissa

For the first month of my civil service, I worked for Museum Aargau at the Legionärs­pfad Vindo­nissa in Win­disch as technical support. My task was to take care of the exhibition's points of interest and keep the technical equipment running.

2022 - 2023

Meteo­Swiss

For the following five months of my civil service, I worked for MeteoSwiss at Zürich Airport on the numerical weather prediction. Specifically, I helped with the transition from the old COSMO forecasting system to the new ICON system. This involved revising and converting previous procedures alongside the integration of completely new functionality. Following my civil service, I was invited to work as an intern for another three and a half months, for a total of eight and a half months.

Please contact me for letters of recommendation.

2022 - Today

Virtual Production

In the summer of 2022, I got together with my friends Colin Schmid and Timon Oberholzer to explore the possibilities of virtual production. Over the months, our team grew to include Elia Meierhofer, Hermann Eichhorn and Benjamin Brunner, and under the name of Aetherlab, we developed a workflow that allows us to extremely efficiently plan, shoot and post-process scenes with real or virtual subjects in photorealistic environments, completely in real-time. My main tasks were to supervise the technical aspects of the project, including the environment creation during pre-production, the operation of the tracking system and Unreal Engine during production, as well as the rendering pipeline and visual effects in post-production.

After some test shoots, we finally worked on a trailer-like short film called Die Legende vom Wolf des Südens that showcases the possibilities of virtual production and the workflow we developed. It was released on the 27th of July, 2023.

Website of our studio Aetherlab

2023 - 2024

ZHAW

Since I was only able to gain 168/180 ECTS at ETH Zürich due to one failed subject, I completed my Bachelor degree in Computer Science at the Zürcher Hoch­schule für Angewandte Wissen­schaften and graduated with a Bachelor of Science ZHAW in Informatik. My passed subjects include:

  • Artificial Intelligence 1
  • Bionics
  • Digital Health
  • Energiewirtschaft und Versorgungssicherheit
  • Information Engineering 1
  • Serverless and Cloud Application Development
  • Visual Computing 1
  • Project Thesis: Computer Science
  • Advanced Software Engineering 2
  • Artificial Intelligence 2
  • Multicore and Parallel Computing
  • Visual Computing 2
  • Zukunft Rohstoffe
  • Bachelor Thesis: Computer Science

2024

Bachelor Thesis: XCrowd: Real-Time Dynamic Crowd Movement Simulation on Graph Networks

After working with my supervisor Dr. Andreas Weiler on a crowd simulation software as my 5th semester project at the ZHAW Zürich University of Applied Sciences, I was asked to continue the work in my Bachelor Thesis. The purpose of the software is to connect theoretical crowd movement optimisation and real-world operations. I presented a vision paper at the Big Mobility Data Analytics conference at Paestum, Italy and the final research paper was published at the RWTH Aachen University. The work was presented in the Engineers 2024 magazine and awarded the highest grade.

2024

Stadtforstamt Baden

For the last six months of my civil service, namely the Long Service, I am working for the Stadtforstamt Baden. We are responsible for a wide range of tasks, such as dry and wet location maintenance, neophyte control and other nature conservation activities, as well as timber production.

Today

Extracurricular activities

Organisations
I lead and organise the Visuation association and do technical supervision at the Aetherlab association and am involved in projects of all sorts, such as short film productions or our TCG development. I was part of Jungwacht Baden from 2005 to 2009 and still like helping out in the camp kitchen or as a bogeyman on St. Nicholas day.

Instruments
From 2004 to 2016, I took piano classes and like to experiment with Ableton Live every now and then.

Theater & Film
In 2016 and 2017, I played in Die Blaue Lunte and in 2017, I played in Aristophanes: Lysistrata and Laura de Weck: Kleine Dialoge after having helped backstage with lighting etc. for two years. Every few months, me and a few friends try to shoot a short film just for fun.

Other Hobbies
I enjoy taking photos, making short films, drawing, gaming, playing pen and paper RPGs and LARP with my friends as well as writing.