Computable Nanotechnology

An Independent Study by Bryan Wagner - Updated: Dec 26, 2005

After a very crazy end of the semester, I thought it'd be a good idea to post my final report and my simulation:
Analysis and Simulation of Mechanical Nanocomputer Architecture

You can also download my simulation:
complete with source. The executable presents a simple MFC GUI that you can use to load the MolML files (which have the .mol extension).

End of the Spring Semester

I've decided to extend the scope of the independent study with a continuation into the fall semester. The current issue I've been dealing with is properly simulating "spring" forces which are necessary components of Drexler's logic gates. Collisions are now based on an object's center of mass, and acceleration has been implemented. Now I'm working on the problem of adjusting position/velocity/acceleration in accordance with Hooke's Law: F = -kx where F is force, k is the spring constant, and x is the position relative to the normal vector. I've solved the geometric problem of collision detection between atoms and circular planes which will serve as the faces of springs in these systems. This issue is the last aspect of the simulation to be resolved. The remaining areas that I've planned out and want to finish include axiomatizing the assumptions, developing a context-free-grammar for a scripting language for a hypothetical "robotic arm" to place atoms (using the single-carbon placement tool), and developing a 2nd level of abstraction that uses planar collision detection or less-precise spherical detection so gates can be combined with one another. Finally, I should be able to simulate the slightly more complicated registers. The preceding seems like much but it really isn't now that I have a theoretical foundation. Once working logic systems are in order, I will be able to apply on-the-fly assembly to certain computational tasks, and this area will be the real fruits of my research.

One more quick note: I had an idea to extract the "fundamental reactions" from Merkle's paper on hydrocarbon metabolism. This facet has to do with the "axiomatization" aspect of the project; by listing the fundamental reactions behind Merkle's concepts, physicists and chemists can simply prove that such reactions do occur, and everything presented in his paper will follow as a natural consequence. This is different than what I had originally planned, which was to accept Merkle's tools as the axioms; instead, I'm assuming the reactions under certain conditions themselves occur, thus Merkle's tools can be built, thus my single-carbon placement tool can be built, thus robotic arms and automation can assemble diamond lattices, thus molecular logic gates can be built in the bottom-up style (typical lithographic techniques are considered top-down). Errors in the assumptions, once found, will modify the outcomes.


Research Summary

Reviewing previous research on the construction of nanosystems and nanostructures has given me a much more acute perspective of the considerations necessary for modeling such systems. Below, I will review and discuss the articles and information I have read, and try to outline fundamentals and innovations for the system I am developing.

The most comprehensive, fundamental, and seminal resource I will reference is the book Nanosystems: Molecular Machinery, Manufacturing, and Computation by Eric Drexler (1992). I will probably use this source and Nanotechnology: Basic Science and Emerging Technologies by M. Wilson et al. as my references for basic concepts in chemistry necessary to understand atomic reactions. For now, I briefly discuss the importance of covalent bonds. Each element on the Periodic Table is associated with a number indicating the count of protons in its nucleus. Often, the number of neutrons matches or exceeds the number of protons, and this nucleus accounts for nearly all of the atomic mass. Elements that have the same atomic number but different neutron counts are called isotopes. Electrons surround the nucleus in ascending layers of orbitals, and I believe the maximum number of electrons per orbital is fixed for all elements (need to check on that). Electrons in the outer-most orbital are called valence electrons, and atoms are most stable (non-reactive) when they have the maximum possible number of valence electrons. Atoms will naturally seek to bond with one another to achieve the maximal number of valence electrons and stability. Thus, covalent bonds will form between atoms, where two or more atoms share valence electrons. Covalent bonds are fundamental to the structure of many carbon allotropes, or different structures of the same element, such as graphite and diamond, which are both composed primarily of carbon but have drastically different physical characteristics.

A great reference to the Periodic Table of the Elements, with hyperlinks for more information about each element can be found at

Following the example of Ralph C. Merkle and the suggestions of the Foresight Institute, this study is restricted to the assembly of hydrocarbon structures. Thus, my first step is to understand the basic atomic properties of carbon and hydrogen. carbon/hydrogen/diamond info to go here.
Giant Molecular Structures
Diamond Molecule
The Diamond Structure
The Element Carbon
Chemistry of Diamond

