Hello,

I'm Ferdi Koomen, a freelance developer with more than 10 years of experience in the development & management of complex technical projects. When I’m not working for clients, you can find me learning new technologies or working on personal projects. This website showcases a selection of that non-commercial work.

  1. Experienced in a wide range of technologies (both client and server side).
  2. Comfortable with complex projects and tight deadlines.
  3. Good communication skills.

You can reach me on +31 (0)6 41 62 60 99 or info@madebyferdi.com

Mini Cooper WebGL

Mini Cooper WebGL

Jump a Mini Cooper straight through a wall of boxes with this WebGL and Physics engine demo.

Select your favorite color and drive a MINI Cooper straight through a wall of boxes. Note that this is a personal project and is not directly related to BMW / MINI.

This project started out as a research project to learn WebGL: How to export models from Blender, import them in Three.js, assign materials, create lights, etc. To make things more interesting and playful, I've added a physics engine.

This project works on both mobile and desktop devices. The mobile version automatically selects a low-quality mode, that has no antialiasing, no shadows and uses a low-poly model. The desktop version has a high-quality mode that has full antialiasing, real-time shadows and a LOD model that switches between low-poly and high-poly based on the distance to the camera.

Technical details

Capture3

Capture3

C++ research project to learn more about cameras, image processing, color spaces, OpenCV and multi‑threading.

Capture3 is a C++ desktop application that can capture and process photos through a tethered connection with a digital camera. It started out as a research project to learn more about digital cameras, image processing, color spaces, C++, OpenCV and multi‑threading.

  1. Tethered capturing: Automatically capture multiple photos with different exposure values and focus planes, without touching the camera.
  2. Automatic color calibration: This works by detecting a X‑Rite ColorChecker Digital SG target in a photo, then detecting each of the 140 colored patches and calculating a white point and color matrix from these values.
  3. Exposure merging: Merge photos with different exposure brackets to create a HDR image, using a technique called exposure fusion.
  4. Focus merging: Merge photos with different focal planes using a technique called focus stacking to create one result image with a higher DOF (Depth Of Field).
  5. Color space visualizer: Preview images in RGB, HSB, XYZ and LAB color spaces, including 3D color space graphs.

Technical details

Folume

Folume

An experimental design and printing tool, made exclusively for the Ultimaker 2 printer.

Folume is an experimental design and printing tool for the Ultimaker 2, that is made using Processing.

A while ago I wanted to learn more about 3D printing and bought a Ultimaker 2 3D printer. Like most people I started my first steps in 3D printing by printing some free 3D models using tools like Cura and Simplify3D. But in order to properly design a model from scratch, I would need to learn additional design tools like Maya or Blender.

Instead of learning a new design tool, I wanted to build something that allowed me to understand the details of 3D printing, something that could generate a simple design and send that directly to the printer without any abstraction layers or interpretation.

The result is a Processing based application that can generate a cylindrical shape design, output it as G‑code and send that to the printer via USB. Working with this G‑Code directly allowed me to learn all the settings like temperature, acceleration, feed-rate, retraction, print speed, etc.

Technical details

IOL web application

IOL web application

This application is used in African wild parks to display the real-time location of animals, people and vehicles.

The IOL web application is used in African wild parks to display the real-time location of animals, people and vehicles. This project was made in my free time to support the great work of IOL and the ShadowView Foundation.

Using the web application, park managers can quickly see the location of each tracker and get detailed information like altitude, speed, course, etc. The application also displays the route a tracker has taken. And it will notify the park manager when gates are opened and closed.

Next to the main interface, there is also a (HTML5 based) mobile app. Using the mobile app, park managers can update the information of a tracker device by scanning it using the camera on their mobile phone.

Technical details

Languages, I write

Frameworks, I love

Software & Services, I use

Clients, I've worked for

Robeco TomTom Trivident Driebit Kokoro This That + The Other AKQA De Monsters