Latent Systems.

The surface, seen from below.
Signals, before they arrive.
Intentions, drafted into form.

Firmware, drivers, and distributed systems that connect physical hardware — motors, cameras, sensors, microcontrollers — to networks, machine learning models, and the software that has to control them reliably.
Currently designing within the Innovation Lab at Société des Arts Technologiques.

Most of what's here starts as an artistic or creative intention — a gesture, an installation, an instrument — that needs a system underneath it to actually exist. The engineering is in service of that: understanding a specific situation closely enough to know what it really requires. These projects are built to work in the conditions they're actually meant for — in a gallery, on a stage, outdoors, unattended overnight. That means understanding the specific conditions a piece has to live in before deciding how to build it.

Skills

Languages & build tooling

C++CPython BashCMakePlatformIO

Embedded platforms

ESP32-S3/C3Teensy 4.1 Raspberry Pi 4/5Arduino FreeRTOS

Protocols & networking

OSCBLE advertising WiFi STA/APUDP SLIP serialmDNSEthernet/PoE

Linux & systems

udevV4L2kernel modules GStreamersystemd distributed orchestration

ML & edge AI

PyTorchVLM inference LoRA fine-tuningMediaPipe RAVE / nn~TF-IDF

Tooling & practices

GitGitHub Actions CI Doxygen / mdBookSyncthing EEPROM persistence
Real-time embedded control

Puara — embedded framework

puara-module + puara-gestures core C++ libraries PlatformIO + Arduino templates synchronized packagings Flashed ESP32 device firmware + filesystem

Co-maintain a 4-repo open-source C++ framework for networked ESP32 controllers: a core library abstracting WiFi, a browser-based settings server, and persistent config; a standalone gesture-recognition library; and two synchronized packagings covering OSC, BLE advertising, and libmapper. Used and forked by outside researchers and students.

C++ESP32WiFi/BLE OSCCI

Networked kinetic pendulum

4 Teensy 4.1 controllers OSC over SLIP serial Motor and coil drivers Cytron boards, electromagnets Physical actuators carriages and rotary drive

Closed-loop control firmware for a multi-segment kinetic installation: four independent Teensy 4.1 controllers communicating over OSC/SLIP-serial, with encoder feedback, inter-carriage safety interlocks, EEPROM crash recovery, and direction-aware electromagnetic coil commutation.

C++Teensy 4.1OSC encodersEEPROM
Private firmware — available on request. Read the architecture write-up →

Antenne — PoE motion sensor

MOD-MPU9150 sensor 9DoF over I2C, UEXT ESP32-PoE firmware 9-axis Kalman fusion OSC bundle, PoE Ethernet 50 Hz to receiving software

Self-contained 9DoF motion sensor: an MPU9150 module plugs directly into an ESP32-PoE board, which fuses orientation with a 9-axis Kalman filter and streams it as OSC over a single PoE Ethernet cable — no separate power supply. Magnetometer calibration persists to flash and can be triggered locally or remotely.

ESP32-PoEOSC Ethernet/PoEKalman fusion
Private firmware — available on request. Read the architecture write-up →

snake_differ — on-device motion detection

OV2640 camera, PDM mic onboard sensors ESP32-S3 firmware FreeRTOS tasks, about 30 Hz OSC bundle output motion and texture data

ESP32-S3 firmware performing real-time frame-difference motion detection and pixel-texture analysis directly on-device, broadcasting bounding box, centroid, velocity, and zone-based density metrics as OSC at ~30 Hz from concurrent FreeRTOS tasks.

ESP32-S3FreeRTOS embedded CVOSC
Private firmware — available on request. Read the architecture write-up →
Embedded & edge AI

Realtime latent-space synthesis

Hand gesture or MIDI input two control paths Pure Data patch routes control to nn~ nn~ RAVE model neural audio synthesis JACK audio output Raspberry Pi 5, realtime

Realtime neural audio synthesis (RAVE, via the nn~ Pure Data external) on a Raspberry Pi 5, with the model's latent space steered live by hand-gesture tracking or a MIDI controller, under Pure Data + JACK for low-latency audio I/O.

