NanoCAD in Java

A freeware nanotech design system including source code

This web page is about TEN YEARS OLD. The good thing is that Java runs much faster now than it did ten years ago. The bad thing is that MANY of these links are BROKEN. C'est la vie.

If you have a Java-capable web browser, the NanoCAD applet should appear below. If you don't, you may find this page rather boring. This is a big applet, so it may take one or two minutes to load into your browser (sorry for the delay). If you see a molecule below, you can try rotating the molecule in various directions by dragging your mouse on the gray background (be sure to hold down the mouse button while you do that). See the text window for other tricks.

Send suggestions, comments or questions to wware@alum.mit.edu.

NanoCAD uses mathematical techniques of molecular modeling to simulate the behavior of molecules on your web browser. The "Emin" buttons perform energy minimization, that is, they try to nudge the molecule toward a more natural shape where its potential energy will be lower. Real molecules jiggle around their minimal-energy shapes due to thermal vibrations.

NanoCAD was largely inspired by the book Unbounding the Future, in which the second chapter describes a virtual-reality simulation of the molecular-scale world. This simulation is used as a design tool by future students of nanotechnology. For the present, the description is science fiction. I would like to think that NanoCAD may contribute some day to making it real.

Earlier versions of NanoCAD were written in either Scheme or Common Lisp. This has proved inconvenient for a lot of people, so this Java version should make NanoCAD available to folks who had trouble with it in the past. The earlier versions have been distributed under the somewhat restrictive GNU General Public License, but I'm switching to a more commerce-friendly Berkeley-esque license. Don't worry, it's still free software.

Scary Science Stuff

The most complete and complex (and computation-intensive) chemistry simulators find complete solutions to Schrodinger's wave equation, solving for exact shapes of electron clouds and other horribly messy things. At that level, "chemical bonds" are emergent phenomena and are not a-priori built into the simulation. A few terms for chemistry simulators, in decreasing order of sophistication, are: ab initio (where you start with just Schrodinger's wave equation and a few fundamental constants, and derive everything else from scratch), semi-empirical (modelling systems that depend partially on empirically gathered data), and molecular mechanics (depending entirely on empirical data to make up mass-and-spring mechanical models of molecular behavior).

Nanotechnology (for the moment, at least) most strongly resembles mechanical engineering. I'm hoping to come up with something simple and practical that would not overburden a desktop PC. I have therefore chosen to stick to molecular mechanics, which I think will serve most of the near-term needs of nanotechnology development.

I was never a very good chemistry student in school, so I've had to do a little reading. For thinking about this stuff, it's useful to know a bit about how atomic bonds work. I can recommend Linus Pauling's book, "The Nature of the Chemical Bond".

The mathematical model of molecular mechanics used by NanoCAD, called MM2, was developed by Norman Allinger of the University of Georgia. MM2 is described in Eric Drexler's book "Nanosystems", starting on page 44. MM2 essentially treats a group of atoms as a collection of masses, non-linear springs, torsion bars, and so on. The NIH has a very pretty summary of the ideas behind modelling molecular mechanics. Based on the MM2 info in Nanosystems, I've computed some typical spring constants that you might expect to see in some typical molecules.

A couple of people have written to say that they had trouble running the NanoCAD applet under MS Windows, getting a message like this: The dynamic link library sc10awt.dll is not in my paths. This is not a problem with NanoCAD, this is a problem with how your web browser is set up. If you run into this, try to find a technical support phone number for whoever made your browser (Netscape, or if you're using Internet Explorer, Microsoft) and ask them for help in configuring your browser to run Java applets correctly.

How about something more like Virtual Reality?

Since NanoCAD was inspired in part by the virtual reality program described inUnbounding the Future, it's reasonable to ask whether we can expect to see a VR version of NanoCAD any time soon. And indeed, there is hope.

Around 1983, I visited Atari's research lab in Cambridge Massachusetts, and got the opportunity to try a force-feedback joystick. A normal joystick feeds X and Y coordinates to the computer, which say how far up or down the stick is, and how far left or right it is. The force-feedback joystick also had motors which allowed the computer to push against your hand. When it was programmed correctly, it gave an incredibly realistic sensation of pushing against a spring, or navigating a maze with solid walls. The sense of realism was indescribable.

There is now a force feedback joystick available in the $90-$100 range, and I've put together a littleweb page about it. One of these days, I mean to actually buy one, and see if it can be programmed to give the physical feeling of tugging on atoms and molecules. Then you'd be able to see how a molecule deforms as you shake it or stretch it.

Archives and precompiled executables

Click on these files with your right mouse button to download them.