A proposed "metabolism" for a hydrocarbon assembler

by Ralph C. Merkle. Establishes a complete set of tools for hydrocarbon assembly. On-the-fly construction of computing devices will require manipulation of these tools in some manner, be it with fixed robotic arms or self-assembling devices, making them an important aspect of this research.

This paper restricts the study of positionally controlled chemical reactions to the manipulation of hydrogen and carbon, because these elements can be used to create any scaled mechanical component which will have very high strength and stiffness to weight ratios. The author notes that a more general study of chemical reactions would need to consider an exponentially growing number of reactions.

The tools presented in this paper manipulate a feedstock molecule, C4H2, called butadiyne (aka. diacetylene).

Hydrogen Abstraction Tool

Used to remove hydrogen atoms from a surface or molecule. A strongly bound carbon atom has one free bond which serves as a highly attractive radical (dot at the end of the handle). The radical will bond with hydrogen atoms that are less strongly bound.
Hydrogen Abstraction Tool
Hydrogen Deposition Tool

Used to deposit hydrogen atoms onto a surface or molecule. The bond between tin and hydrogen is relatively weak, and will break away to bond with more attractive forces such those from carbon radicals. This tool is perhaps the least studied, and Merkle suggests other elements, such as lead which forms an even weaker bond with hydrogen, may be more useful in certain circumstances.
Hydrogen Deposition Tool

The free bond (represented as a dot) in each of these tools serves as a highly attractive force to bond with other atoms. This bonding is used to provoke controlled reactions with other molecules, usually to pull molecules apart at specific locations. Pictured are two carbon, a silicon (Si), and a tin (Sn) radical.
Transition Metals

This tool can be placed next to a strong covalent bond which weakens the bond making it much more prone to break under mechanical force than other surrounding covalent bonds.
Transition Metals
Carbene Insertion Tool (Carbon Deposition Tool)

This tool is used to place s single carbon atom between a pair of single radical carbon atoms on a diamond surface. Note that the tool needs to bond to such a surface in order to break the bond between the deposited carbon atom and the handle. Otherwise, Additional steps need to be taken to weaken the bond at the desired breaking point. Thus, the tool is not completely general-purpose for placing carbon atoms.
Dimer Deposition Tool

This tool places a pair of carbon atoms (a carbon dimer) between a pair of single radical carbon atoms. Like the carbene insertion tool, it was designed to deposit carbon atoms on a pre-existing diamond surface.

The article describes several well-defined operations that can be performed with these tools. These techniques are summarized below:

Precisely handling and positioning C4
Silicon radicals are positioned to bond to the first and fourth carbon atoms of the C4H2 feedstock molecule. Step 1
The radicals bond to the carbon atoms, which restructures the inner covalent bonds between the carbon atoms so that they're all doubly bonded. Hydrogen abstraction tools are used to remove the hydrogen atoms. Step 2
We're left with 4 linearly bonded carbon atoms firmly handled between two positional arms. Step 3

Creating the hydrogen abstraction tool
Carbon radicals bond to the inner-most pair of carbon atoms, which severs the connection between carbon atoms, leaving two carbon atoms between each pair of handles. Step 1
Looking at one of the two new pairs of handles, the Si-C bond is weakest, and pulling the handles apart will break this bond. We're left with a hydrogen abstraction tool on the left and a silicon radical on the right. Step 2

Extending the hydrogen abstraction tool
Two hydrogen abstraction tools are used to bond to the inner-most pair of carbon atoms of the well-controlled feedstock molecule. The molecule is split and we are left with two pairs of Si and C handles that each control four carbon atoms. Step 1
The Si-C bond is weakest, so mechanical force will cause this bond to separate, leaving a silicon radical and a hydrogen abstraction tool that is extended by two carbon atoms. Step 2

Transferring dimers between hydrogen abstraction tools
A hydrogen abstraction tool with 2 carbon atoms (left) bonds with a hydrogen abstraction tool with 4 carbon atoms (right). Silicon radicals are positioned to separate the carbon bonds at the desired location. Step 1
The Si-C bonds sever the carbon chain and the tools are separated. When the Si radicals are pulled off these tools, the left hydrogen abstraction tool will have 4 carbon atoms and the right hydrogen abstraction tool will have 2 carbon atoms. Step 2