Raspberry Pi 5neural audio Pure Data/JACKOSC

LoRA captioning & training pipeline

Raw image folder captioning input Janus-Pro captioning VLM plus TF-IDF concepts kohya_ss training accelerate, LoRA fine-tune Trained LoRA output safetensors plus concepts

End-to-end automation turning raw images into a trained LoRA model: a vision-language model captions images and extracts key concepts via TF-IDF, feeding a scripted kohya_ss/Stable Diffusion training run — usable from a CLI or a desktop UI.

PythonPyTorch VLM inferenceLoRA
Private pipeline — available on request. Read the architecture write-up →

Computer-vision + ML workshop pipeline

Webcam feed hand or body landmarks MediaPipe tracking script streams OSC, port 9000 Wekinator learns mapping, OSC out 12000 Ossia, Max, TouchDesigner sound, visuals, lights

Teaching pipeline wiring computer vision (MediaPipe), machine learning (Wekinator), and creative-coding software (Ossia Score / Max / TouchDesigner) together over OSC, with cross-platform install scripts and troubleshooting docs for non-technical users.

MediaPipeOSC cross-platformeducation

Self-observing volumetric installation

Depth + fisheye cameras volumetric + external view Point cloud + local VLM Stable Diffusion, EN/FR description Sphere projection self-observing feedback loop

A real-time installation where a vision-language model watches the piece from outside, describes it in English and French, and feeds that description back in as a prompt steering the generative visuals — while spectators' own volumetric point cloud shapes the same imagery from the inside.

Vision-language modelStable Diffusion OSCreal-time orchestration
Private installation — available on request. Read the architecture write-up →
Systems & distributed infrastructure

Firefly MV / dc1394 camera integration

Firefly MV camera, USB IIDC/DCAM protocol udev rule non-root USB access libdc1394 or GStreamer raw test or virtual bridge Consumer apps standard V4L2 webcam

Reproducible Linux setup for an industrial IIDC/DCAM machine-vision camera: custom udev rules for non-root USB access, a libdc1394 test harness, and a GStreamer/v4l2loopback bridge exposing it as a standard V4L2 webcam.

Linuxudev V4L2/GStreamerkernel modules

technocompost — distributed multi-agent pipeline

Raspberry Pi cluster Syncthing shared folder Agent choice or tile claim LLM pick or file-locked tile Display server, TCP live composited canvas

Distributed image-processing installation across a Raspberry Pi cluster, in two architectures: per-Pi AI agents choosing transformations from live system telemetry, and a concurrent tile-based canvas with file-locking and live TCP display.

Pythondistributed systems LLM agentsSyncthing
Signal architecture & instrument design

Improv based modular drum machine

Clock, sequencing, CV utility quantization, distribution Percussion, drum, tone sources 7 engines, 2 redundant pairs Texture, filtering, FX granular, filters, mix, reverb Stereo output, live improvisation 20 modules, 313 HP, powered case

Research into building an improvisation-based drumming instrument for experimental electronic music: a 20-module Eurorack signal chain — clock/CV utility, seven percussion and tone synthesis engines, granular texture and filtering, mix and FX — designed alongside a hard power and space budget across three rows (313 HP, 2.2 A / 0.8 A / 175 mA across three DC rails).

signal routingpower budgeting synthesisimprovisation systems

Wearable performance power & interconnect harness

Hot-swap Li-ion pair 10.8V, battery-only power path Fused distribution, per branch sized to real worst-case draw Jetson · 2× GMSL camera · Teradek TX never interrupted mid-swap

Body-worn power and signal harness for a live-performance rig: battery topology and fusing driven by an uninterrupted hot-swap requirement, CAN bus selected over I²C for a 5-meter IMU run, and a verification-first process for connector and crimp-tool sourcing across six distinct pin families — documented as a full design-reasoning write-up, not just a parts list.

Power electronicsLi-ion battery systems Connector engineeringCAN bus IP-rated hardware