Bauke Westendorp

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.

Portrait of Bauke Westendorp 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

(github, crates.io)
Rust Lighting DMX MVR/GDTF

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)
Rust Lighting

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)
Rust MVR/GDTF

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.

theymx

(github, crates.io)
Rust

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.

bmdse

(github, crates.io)
Rust HID

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.

Julius sitting next to a Speed Editor figure 2 ⟩ Julius sitting next to a Speed Editor.

linkage

(github)
Rust Svelte FRC

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)
Rust Language Joke(ish)

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.

present - 2024
ICT (major Software Engineering) @ Hanze

Currently I'm studying Software Engineering at Hanze in Groningen.

2024
Propedeuse Communicatie & Multimedia Design @ Hanze

In 2024 I completed the first year of CMD. After receiving my propaedeutic diploma, I decided to move to ICT.

2022
HAVO Diploma

When Covid-19 hit, I decided to simply graduate for HAVO, because of the mediocre education during that time.

2020 - 2015
VWO 1 - 5
puk

this site is a part of the
dwangschematiek webring

ma3ke