Refreshing the carbene insertion tool
A carbene insertion tool needing a new pair of carbon atoms is bonded to an extended hydrogen abstraction tool. A silicon radical is positioned two carbons past the end of the intial carbene tool. Step 1
The silicon radical bonds to the carbon atom, and causing the carbon chain to restructure into double bonds toward the carbene insertion tool. A transition metal is placed at the severing point to weaken the C-C bond. After the tools are pulled apart, the Si radical can be pulled off, and the resulting carbene insertion tool is lengthened by two carbon atoms. Step 2

Transferring single carbon atoms between carbene insertion tools
Two carbene insertion tools bond together and silicon radicals are placed at the desired seperation point. Step 1
The silicon radicals bond with the carbon atoms, leaving a single C-C bond at the separation point. When the tools are pulled apart, this bond is weakest and will break. Step 2
The silicon radical is then pulled off each of the carbene insertion tools. The net result is the transferral of carbon atoms between the initial carbene insertion tools. Step 3

Creating the hydrogen deposition tool
A used hydrogen abstraction tool is positioned between an unused hydrogen abstraction tool and a tin radical. Step 1
The radicals will provoke bonding between carbon atoms in the hydrogen abstraction tools and between the tin radical and the hydrogen atom. The hydrogen atom in the hydrogen deposition tool is now weakly bonded to the tin atom and will break off for stronger bonds with other atoms. Step 2

Using the dimer deposition tool (approach 1)
The dimer deposition tool approaches a pair of carbon radicals. Step 1
The dimer bonds with the free radicals on the surface of the target. Step 2
The bonds between the dimer and the handle are designed to be weaker than the resultant bond with the surface and will break when the handle is removed. Step 3

Using the dimer deposition tool (approach 2)
In this scenario, the dimer is handle by two weak tin radicals. Step 1
The dimer bonds with the free radicals on the surface of the target. Step 2
The first tin radical is pulled from the surface. The C-Sn bond is weak and will break easily. Step 3
The second tin radical is then pulled from the surface, leaving the carbon dimer in the desired location. Step 4

Reloading the dimer deposition tool
Silicon radicals are positioned to separate the well handled feedstock molecule. After the bonds are made, the molecule is separated into two dimers. Step 1
Each dimer is bent so that it can be positioned near a pair of weaker tin radicals. The radicals will bond with the carbon atoms, causing the dimer to form a double bond between carbon atoms. Step 2
To transfer the dimer to the weaker tin radicals, the silicon radicals are twisted so that they face one another. They are then pushed toward one another, causing a bond to form between the silicon radicals, freeing the dimer. The dimer is now controlled by the weaker tin radicals. Step 3

Pathway to Diamond-Based Molecular Manufacturing

by Robert A. Freitas Jr. Describes several dimers and 4 steps to building the first positional assembly tool.

Molecular Manufacturing: Adding Positional Control to Chemical Synthesis

by Ralph C. Merkle. Discusses the basic tools needed for positional control and explains why they're feasible. Discusses a hydrogen abstraction tool, two atom placement tools, inert environments, and molecular filters for diamond walls.

Simulated Engineering of Nanostructures

by D.W. Brenner, S.B. Sinnott, J.A. Harrison, and O.A. Shenderova. Gives some considerations for atomic simulations. Simulated puncturing surfaces with a diamond tip.

Theoretical studies of a hydrogren abstraction tool for nanotechnology

by Charles B. Musgrave, Jason K. Perry, Ralph C. Merkle, and William A. Goddard III. Very specific ab initio calculations for hydrogen chemical reactions. Says the best tool for hydrogen abstraction is an alkynyl radical. Also suggests a technique for hydrogen removal.

Molecular building blocks and development strategies for molecular nanotechnology

by Ralph C. Merkle. Currently reading.

Reading List

Re-reading List

Forsight Institute References

More Chemistry links

Doesn't really apply to this research, but cool:

The crossbar latch: Logic value storage, restoration, and inversion in crossbar circuits
Philip J. Kuekes, Duncan R. Stewart, and R. Stanley Williams
J. Appl. Phys. 97, 034301 (2005) (5 pages)

A New Tool

Invented a single carbon deposition tool! One of my biggest problems was to discover a way to deposit carbon atoms in the diamond lattice. The tools described in Merkle's article were intended to build hydrocarbon structures on a pre-existing diamond surface, and they involved the use of dimers or double bonds between pairs of already placed carbon atoms. Since I wanted a more general degree of freedom for my model, I worked with the tools I had to see what amount of creativity I could come up with. The result was that I designed a tool capable of easily depositing carbon atoms with single bonds. There are some obvious theoretical limitations to using this tool, namely that there would be many quantum physical and chemical considerations to take into account in the real world, but my device suits my model perfectly. Since the steps, described in the following, to create the tool use only the pre-existing tools and are based strictly on reactions that appear in Merkle's article, I'm fairly convinced that the device could be built, and I will use it as the fundamental operator in my construction process. Even if this tool doesn't suit operations in the real world, it could always be replaced later, but at least I have something physical to work with. I have been studying symmetry in the diamond lattice, and I am considering building another tool, a Diamond Lattice Tool, to simplify the process of lattice construction, but I still need to analyze it's effectiveness.

Proposal for a single carbon deposition tool
A cerbene insertion tool is positioned near a single-bonding carbon radical and a hydrogen deposition tool. The bonds that follow do not need to form simultaneously, and either can be done before the other. Step 1
The carbene radical bonds to the carbon radical, and the hydrogen atom is deposited as the hydrogen insertion tool is pulled away. Silicon radicals are positioned near the inner pair of carbon atoms. Step 2
The silicon radicals bond with the carbon atoms, weakening the C-C bond. This reaction is the same as the one occurring in the technique which transfers single carbon atoms between carbene insertion tools. Step 3
The next step is similar to the reaction occurring in the technique that refreshes the carbene insertion tool. A transition metal is placed near the C-C bond that we wish to break. This bond is now the weakest and is at the center of the opposing mechanical forces which are then pulled apart. Step 4
The C-C bond breaks and we are left with two pieces: the left which can be pulled apart into a carbene insertion tool and a silicon radical, and the righthand workpiece. Step 5
The handles are straightened and pulled apart. Since the Si-C bond is the weakest, it will break forming a silicon radical and the righthand workpiece. Step 6
Two hydrogen deposition tools attach hydrogen atoms to the free radicals to stabilize the carbon atom for the next reaction. Step 7
Two silicon radicals are positioned near the carbon atoms. Notice there is crowding in the illustration, but this problem shouldn't be an issue in three dimensions. Step 8
Similar to the reaction that occurs in the technique to transfer dimers between hydrogen abstraction tools, the silicon radicals bond to the carbon atoms, removing the C-C bond. Step 9
To the workpiece on the left, a hydrogen abstraction tool is used to remove a hydrogen atom from the carbon atom. The piece on the right can be separated into a silicon and a carbon radical. Step 10
The result is a single carbon deposition tool. Hydrogen atoms can be removed or added as desired using hydrogen abstraction and deposition tools. When the carbon atom bonds to another carbon atom, the Si-C bond will be weaker then the C-C bond, and the carbon atom will be deposited as the handle is pulled away. A single carbon deposition tool

Interesting Idea (09-03-2005)

Had a great idea that I just wanted to write down before I forget it. Mechanical computational machines afford an interesting opportunity that's not possible with electronical computers; namely the ability to add mechanical components to computing hardware. This might allow an engineer to design components that perform specific tasks to reduce the number of "sequential" operations that need to be performed. Consider the following (inaccurate and incorrect) device that scans physical "logic rods" which store binary data:

Max Device

If designed properly, this device could perform a linear search for the maximal value of an array in constant time by pushing the device to the right towards the receiver. The arm is significant, since the device can be positioned above the array when it is needed then removed afterwards. Note that this design is incorrect in its present form. It needs "fingers" for every bit in case two registers tie. The receiver would also need to be designed to read to output properly. It seems sensical that other devices might be constructed to perform similar "parallel processing" by taking advantage of the physical world.

