I am interested in researching selfassembling and selforganizing systems which display complexity arising from simple components and local interactions. There are many examples in the natural world of both living and nonliving 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 selfassemble and selforganize could help to revolutionize many areas of technology, enabling wonders such as atomically precise manufacturing and nanoscale medical devices.
Current Research
Nanoscale SelfAssembly
My current research deals with models of selfassembling DNA 'tiles' and their ability to selfassemble 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 selfassembly.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 selfassembly.
My current research deals with models of selfassembling DNA 'tiles' and their ability to selfassemble 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 selfassembly.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 selfassembly.
 Introduced a model of "active" selfassembly 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 SelfAssembly: 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 SelfAssembly by 2D SignalPassing 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 selfassembly at temperature 1 [Limitations of SelfAssembly at Temperature 1 and Intrinsic universality in tile selfassembly 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 twohanded 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 singletile addition like the aTAM) [Two Hands Are Better Than One (up to constant factors): SelfAssembly In The 2HAM vs. aTAM]
 Explored new models which allow for 1. tiles with geometrically complex edges which can provide geomtric hindrance to binding [SelfAssembly 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 [SelfAssembly of Arbitrary Shapes Using RNAse Enzymes: Meeting the Kolmogorov Bound with Small Scale Factor (extended abstract) and Identifying Shapes Using SelfAssembly (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 FaultTolerance for SelfAssembly with Fuzzy Temperature].
 Designed, developed, and released a fullfeatured 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 selfassemble into selfsimilar fractallike 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 selfassembly of a set of discrete selfsimilar 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 selfassembly of a set of decidable languages and the minimum space requirements of another class
 Implemented a threedimensional kTAM model of a layered Sierpinski triangle to analyze error rates of threedimensional assemblies
 Created a cellular automata model for the Trend simulator (see below) to allow simulation of generic two and threedimensional DNA tiling selfassembling systems, following both the abstract Tile Assembly Model and the kinetic Tile Assembly Model (kTAM)
Past Research
Cellular Automata
Before becoming interested in selfassembly, 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 selfassembly, 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 crossplatform GUI library that I highly recommend
 Implemented full support for simulation and visualization of threedimensional cellular automata models
 Added support for nondeterministic models
 Added support for automated cellular automata space analysis
 Created a twodimensional, selfreproducing and mutating ‘worm’ model to study evolvability of simple cellular automata replicators
 Created a threedimensional selfreplicator with pseudogenome 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.
