About
Hi, I’m Bauke. I build lighting control software in
Rust, fueled by
years of experience as an AV technician and a lifelong
passion for coding.
I live in the beautiful city of Groningen, where I'm
studying
ICT, majoring in Software Engineering
at Hanze.
figure 1 ⟩ Bauke in
Marieke's
office.
Projects
Over the years I've been working on tons of programming projects, but these are some of the highlights that I've been working on recently.
Zeevonk is a modular system for controlling lighting fixtures. This project is the result of a deep rabbit hole I went into, when creating Radiant. I realized I was writing the same DMX resolvers for GDTF files over and over again. Zeevonk is my way of consolidating all of my research into a hub for DMX lighting.
Radiant
(github)An experimental, node-graph based lighting control system written in Rust using GPUI. Radiant's primary mechanism for generating effects are node-graphs. A node-graph can be run on a fixture group, processing the graph (with some context) for each fixture in that group. In more recent versions of Radiant, the node system has been removed, because I want to make sure the fundamental structure of the software (think attribute processing, patches, etc.) is in place before working on actually generating dynamic effects.
mvr-gdtf
(github)MVR (My Virtual Rig) and GDTF (General Device Type Format) are open standards used to describe lighting rigs and fixtures in entertainment production. While MVR files contain scene and rig data, GDTF files define the specific characteristics and geometry of individual fixtures. Because these formats support thousands of devices across multiple manufacturers, their data structures are large and rely heavily on optional fields. This means it's non-trivial to read commonly used data like the channel count of a fixture's DMX mode. This often makes directly reading the structures verbose and difficult to manage. mvr-gdtf abstracts this complexity by providing lookup tables and high-level helper functions. The goal is to let you extract the data you actually need without navigating the deep, nested specifications of the underlying XML. Though, if you want to manually find anything defined in the description files, you can.
Smaller but still good projects
This is a collection of some cool other projects/libraries I've created.
This is a small crate for working with DMX
concepts like addresses, channels, universes and
values.
It started out as a few internal modules for
some of my other projects like
zeevonk
and
radiant. I thought I'd share it with the world as it
has been very useful for me.
An interface for talking with a Black Magic
Design Speed Editor using the HID API,
written in Rust.
This library was created because I was
missing MIDI functionality for the Speed
Editor, when experimenting with controllers
for my other project
zeevonk. I ended up writing this high-level API,
with an internal low(er)-level driver, as I
did not want to constantly manage another
thread for the event polling in each of my
small testing-purpose applications.
figure 2 ⟩ Julius
sitting next to a Speed Editor.
linkage
(github)Linkage is an experimental Robot Control System designed to make programming robots easy and accessible. It was initially created to replace the overpriced hardware for FRC competitions for off-season events, so the expensive hardware could be re-used for that year's new robot.
west
(github)
West is an experimental joke(ish) programming
language meant for me to learn how they work.
Yes this probably will suck but wait until I
make the new overhyped language (Not talking
about you Rust, I'll love you forever <3).
This is the new Bau, for those that are
familiar (you will not be familiar with
Bau.)
Education
This is a timeline of my educational background.
Currently I'm studying Software Engineering at Hanze in Groningen.
In 2024 I completed the first year of CMD. After receiving my propaedeutic diploma, I decided to move to ICT.
When Covid-19 hit, I decided to simply graduate for HAVO, because of the mediocre education during that time.