Additionally, I don't know if I stressed this thought enough in what I said previously. We want to be able to make things like "smart medicine" that can maybe scan cell surfaces for cancer cells, then decide to attack them, or make cars that "heal" when scratched or dented. These devices will require logic components, counters, and memory, fundamental concepts to computer science. By exploring nanoscale mechanical computers my ultimate goal is to better understand the application of computability to such problems, and it is not particularly concerned with designing "faster" computers. However, an avenue I hope to explore further in the future is an idea investigated by Dr. Way, which involves massively parallel processing that uses on-demand construction (or allocation) of nanoscale processors. In terms of solution time, using such a system to process an exponential-order algorithm would beat the fastest computers in the world for sufficiently large inputs.

Next Step

My next step is to summarize the information I developed regarding the diamond lattice structure (symmetry, perspective, basic blocks, sequence, etc.) which is where the real "computer science" aspect of this research begins. After I have a solid grasp on this, I need to update my ideas for data representation in a simulative environment (ie, in a computer). This will complete the research I need to model the "construction phase" and will lead me to the "architecture phase" where I can model Drexler's NAND gate.

Diamond Lattice Symmetry

I ran into a problem constructing rows and layers of a diamond lattice that I've recently overcome. I built a tool that deposited three carbon atoms at a time, which was adequate for single layers, but failed to scale beyond one layer because of crossover bonds between certain atoms. Bluntly, the tool would have been trying to place an atom where there already was one. Fortunately, I solved the problem by re-assessing my view of the lattice. Consider this cross-section of a diamond lattice, taken (temporarily) from Dr. Mark R. McClure's The Diamond Structure:

diamond lattice

This view of the lattice forms a type of three dimensional matrix that can be extended infinitely in all directions:

diamond lattice extended

As beautiful as this symmetric view may be, it is difficult to reproduce atom by atom since atoms on the edges of these blocks are shared. The advantage of this view is that it the cubic symmetry applies well to our intuitive notions of blocks. However, there is a simpler symmetry that can be seen in this image if our purpose is to build rows, columns, and layers of this lattice. Suppose we take this image and rotate it 45 degrees 2-dimensionally:

rotated diamond lattice

The numbers 1-4 in this image signify their distance into the z-dimension (into the page), 1 is closest to the person viewing the image and 4 is furthest. If you were to view the numbered bonds from the top of this image, they would form a hexagon (the bond between 1 and 4 atoms forms between layers, and the 1 and 4 atoms shown are NOT bonded). Notice how the 3 and 4 carbon atoms zig-zag in the "back row" and the 1 and 2 atoms zig-zag in the "front row." These rows will extend infinitely to the right and left. Now suppose we design a matrix of these front and back rows as in the image. If we place a second layer of the same matrix directly above or below the original layer, the adjacent 1 and 4 atoms will bond, connecting the layers. The result is a cube-like lattice which can be made as large or as small as we like.

Since it is so simple from an assembly perspective, this symmetry is the one that will be used in the assembly script. The script will be a very simple set of constructions that will be read as an input and will output a molecular structure.

Notice that using the symmetry described we can build rows and columns as we like, but we can also create "round" objects by assembling incrementally "shorter" layers, thus rounding off the edges. Since the assembler should be generalized so we can deviate from this lattice, the script won't be written in terms of matrices. Considerations that need to be taken into account are obviously xyz (or polar) coordinates and 3 degrees of rotation (although this information may be insignificant since the assembly tools are fairly abstract, especially regarding their handles). Also, to bond with a previously positioned atom, the script needs to remember its position, and needs to be told the bonding radius and angles between the atoms (thus polar coordinates might be preferred). More to come on the specifics of this script shortly.

To stabilize the system and prevent uncontrolled covalent bonding, the diamond structures will be hydrogen-terminated by using hydrogen deposition tools to deposit hydrogen atoms on all unbound radicals along the edges of the lattice.

Collision Detection

