Skip to content
Active Fluid Control

Software

The water channel is held up by a small, deliberately modular stack, and each piece stands on its own. Today SynthPix and Flow Gym anchor our work in flow quantification (including the push toward 3D and tomographic PIV), while Goggles and TinyROS are quietly carrying other projects across the lab. FlowGames is the orchestrator that ties everything back to the channel.

Operating the channel.

Water channel software stack

FlowGames

Coming soon

The software stack that runs the water channel. FlowGames exposes a single real-time loop on top of sensors, actuators, flow-field estimators, and control agents, and keeps the same interface across the physical channel and a high-fidelity simulator. The V0 stack is being released publicly alongside the V0 hardware — expect placeholders until the channel is live.

The flow-quantification toolbox.

Synthetic PIV image generation

SynthPix

A JAX synthetic image generator for Particle Image Velocimetry. SynthPix streams image pairs from prescribed flow fields straight into training and benchmarking pipelines — no offline dataset, no I/O ceiling — while exposing the imaging and acquisition knobs practitioners actually tune. Built for the water channel; independently useful for lab PIV, riverine velocimetry, and adaptive acquisition design.

uv add synthpix
Flow-field quantification framework

Flow Gym

A common framework for developing, benchmarking, training, and deploying flow-field quantification methods. Classical and learning-based PIV sit behind one JAX-accelerated interface, interoperable with OpenCV and PyTorch, and the same workflow runs offline and in real time on synthetic or experimental data. It is also our path to 3D and tomographic PIV.

uv add flow-gym-suite

Middleware and observability.

Observability for research code

Goggles

A lightweight observability layer for research code: very low-latency structured logging synced across processes, experiment tracking (Weights & Biases out of the box), profiling, and device-resident temporal memory for long-running pipelines. The logging path is built to stay out of the hot loop, so you can keep it on even in real-time code. Written for the water channel and now reused across several unrelated projects.

uv add robo-goggles
Minimal pub/sub middleware

TinyROS

A minimal pub/sub middleware for getting sensors, actuators, and heavy compute talking in the physical world — without the weight of ROS2. Static YAML topology instead of runtime discovery, Python-first, Linux and macOS. Built for the water channel and now wiring up other setups across the lab.

uv add tinyros