Cedric Nugteren's home
Current job:
Machine learning
software engineer
Amsterdam, NL
Year of birth:

Below you'll find a short summary of my open-source hobby projects.

DeGiro Performance Charts
04/2020 - 05/2020
DGPC is a small and simple utility that parses CSV-exports from DeGiro and creates portfolio performance charts.

View DGPC on GitHub.
A free, open-source, and privacy-friendly Dutch weather prediction app
10/2019 - today
Android, Kotlin
NLWeer is a simple open-source and privacy-friendly Dutch weather app for Android (5.0 or newer). It is free both as in free lunch and as in freedom. Weather information is provided by KNMI or optionally by Buienradar, see the about screen in the app for more information.

View NLWeer on GitHub.
An Audiosurf/guitar-hero like game for the Atari ST
08/2019 - 10/2019
Atari ST, C89, TOS
Midisurf is an Audiosurf/GuitarHero-like game based on Midi files. It is created in 2019 for the 1985 Atari ST computer, and is written in C. At the start of the game, a Midi file from disk has to be selected. This Midi file is being played on the Atari ST YT sound-chip, while the player(s) of the game have to press keys on the keyboard at the right time to 'play along' the Midi track.

Below you'll find an Atari ST emulator with the game loaded in the A: floppy drive. Unfortunately, audio does not work (exactly what the game is about!), so to really see what it looks like, you'll have install it in a proper emulator.

The above Javascript app runs the pce-js Atari ST emulator. If the mouse doesn't position correctly, go to one of the corners you can reach, move out and then slowly move into the emulator's screen to match the two cursors.

View Midisurf on GitHub.
A Python/ffmpeg-based popquiz creator
08/2018 - 10/2019
Python, FFMPEG
PyPopQuiz is a python package to generate popquiz-videos (questions and answers) based simple JSON files with descriptions of the quiz-questions. Such a JSON description could for example contain a song's title and answer which need to be guessed, along with a YouTube-link and two time-intervals defined for the audio and/or video question and answer. It includes features such as only audio, only video, combined audio and video, local files, YouTube links, reversed audio, text overlays, missing words rounds, and so on.

View PyPopQuiz on GitHub.
The tuned OpenCL BLAS library
05/2015 - today
C++11, OpenCL
CLBlast is a modern, lightweight, performant and tunable OpenCL BLAS library written in C++11. It is designed to leverage the full performance potential of a wide variety of OpenCL devices from different vendors, including desktop and laptop GPUs, embedded GPUs, and other accelerators. CLBlast implements BLAS routines: basic linear algebra subprograms operating on vectors and matrices.

More information on the project page of CLBlast.

View CLBlast on GitHub.
A portable CUDA/OpenCL high-level API
08/2015 - 10/2017
C++11, OpenCL, CUDA
CLCudaAPI provides a C++ interface to the OpenCL API and/or CUDA API. This interface is high-level: all the details of setting up an OpenCL platform and device are handled automatically, as well as for example OpenCL and CUDA memory management. A similar high-level API is also provided by Khronos's cl.hpp, so why would someone use CLCudaAPI instead? The main reason is portability: CLCudaAPI provides two header files which both implement the exact same API, but with a different back-end. This allows porting between OpenCL and CUDA by simply changing the header file!

View CLCudaAPI on GitHub.
Automatic OpenCL kernel tuning
01/2015 - 06/2017
C++11, OpenCL
CLTune is a C++ library which can be used to automatically tune your OpenCL kernels. The only thing you'll need to provide is a tuneable kernel and a list of allowed parameters and values.

For example, if you would perform loop unrolling or local memory tiling through a pre-processor define, just remove the define from your kernel code, pass the kernel to CLTune and tell it what the name of your parameter(s) are and what values you want to try. CLTune will take care of the rest: it will iterate over all possible permutations, test them, and report the best combination.

View CLTune on GitHub.