ECS 289 Project Ideas

Software project

There's a "domain-specific language" we developed in this paper to automate the development of large tile sets. Extend it for to have “modules” (something like subroutines) that can be hooked together without having to know the details tiles in the module.

Theory project

Simple example CRNs from lecture that stably compute functions have the property that they have bounded executions. But the general technique to compute any semilinear function allows arbitrarily long executions. Is this necessary, or can all semilinear functions be computed with CRNs that have bounded executions?

Theory project

All chemical reactions are reversible, even at some very slow rate. If a CRN is reversible (meaning all of its reactions are reversible), then it cannot have stable configurations, since the last reaction to make the configuration "stable" could always be reversed (hence it cannot really be a stable configuration). Can we design CRNs that compute functions that are "reverse-robust" in the sense that, for any configuration reachable from the initial configuration by either forward or reverse reactions, there is a configuration reachable by only forward reactions that is correct and stable? (where stable is also defined only with respect to forward reactions)

Present a paper on algorithmic tile self-assembly

Present a paper on chemical reaction networks

Present a paper on strand displacement

Present a paper I didn’t list!

Authors of papers I did list have several other papers in the field; check their webpages.