One of the major contributions from the field of computer science to nanotechnology research is simulating the physical and chemical events that should happen once we actually have atomic assembly tools. While this study in no way intends to comprehensively simulate every imaginable quantum physical and chemical consideration, it will try to incorporate basic physical concepts, primarily (for now) the laws of momentum. Since we only consider inert systems made of hydrogen and carbon, and since we will stabilize the structure by hydrogen-terminating any radicals, we will treat collisions between atoms as simple inelastic collisions that transfer momentum (mass * velocity), changing velocity vectors. However, the issue of collision detection is actually a complicated issue in computational geometry. As a result, this project will only consider a "brute force" O(n2) check, where n is the number of atoms in the system. The value for n will probably be greatly reduced by marking only those atoms on the "surface" of structures for comparison.

(written previously:)
Pool Hall Lessons: Fast, Accurate Collision Detection between Circles or Spheres by Joe Van Den Heuvel and Miles Jackson. Interesting article on realtime spherical collision detection, a deceptively difficult problem. The math is all there, but I don't really like their algorithm, it seems like there's too many "early escape" checks. I used their algorithm in an early physics demo program for collision between atoms but there were errors in my adaptation. It looked cool but wasn't anything I wanted to show anybody. I think I can take their math and write a better algorithm, so I'm going to digest it while I decide how I'm going to handle collisions in my simulation. Most likely I'll switch to polygons and use a more abstract view of my nano-mechanics, which would greatly reduce the amount of collision checking. Another note is that the environment in the simulation is assumed to be inert, and I'll be hydrogen-terminating any loose carbon radicals, so there shouldn't be any need to handle realtime chemical bonding. Finally, note that handling velocity, momentum, and animation are the easy parts, but accurate collision detection is much more difficult.

This type of collision detection is important only for the lowest levels of abstraction in this system. Later, when we consider interactions between hydrocarbon structures (higher level of abstraction), individual atoms will be less significant and structures could be considered as solid objects. Thus, better collision detection algorithms could be used that involve convex three dimensional polygons. Some references for fast collision detection:

Physics Demo

I've been working on a collision detection algorithm to detect and adjust collisions between individual atoms. The problem reduces to handling vectors and testing geometries to find any velocities whose paths cross closer than the sum of the radii of each sphere. To simulate collisions in real time, the positions of the atoms are adjusted in timeslices, where collisions are handled within each timeslice. Handling these collisions is a tricky issue, since any number of collisions might exist within any timeslice. My solution involves a 1/2 O(n2) test between circles to find minimum distances. Once each atom knows the next atom it will collide with, the collisions are placed in a priority queue which is implemented as a min heap. Collisions are handled in order, testing for any new collisions as they are removed from the heap. Since the fractional distances between colliding atoms are constantly reduced, the heap will always empty and collisions within the same timeslice adjust the respective velocities.

The algorithm is fairly rapid although furthur optimizations can still be made. The 2D demo handles 100 atoms and the 3D demo handles 300 atoms. Since there are less collisions in three dimensions, it can handle more atoms, but the upper bound of the algorithm is the same. I was able to simulate 1000 atoms in acceptable time, and by adjusting the timeslice I believe I can realistically simulate more than 2000 atoms in a reasonable amount of time. The programs strain the CPU more than RAM, which is a good sign. The 3D version is simply an extension of the 2D version. The 2D version took several days to complete, while the 3D version took less than 10 minutes! Note that in the 3D version, it's more difficult to witness collisions. To see them, follow only one of the atoms until its velocity changes.

Finally, a nice observation about solid objects is that only the surface atoms need to be tested by this algorithm, reducing a great number of tests. Of course, higher levels of abstraction would use convex polygons spanning masses of atoms, but at this level we want to be as accurate as possible.

You can download the demos here:

2D Physics Demo 2D Physics Demo
2D Physics Demo 3D Physics Demo

Next step is simply to organize the diamond lattice structure in the code, then I can start building solid objects. I believe I'll need to incorporate inelastic collisions and constant force for certain objects (input rods/clocking rods), but this implementation should be easier now that collisions can be detected.

The Goal

The goal is to successfully model Drexler's NAND gate described in chapter 12 of Nanosystems. This illustration appears on page 344 of the paperback edition:

Drexler's NAND gate

