My research focuses on development and homeostasis: How complicated systems establish and maintain themselves. Biological development is a powerful lens for understanding this problem space but by no means is its only application.
Innumerable traditional systems also need to deploy quickly and reliably, work around defects and disturbances, avoid bit rot. Traditional approaches are brittle and fail to accommodate the inevitability of system evolution over time. We can do better.
Traditional design processes are top-down: A vision formed in the mind of the designer is translated piece by piece into physical matter via processes such as photolithography, machining, and 3D printing.
Nature does not work this way. Designs are specified in functional terms, and only as rough sketches. The same code can describe a sapling, a tall tree of the forest, and gnarled krummholz on the edge of a mountain. A blown-down tree can right itself. The robustness and versatility are astonishing.
How are we to understand this? Can we learn to harness these design methods ourselves — especially when our medium even begins to resemble Nature's, with innumerable anonymous, unreliable elements: datacenters, robot swarms, sensor networks, Internet of Things, massively multicore processors, synthetic tissues and organs?
My thesis work takes a deep dive into these questions, and the exploration continues today. A key strategy is specifying desired behaviors in terms of control targets and then constructing control loops from "partially redundant" overlapping sensors and actuators. Another key is focusing principally on space and spatial properties, and on individual cellular elements only secondarily.
Some example structures built with this methodology, "developing" out of spherical shells through cell deformation and rearrangement, are shown below. By virtue of their homeostatic control loops, they are self-stabilizing — they repair themselves when disturbed. (Click through for video on top two.)
Check out my Artificial Life paper for more.
"What I cannot create, I do not understand"
-- Richard Feynman
In developmental biology, we seek to understand our own origins, the process of embryonic development. In synthetic biology, we seek to reimagine what Nature has built in order to create things anew.
My research focuses on models. What can we learn from models? The wet lab is the final arbiter of truth in biology, but a model can teach us the right questions to ask. I build models that seek to re-engineer the problem of development from scratch — not just to learn how to program complex engineered systems, but to understand what it takes to build an organism.
Several important challenges surface in my thesis work: sequential control of timing, simultaneous patterning and deformation, mechanical isolation of independent components, constraint propagation as a fundamental patterning mechanism on par with morphogenetic fields and Turing patterns.
Additionally, development is not merely a chemical process. It is also a mechanical process. In my thesis, I develop a simplified mechanical model of embryonic epithelial tissue, used as the substrate for my investigations. With such a model, the processes necessary to forge structures out of sheets of cells become clear.
In more recent work, I have been investigating the electrical aspects of development, in collaboration with the Allen Discovery Center at Tufts University. Increasing evidence suggests that development includes a critical electrical component, mediated via trans-membrane voltages and cell-to-cell gap junctions. I am developing tools, such as GABEE (Genetic Algorithm for Bio-Electric Exploration), to help understand what this physics is capable of and how it might be deployed for developmental patterning.
Software systems are a mess today! Hardly a week goes by without new a disaster in security. Keeping systems secure & patched, even just keeping them running, has become overwhelming. We're progressively abandoning the gains in autonomy, flexibility, & privacy that came with PC revolution — not because we can’t build systems that preserve these properties, but because we can’t manage them. And, every cycle, we have to drag large customers to upgrade kicking & screaming — not because customers are dumb, but because we’ve designed a tech stack where coevolution of the different layers is truly painful.
What can be done? How can we inject some fresh thinking into the problem?
Is bio-mimetic engineering limited to spatial systems that look and act naturally — systems like robot swarms, fault-tolerant FPGAs, synthetic tissues? No! Centralized systems have much to gain as well. We can learn a great deal about how to engineer secure, evolvable, and autonomous systems by listening carefully to Nature. Watch this space!
Spatial computing, pattern formation, deformable substrates
Developmental & synthetic biology
Software compatibility, evolvability, and reliability
Security, accountability, and privacy