Domains from molecular systems (like DNA storage!) to medical diagnostics rely on microfluidic devices for automation. This doesn’t just make things faster; it’s essential to minimizing human error and enabling new, more complex applications. The PurpleDrop hardware and Puddle software aim to make microfluidic automation cheaper, more reliable, and easier to use.
The code is open source and developed on GitHub.
PurpleDrop is a digital microfluidic device (DMF) for lab automation. DMFs use electricity to move tiny droplets of water—or any aqueous solution—on a grid of electrodes. You can move droplets around, mix them up, and split them apart. Combine that with heaters, sensors, or anything else that you can put on the chip, and you’ve got a general purpose lab-on-a-chip!
We want to develop a DMF device that’s cheap, reliable, and capable enough be the foundation of computer systems with molecular components. The Puddle software stack complements the PurpleDrop hardware, making it easy to automate complex protocols in synthetic biology or any other domain. For example, Puddle includes a computer vision system that detects and automatically corrects droplet movement errors.
Puddle is an open source operating system for microfluidics.
Just like Linux gives you read
and write
system calls to work with
files, Puddle provides primitives like mix
and split
that work on fluids.
Just like file descriptors in regular operating system, fluids in Puddle are
abstractions! Under the hood, Linux is really dealing with blocks and sectors on
disk that require a lot of bookkeeping. When you say write
, Linux might
instead wait to batch writes for better performance. Puddle does the same for
microfluidic programming: abstractions reduce complexity for the user and
let the system transparently perform optimizations and error correction.
Puddle lets users write protocols without worrying about hardware details or failures. Because the nitpicky details are abstracted away, protocols stop looking like a sequence of low-level instructions and instead look like high-level programs! When you add Puddle’s primitives to a general purpose programming language, you can combine computation and fluidic manipulation for even more flexibility.
The code snippet shows a simple protocol written in Python. The calls to
input
, mix
, and heat
are primitives, but the get_pH
and acidify
procedures could be written by the user. You can write code like this today with
Puddle and execute it in a simulator or on the PurpleDrop chip. Going forward,
we are looking to use techniques from programming languages research to make
writing fluidic programs safer and even easier.