I am interested in researching self-assembling and self-organizing systems which display complexity arising from simple components and local interactions. There are many examples in the natural world of both living and non-living systems in which large numbers of small, autonomous pieces form systems that are extremely complex without any centralized control and from simple sets of rules. By studying existing systems and designing novel ones, I hope to help illuminate fundamental properties of such systems which give rise to their complex behavior, including life. Additionally, the creation of complex artificial systems which self-assemble and self-organize could help to revolutionize many areas of technology, enabling wonders such as atomically precise manufacturing and nanoscale medical devices.
Current Research
Nanoscale Self-Assembly
My current research deals with models of self-assembling DNA 'tiles' and their ability to self-assemble intricate structures and to perform computations. We work extensively with an abstract model called the Tile Assembly Model (TAM) created by Erik Winfree. We have created a wiki site at self-assembly.net which contains a large collection of decriptions, definitions, and research results in the area. Additionally, our software simulator and tutorials for its use, along with other helpful software can be found on the Software page.
Results of my research can be found on the publications page.
Below is a brief list of some of the projects I've worked on related to self-assembly.
My current research deals with models of self-assembling DNA 'tiles' and their ability to self-assemble intricate structures and to perform computations. We work extensively with an abstract model called the Tile Assembly Model (TAM) created by Erik Winfree. We have created a wiki site at self-assembly.net which contains a large collection of decriptions, definitions, and research results in the area. Additionally, our software simulator and tutorials for its use, along with other helpful software can be found on the Software page.
Results of my research can be found on the publications page.
Below is a brief list of some of the projects I've worked on related to self-assembly.
- Introduced a model of "active" self-assembly in which each tile is able to activate and deactivate glues (but only once each per glue) and displayed it's power relative to the aTAM [Asynchronous Signal Passing for Tile Self-Assembly: Fuel Efficient Computation and Efficient Assembly of Shapes], as well as showing that the aTAM in 3D can simulate this new model [Signal Transmission Across Tile Assemblies: 3D Static Tiles Simulate Active Self-Assembly by 2D Signal-Passing Tiles]
- Demonstrated the power of tile assembly systems which allow for the relative rotation of tiles by providing a construction for a single tile type which is able to simulate an arbitrary aTAM system (consisting of an arbitrary number of tile types) [One Tile to Rule Them All: Simulating Any Turing Machine, Tile Assembly System, or Tiling System with a Single Puzzle Piece].
- Showed limitations of the power of self-assembly at temperature 1 [Limitations of Self-Assembly at Temperature 1 and Intrinsic universality in tile self-assembly requires cooperation]
- Investigated the notion of "intrinsic universality" as it relates to tile assembly, finding that the aTAM is intrinsically universal [The tile assembly model is intrinsically universal] while the 2HAM is not. [The two-handed tile assembly model is not intrinsically universal]
- Investigated many differences between the aTAM and the 2HAM (which allows pairs of arbitrarily large assemblies to combine, as opposed to only allowing single-tile addition like the aTAM) [Two Hands Are Better Than One (up to constant factors): Self-Assembly In The 2HAM vs. aTAM]
- Explored new models which allow for 1. tiles with geometrically complex edges which can provide geomtric hindrance to binding [Self-Assembly with Geometric Tiles], 2. glues with negative, or replusive, strengths [Exact Shapes and Turing Universality at Temperature 1 with a Single Negative Glue], 3. tiles constructed of differing materials such that tiles made of a particular material can be dissolved away at a given point during the assembly [Self-Assembly of Arbitrary Shapes Using RNAse Enzymes: Meeting the Kolmogorov Bound with Small Scale Factor (extended abstract) and Identifying Shapes Using Self-Assembly (extended abstract)], 4. the "temperature" parameter of a system to fluctuate unpredictably during assembly, forcing system design to incorporate robust fault tolerance known as "fuzzy temperature fault tolerance" [Strong Fault-Tolerance for Self-Assembly with Fuzzy Temperature].
- Designed, developed, and released a full-featured aTAM, kTAM, and 2HAM simulator and graphical tile type editor, ISU TAS, which can be downloaded from the Software page
- Designed, developed, and released a C++ library and several software packages (along with source code) for algorithmically generating tilesets which self-assemble into self-similar fractal-like shapes, Turing machine simulations, counters, and computations of Turing machines on infinite series of inputs. (To see descriptions and to download them, see the Software page)
- Discovered theoretical limitations to the self-assembly of a set of discrete self-similar fractals in the TAM
- Created novel tile assembly systems which perform the parallel computations of Turing machines for decidable and computably enumerable languages over the infinite set of natural numbers
- Discovered theoretical limitations to the self-assembly of a set of decidable languages and the minimum space requirements of another class
- Implemented a three-dimensional kTAM model of a layered Sierpinski triangle to analyze error rates of three-dimensional assemblies
- Created a cellular automata model for the Trend simulator (see below) to allow simulation of generic two- and three-dimensional DNA tiling self-assembling systems, following both the abstract Tile Assembly Model and the kinetic Tile Assembly Model (kTAM)
Past Research
Cellular Automata
Before becoming interested in self-assembly, I did research on cellular automata with Dr. Chou in the ISU Complex Computation Lab. I worked primarily with Trend, a general purpose cellular automata simulator written by Dr. Chou. Some of the work I did with it is listed below.
Processor Architecture
While working on my M.S., I was a research assistant for Dr. Akhilesh Tyagi working on reconfigurable processor architectures. For my M.S. thesis ("An Analysis of Reconfigurable Memory Queues/Computing Units Architecture") work I modified the SUIF Compiler System and MachineSUIF extension to evaluate a proposed architecture involving reconfigurable floating point computational units acting as extensible FIFO queue register sets.
Before becoming interested in self-assembly, I did research on cellular automata with Dr. Chou in the ISU Complex Computation Lab. I worked primarily with Trend, a general purpose cellular automata simulator written by Dr. Chou. Some of the work I did with it is listed below.
- Ported Trend to C++ and wxWidgets, which is an excellent cross-platform GUI library that I highly recommend
- Implemented full support for simulation and visualization of three-dimensional cellular automata models
- Added support for non-deterministic models
- Added support for automated cellular automata space analysis
- Created a two-dimensional, self-reproducing and mutating ‘worm’ model to study evolvability of simple cellular automata replicators
- Created a three-dimensional self-replicator with pseudo-genome encoding
Processor Architecture
While working on my M.S., I was a research assistant for Dr. Akhilesh Tyagi working on reconfigurable processor architectures. For my M.S. thesis ("An Analysis of Reconfigurable Memory Queues/Computing Units Architecture") work I modified the SUIF Compiler System and MachineSUIF extension to evaluate a proposed architecture involving reconfigurable floating point computational units acting as extensible FIFO queue register sets.
|