This image shows a mechanical NAND gate that could exist on the nanoscale. Two "logic rod" inputs determine the position of the output rod. If both input rods are "true," a spring-driven gate blocks a nob on the output rod and it cannot move, causing the output rod to generate "false." If either input is "false," nobs near the inputs prevent the output gate from closing, and the output rod moves outward, returning "true" when the clocking mechanism provides a force for the rod. This illustration causes me to make two observations: first that due to the relative complexity behind the physics of springs, springs will probably need to be represented as "black boxes" in my simulation; second that the forces provided by the clocking mechanism will need to be assumed to exist until the model becomes more complex. Ultimately, a black box will probably be used for the environmental clock, since the agreed upon proposal for a clocking mechanism involves sending density pulses through a sea of inert gas. Designing the actual receiver might not be too complicated, but designing a mechanism to provide adequate force for the entire system might be. The next illustration, taken from the same page, gives general insight into the behavior of logic rod interaction, at intersections called "interlocks:"

An Interlock

As a comparison, consider Drexler's proposal for efficient registers taken from page 356:

Drexler's registers (a) Drexler's registers (b)

These devices are considerably more complicated. They would be obviously essential for most computing devices but might need to be considered in future research beyond the scope of this semester.

Project Description

Computer science has an integral role in any application within the nanotechnology domain because we cannot directly interact with molecules to form complicated structures without relying on massive numbers of chemical reactions studied by Chemistry. Thus, unique complicated structures will need to be modeled, computed, and bonded either by atomically precise positional robotics or by pre-existing nanomachines.

I will be studying models of computation for different levels of nanotechnological abstraction. These models will be the basis for simulation of nanomechanical devices. The foundation for these models will be based on several well-understood axioms from chemistry. These axioms will adopt the reactions between hydrogen and carbon, studied by Ralph Merkle et al., used to create rigid diamondoid structures by positional assembly. The Forsight Institute points out that restricting study of nanochemical reactions to carbon-based structures is sufficient for revolutions in manufacturing, due to their high strength to weight ratios.

The study will explore immediate structural results from the axiomatic assumptions, propose a data-model for the position of atoms in such structures, explain how structures can be combined through scripting, and explain an hierarchy of abstraction for the construction of complex structures. The aim of this work will be to model and simulate molecular computational devices first proposed by Eric Drexler in Nanotechnology. In his proposal, Drexler describes how rigid structures can be assembled into mechanical "transistors" called interlocks, and explains how simple logic gates can be constructed from input/output rods. While mechanical computational devices differ significantly from electronic transistor computers, such devices have drastic applicability to microscopic embedded machines, for example, medical machines that seek and destroy virii. Such machines can provide computability for specific tasks without designing a general purpose computer. Additionally, nanoscale transistors are much more vulnerable to thermal and electrostatic noise than molecular machines.

The final goal will be to visually display this model in a graphical program. Instructions will be interpreted by the scripting language and the structure will be assembled and simulated. The intended programming language is C++. A rudimentary physics system is already being developed which will apply basic laws of momentum to collisions at the atomic level of abstraction. I have determined that implementing this system is feasible, its simplicity can later be developed if desired, and since the proposed structures are very rigid and unreactive, Newtonian physics are still accurate.

Success with this study can lead to several developments. Correctly modeling a logic gate can lead to a model of a specific-purpose computer. Merkle et al. have proposed that such computers can be clocked by placing them in a liquified neon solution and changing its pressure by adding/removing the liquid from an external source. The presure of the solution affects a spring-activated valve on the clocking mechanism. This clock can be studied or assumed to exist within the hierarchy of abstraction. If the model is given a clocking mechanism, then output from the simulated device will be derived entirely from the structure of the model and not from any direct computation in the program.

The study will try to determine good and bad decisions for simulating molecular structures, try to evaluate the approximated size of nanomolecular computational devices, and try to prove that constructing such machines is easier than it would seem.

Molecular computing machinery will be modeled based on the concepts presented by K. Eric Drexler in Nanosystems: molecular machinery, manufacturing, and computation (1992), particularly Chapter 12: Nanomechanical Computational Systems.

Bryan W. Wagner

Valid XHTML 1.0!     Valid CSS!