CAD and structured drawing programs, I'd suggest:
I'd like a component library of gears, struts, bearings,
etc. When I build a subassembly, I want to be able to
add it to the component library. Components should
be saveable as individual files, which should be
drag-and-droppable into the library and design space.
I should be able to manipulate the components onscreen as
"abstractions" -- gears are discs, shafts are cylinders,
rather than hard-to-render aggolomerations of individual
atomic spheres.
If I want a particular gear ratio, the system should pull the
appropriate gears from the library, or create them on
the fly. I should be able to designate a strut or
shaft of a desired length, and the system extrudes the
repeated pattern of atoms. Once I set up a drive train,
the system should fill in the "chassis" (a big block of
diamondoid, possibly with cooling channels) surrounding
it automatically. (These are all subject to the integer
limitations of atomic clusters, of course -- it's like
building with LEGO bricks.)
It should have all the standard shape-forming tools
of CAD -- CSG (constructive solid geometry), sweeps,
lathes, skinning, etc. I'm not sure how useful these would
be in constructing small mechanisms only a few atoms
wide, but they might be handy for design of the outer
chassis of the device, helical propulsion screws, etc.
There should be an analysis of whether the device
can be assembled -- can the drive shaft be hooked together,
then the chassis woven around it? Or are the tolerances
too tight for existing assemblers?
Operational analysis. Are the parts so close together,
or will get so close together during operation, that
unwanted bonds will form? How quickly can it operate
before it falls apart under centrifugal and other stresses?
How far can it be bent or heated before bonds break?
When moving atoms or components around, they should
"snap" into place with other components. The snapping
should be activated by holding a mouse button, so that
unwanted snaps don't occur in unwanted places. It
should be possibly to mask off sections of the assembly --
either by subassembly or physical space -- to make
rendering and snapping easier.
There should be unlimited levels of undo/redo, with
a summary list of what each step is. This summary list
can also serve as a reminder of what the user did (handy for
intrepid nanodesigners whose best work is at 3am).
The system should integrate with standard version-control
software. The data should be importable/exportable in
as many formats as possible to other molecular CAD
and analysis systems, and probably drawing packages as
well (for post-processing and presentation).
-- .-- Phillip Thorne -------------------------------------------------. | thorne@netmonger.net "It's the boundary conditions | | www.acm.rpi.edu/~thornp2/ that get you." | \__ Chief Concept Artist, Vicarious Visions, www.vvisions.com ______/