Maximilian Köhlenbeck

Automation Engineering student building AI and robotics systems.

Interested in reinforcement learning, physical AI and systems that interact with the real world.

Bremen · Work-study program at KUKA and Hochschule Bremen

CartPolePPO

Loading simulation…

Fig. 1: I trained this policy myself with PPO. It is running live in your browser. Give the pole a nudge.

About me

Bremen

Since October 2024 I've been studying Automation Engineering in a dual work-study program. I learn the theory at Hochschule Bremen and spend my practical phases at KUKA.

AI-assisted engineering

I use coding agents like Claude Code and Codex heavily for implementation. I focus on the engineering around it: requirements, system design and architecture, experiments, debugging, integration, and validating whether the system actually works.

Now

Training AI instead of just using it

I'm teaching myself how to train models. I started with reinforcement learning: first an agent that balances a pole on a cart (the pendulum at the top of this page), then a double pendulum. Next up is NVIDIA Isaac Lab. The question on my mind: how do you teach a model something so it also works in situations it has never seen?

Improving a 3D printer, together with KUKA

I'm optimizing a 3D printer and built a nozzle offset calibration into it myself. The project is ongoing.

Projects

Wächter

An assistant that sees through a camera, listens and talks back. Everything runs offline on my laptop, no GPU, no cloud. Motion detection only wakes the person detector when something actually happens. Speech recognition only gets segments where someone is really talking, because Whisper invents sentences when it hears silence. The goal: it starts speaking in under three seconds.

Architecture

Vision

  1. Camera
  2. Motion detection
  3. Person detection

Voice

  1. Microphone
  2. Speech segments only
  3. faster-whisper
  4. Local language model
  5. Piper TTS
Measurements: Wächter
Time to first spoken word~2.6 s (target < 3 s)
Person detection17.3 ms per frame (58 fps)
Language model17–19 tokens/s
HardwareIntel i7-13700H, 32 GB RAM, no dedicated GPU

Python · faster-whisper · Piper TTS · local language model · ONNX / DirectML

Baulify

Started at the Smart Region Hackathon Offenburg. A platform where utilities, municipalities and contractors coordinate roadworks. It shows conflicts before the same street gets dug up twice. After the hackathon I kept building: an AI reads requests from PDFs or free text and pre-fills the form, approvals work through a link without an account, plus a map and a landing page.

Architecture

Requests

  1. PDF or free text
  2. LLM via OpenRouter
  3. Pre-filled form

Next.js · TypeScript · PostgreSQL · Drizzle · MapLibre · LLM via OpenRouter

Tarp editor

How do you mount a tarp so it doesn't wrinkle? In the editor you draw the shape, place mounting points and start the simulation. The tarp becomes a spring-mass mesh, wrinkles show up as lines and are measured with a wrinkle index. An assistant then suggests mounting point positions that make the tarp lie flatter.

Architecture
  1. Draw shape
  2. Place mounting points
  3. Spring-mass mesh
  4. Wrinkle index
  5. Suggested mounting points

JavaScript · Canvas · spring-mass simulation · a single HTML file

3D printer: nozzle offset calibration

I know my way around 3D printing and I'm currently optimizing a printer together with KUKA. For that I built a nozzle offset calibration myself.

3D printing · calibration

My Wispr Flow clone

The tool I use most out of everything on this page. Press a hotkey, talk, press again, and the text appears wherever the cursor is. In Word, in the browser, in the code editor. Modeled after Wispr Flow, except everything runs locally, costs nothing and sends nothing to the internet.

Architecture
  1. Hotkey
  2. Voice recording
  3. faster-whisper (small, int8, CPU)
  4. Text at cursor

Python · faster-whisper (small, int8, CPU) · Windows

AI automations with n8n

Three automations for small businesses. Extract invoices from PDFs and check that the line items actually add up to the total. Sort incoming emails and prepare replies as drafts, never send them automatically. Track prices and stock in online shops that have no API. When the AI isn't sure, a human decides.

Architecture

Invoices

  1. PDF invoice
  2. LLM extraction
  3. Line items vs. total
  4. Human decides when unsure

n8n · LLM via HTTP · Google Sheets · Airtable · Slack · Gmail

Wächter: an offline voice-and-vision assistant for my front door

A fully local voice-and-vision assistant running on an ordinary laptop, with a focus on perception, conversational latency, benchmarking and the engineering failures behind a sub-3-second response target.

Python · YOLO11n · onnxruntime-directml · llama.cpp · Gemma 3 4B · faster-whisper · Silero VAD · Piper TTS · FastAPI

Hackathons

May 2026

Smart Region Hackathon Offenburg

This is where Baulify started.

Tools & technologies

Grouped by how I've actually used them.

Reinforcement learning & simulation
Gymnasium, Stable-Baselines3 (PPO), spring-mass simulation, NVIDIA Isaac Lab (just getting started)
Local AI & speech
faster-whisper, Piper TTS, Ollama, ONNX / DirectML, LLMs via OpenRouter
Software & web
Python, TypeScript, JavaScript, Next.js, Astro, PostgreSQL, Drizzle, MapLibre
Automation & tooling
n8n, Claude Code, Codex, Git
Hardware
3D printing
Languages
German (native), English (C1)

Contact

Running a hackathon, building something with robots or just want to talk? Message me on LinkedIn or send an email.