Microfluidic Automation

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.

Our ASPLOS '19 lightning talk video describes Puddle and PurpleDrop.


PurpleDrop chip with droplet tracking for error detection.

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.

More videos!
Droplet moving in a circle (side view).
Droplet moving in a circle (top view).
One droplet mixing with another.


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.

a = input(substance_A)
b = input(substance_B)
ab = mix(a, b)

while get_pH(ab) > 7:
Sample program in Python using Puddle.

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.



2020 June
  • Ashley Stephenson
  • Max Willsey
  • Jeff McBride
  • Sharon Newman
  • Bichlien Nguyen
  • Christopher Takahashi
  • Karin Strauss
  • Luis Ceze
IEEE Micro.
2019 November
  • Max Willsey
  • Ashley Stephenson
  • Chris Takahashi
  • Bichlien Nguyen
  • Karin Strauss
  • Luis Ceze
2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).
Invited Paper
2019 April
  • Sharon Newman
  • Ashley P Stephenson
  • Max Willsey
  • Bichlien H Nguyen
  • Christopher N Takahashi
  • Karin Strauss
  • Luis Ceze
Nature Communications.
2019 April
  • Max Willsey
  • Ashley P. Stephenson
  • Christopher N. Takahashi
  • Pranav Vaid
  • Bichlien H. Nguyen
  • Michal Piszczek
  • Christine Betts
  • Sharon Newman
  • Sarang Joshi
  • Karin Strauss
  • Luis Ceze
Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems . ASPLOS '19
2019 January
  • Douglas Carmean
  • Luis Ceze
  • Georg Seelig
  • Callista Bee
  • Karin Strauss
  • Max Willsey
Proceedings of the IEEE.


Chris Takahashi
Chris Takahashi
RSE/Principal Investigator
Ashley Stephenson A
Ashley Stephenson
Bichlien Nguyen
Bichlien Nguyen
Jeff McBride J
Jeff McBride
Karin Strauss
Researcher, MSR
Affiliate Professor
Luis Ceze


Sarang Joshi
Pranav Vaid Stanford University
Sharon Newman Stanford PhD program
Michal Piszczek