9478

Molecule Construction Set

This Demonstrations lets you create an unlimited number of different molecules and structures from the ground up.
You can create, copy, shift, rotate, merge, and delete molecules one by one without affecting any of the other molecules in your project.
Or you can use this Demonstration to create artwork made from balls or sticks.
The names, signs, atomic numbers and atomic radii of over 100 chemical elements have been implemented.
Twenty given projects (including , , methanol, graphene, DNA and a buckyball) make it easy to start.
Explore!

THINGS TO TRY

SNAPSHOTS

  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]

DETAILS

The default setup
As a start, move the sliders in the default setup.
If an atom is invisible because it is outside the plot range, select another plot range (click "F1" or "All").
Important: Please read further down how "action = fastdraw" can speed up your design process.
Controls:
Over 100 controls are now implemented, and many are new or altered in this update; so please read the descriptions carefully!
"project" dropdown menu
Here you can call up a prefabricated configuration, which you can edit and add to as much as you like.
Examples:
Project 1: , project 2: {H}2O, projects 5 and 8: graphene, project 9: methane, project 11: buckyball, project 12: ,
project 14: butyl methyl sulfide (the world's smallest motor, see http://www.sciencedaily.com/releases/2011/09/110904140353.htm),
project 15: boron (research has shown that boron can be made in flat sheets with hexagonal holes, see http://news.rice.edu/2012/04/20/flat-boron-may-take-many-forms-2/).
project 16: part of a DNA spiral, with an adenine-thymine pair at the top, and a cytosine-guanine pair at the bottom. The left and right backbones are built from phosphate-deoxyribose.
projects 17, 18: carbon nanotubes.
project 20: Phthalocyanine Blue (blue pigment)
"new/save" setter bar
"new" creates an additional project.
"save" saves the current project.
"storage" setter bar (1/2/s/sp/r/+/d)
Click "1" or "2" to activate one of two temporary storage areas for the current project. The active storage turns red. Note that these storages are kept independent of the projects; thus you can use them to copy creations from one project to another.
Click "s" to save the current project in one of the two temporary storage areas.
Click "sp" to save the current connected part in one of the two temporary storage areas.
Click "r" to restore the stored project (or part) from one of the two temporary storage areas.
Click button "+" to add the selected stored configuration to the existing creation.
Click button "d" to reset the storage contents to the defaults (hexagon and pentagon rings of carbon atoms).
"axes etc" setter bar (r/a/p/j/n/t/t2/z)
Click "r" to display xyz rulers.
Click "a" to display coordinate axes.
Click "p" to display a floor piece in the xy plane.
Click "j" to display any stored links between atoms.
Click "n" to display the serial number of each atom. The number will appear just above each atom.
Click "t" to display the chemical element of each atom. The chemical name will appear just above each atom.
Click "t2" to display the atomic number with each atom.
Click "z" to display the projection (in the form of black lines) of each atom onto the xy plane. This helps to visualise the position of each atom in the three dimensions.
All data associated with this setter bar is stored with the project.
"plot range" setter bar (All/F1/F2/F3/F4)
Here you can choose several plot ranges of your project ("All" or 40x40x40 or 20x20x20 or 10x10x10 or 4x4x4). The plot range is stored with the project.
"view" setter bar (std/top/front/side)
This determines the default angle of the camera.
"std" (standard) has the camera at {Pi,Pi/2,2}, "top" at {0,0,3}, "front" at {0,3,0}, and "side" at {0,3,0}.
"atom" drop-down menu
Select which atom you want to edit. The total number of atoms in your project is also displayed.
"+/m/</>" setter bar
Click "+" to duplicate the current atom (or all atoms of the molecule or all atoms of your creation, depending on which mode is active). The copies will be positioned at the same position as the originals. No links are copied. Use the x/y/z sliders to separate the copies from the originals. See also the action "copy" further down, which works differently.
Click "mark" to have a black arrow mark the currently edited atom and a brown arrow mark atom2. Click again to switch off the arrows.
Click "<" to make the previous atom the current one.
Click ">" to make the next atom the current one.
"ty" (type) dropdown menu
Here you can associate a chemical name (like "oxygen") to your atom.
To the right of this menu the chemical sign ("O" for "oxygen") will appear. Also the color for this atom is displayed, which you can change by clicking it.
You can also set the color to the default color for this chemical element by clicking the "defcol" button further down.
"radius", "x", "y", "z" sliders
They control the radius and the position of the currently edited atom.
"α" slider
Here you can define an incremental angle (in degrees) by which the current atom (or a connected part of your creation or all of it) will be rotated. This rotation will be around an axis which is defined by the next two controls and by the "atom2" dropdown menu.
The setter bar consisting of a "x/y/z/L/3/O" button and a "+" (do) button controls rotations
This rotation given by the "α" slider will be around an axis which is given as follows:
Click the x/y/z/L/O button repeatedly to cycle through the four settings.
"x/y/z" settings:
The rotation will be around the x-, y- or z-axis at origin (if "atom2" is "0") or around the corresponding axis positioned at "atom2"; the connecting link must be missing.
"L" setting:
The rotation will be around the line from the origin to the current atom (if "atom2" is "0") or around the line from the current atom to "atom2" (the connecting link does not actually have to be established for this).
"3" setting:
The rotation will be around atom2, in the plane defined by the three points atom2, the currently edited atom and the atom2 which was displayed last.
"O" setting:
The rotation will be around the line from the origin to "atom2" (if "atom2" is given, otherwise around the z-axis).
The "+" button:
Click "+" to execute the rotation. You can click "+" repeatedly to rotate the atom again by the same increment.
The rotation applies either to the current atom or to the current part (molecule) or to your whole creation, depending on which of the modes "atom/part/all" have been chosen. If you want to rotate part of a molecule you might have to sever a bond (link) first, then rotate your part, and finally reconnect the part. See exercise 3 for a practical example.
The "+/X/Y/Z" setter bar controls shifts
Clicking "+" turns it into "-" and vice versa. This controls whether the incremental shifts are in a positive or negative direction.
Click "X" to shift the atom/part/all into the x direction by one mesh unit ( similar with "Y" and "Z"). The mesh unit (1, .5 or .25) is set next to the "snap" button (see further down).
The "atom/part/all" setter bar controls what object size is being processed
This control influences a lot of other controls!
If "atom" is active, the , , and sliders will cause movements of the current atom only. Also, shifts ("X/Y/Z") and most "actions" will only affect the current atom.
If "part" is active, the , , and sliders will cause movements of the part (molecule) connected to the current atom. Also, shifts ("X/Y/Z") and most "actions" will only affect the currently edited connected part (molecule).
If "all" is active, the , , and sliders will cause movements of all atoms. Also, shifts ("X/Y/Z") and most "actions" will affect your whole creation.
"relco" (relative coordinates) tickbox allows micro-control of the atom's position
When the "relco" tickbox is activated, the , , and sliders show relative cooordinates instead of absolute coordinates.
Example: shifting the slider to "1" will move the current atom (or part of it or all of it, depending on the chosen atom/part/all mode) by one unit in the x-direction.
NOTE: none of the other controls is available while the "relco" box is ticked!
To make precise small changes (micro-control) to the position of the currently edited atom, select "action = slider/2" one or twice BEFORE you click the tickbox! Click "relco" again to deactivate it.
"delete" drop-down menu
Allows you to delete the current atom / the nearest atom / all atoms with a smaller sequence number / all atoms with a higher sequence number / the currently edited part (molecule) / all atoms of current type / all atoms except the current one.
Some restrictions apply since you cannot delete the last atom.
"atom2" drop-down menu
The second atom is used to create links and special rotations, to measure and set distances, and for "action = mirror at atom2".
If a number > 0 is selected and the link does not exist yet, then the link will be indicated (!) as a brown line. The actual link can then be created by clicking "+"; see below.
The line between the two given atoms is the axis of rotation for rotation mode "L", even when the link as such does not exist.
"+/-/*/-*/=" setter bar
"+" creates a link from the current atom to "atom 2".
"-" deletes the selected link (bond), if there was one.
"*" creates links (bonds) between the current atom and all other atoms of the connected part which contains "atom2". If no "atom2" is given, then the current part is used.
"-*" deletes all links (bonds) to the current atom.
"=" merges "atom2" with the current atom. All links to "atom2" will now connect to the current atom instead. If "atom2" is not given, the system will search for the atom closest to the current atom and then merge it with the current atom. See also "action = merge close" below.
Note that "atom B merging with atom A" has a different result from "atom A merging with atom B", since the surviving atom will be at a different place.
"distance" slider
The distance slider can be used passively and actively.
If untouched, it shows the distance between the currently edited atom and "atom2". If no target atom is given, it shows the distance between the current atom and the origin {0,0,0}.
Move the slider to change the distance between the two atoms. The current atom will be moved accordingly along the line between the two atoms. If "atom2" is not given, the current atom will slide along the line through the atom and the center {0,0,0} and can be thus translated to the origin.
If "part" mode is selected in "atom/part/all", then moving the distance slider will cause the current connected part (molecule) to slide in unison with the current atom.
For small distances close to "dist=0" the sliding can be improved by clicking "action = sliders/2" once or twice, thus decreasing the range of the slider.
If you want to set the distance to exactly zero, then "action=move to..." is more precise and easier to use.
"parameter" slider
Multi-purpose slider whose value is used by several "action" options.
"snap" button and mesh parameter 1/.5/.25
Click the "snap" button to position an atom/part/all atoms on a three-dimensional integral grid, which means that all coordinates of the atoms are rounded to integers (or multiples of .5 or .25, depending on the choice of mesh parameter 1/.5/.25 next to it). Note that the shift setterbar "+/X/Y/Z" also uses the mesh parameter.
"ortho/iso" grid setter bar
The options "ortho" and "iso" refer to an orthogonal (90 degree) grid and an isometric (60 degree) grid.
The setting influences the "snap" action and the floor displayed ("axes etc = p").
In the "iso" mode the coordinates are "snapped" to multiples of sqrt[3]/2 if "snap" is clicked.
This allows to create regular triangles and hexagonal lattices (such as graphene) with precision.
The grid type is stored when you save a project.
"col2" color swatch
Color used by some "actions", see below.
"opacity" setter bar (+,-)
Click button "+" to increase the opacity of atoms and links, click "-" to decrease it.
"defcol/r" setter bar
Click "defcol" to replace the current atom color with the default color associated with the current atom type.
For example, a gold atom will show a golden color as default (which you can overwrite by selecting a different color).
This default coloring applies to the current atom or the currently edited connected part (molecule) or all of your creation, depending on which of the atom/part/all modes is active.
Click "r" to change the current atom's radius to the default radius associated with the current atom type (as published in the scientific literature). This default radius applies to the current atom or the currently edited connected part (molecule) or all of your creation, depending on which of the atom/part/all modes is active.
An atomic radius size of one unit corresponds to 100 nanometers in this Demonstration. You will see that a lithium atom is much larger than a carbon atom, for example.
"action" drop-down menu
Option "fastdraw" speeds up the design process by displaying simpler graphics: dots are displayed instead of spheres, lines instead of tubes, and only one size of atoms is used. Click "fastdraw" again for full display of spheres and links.
Option "atom at {0,0,0}" creates a copy of the current atom at the origin.
Option "mirror x" turns the "" coordinate of the current atom to "-"; this also applies to "mirror " and "mirror ". The mirroring applies to one atom, or a whole molecule, or to all molecules displayed, depending on which of the atom/part/all modes is active.
Option "mirror at..." mirrors one atom, or a connected part, or all atoms at "atom 2", depending on which of the atom/part/all modes is active. If "atom 2" is not given, then the mirroring is at the origin (all coordinates turn to ).
Option "move to..." shifts the current atom/part/creation, depending on which mode is active. The shift will be such that the current atom ends at the position of "atom2" (or at {0,0,0}, if atom2 is 0). This tool is very useful when you want to join two molecules. Select one atom in each of the two molecules you want to join (by setting "atom" and "atom2"), then select "action=move to..." . This will cause the two atoms to overlap. To merge the two overlapping atoms, simply select "action = merge" or click "=" in the "+/-/*/-*/=" setter bar.
Option "split atom" duplicates the current atom and all its links. The copy will be positioned at the same place as the original. Use the x/y/z sliders (or X/Y/Z shift) to separate the original from the copy.
Option "split + link" splits the current atom (see above), and links the copy to the original atom. Use the x/y/z sliders (or X/Y/Z shift) to separate the original from the copy.
Option "copy" duplicates the current atom/part/creation, depending on which mode is active. The copy will be positioned at the same place as the original. Use the x/y/z sliders to separate the original from the copy.
Option "copy + link" copies the current atom, and links the copy to the original atom.
Option "halfway" creates a new atom halfway between the current atom and "atom2" or - if "atom2" is not given - between the current atom and the origin.
Option "create center" creates a new atom at the center of mass of all atoms in the current connected part or in the whole creation, depending on which of the atom/part/all modes is active (mode "atom" will be treated here as mode "part" for convenience).
Option "merge close" merges all pairs of atoms that are close to each other (distance less than .2). See also merge option "=" of the "+/-/*/-*/=" setter bar.
Option "type  part/all" makes all atoms of the currently edited molecule having the same type. If "all" mode is active, then all parts of your creation are affected.
Option "color  part/all" paints all atoms of the currently edited part (molecule) with the current atom color. If "all" mode is active, then all parts of your creation are affected.
Option "color  type" paints all atoms of the currently displayed atom type (such as "oxygen") with the color of the current atom.
Option "type  color" sets the types of all atoms having the current color to the type of the current atom.
Option "random color" paints one or more atoms with a random color, depending on which of "atom/part/all" is currently active.
Option "radius  part/all" makes the radius of all atoms of the currently edited part (molecule) the same size. If "all" mode is active, then all parts of your creation are affected.
Option "radius  type" changes the radius of all atoms of the currently displayed atom type (such as "oxygen") to the size of the current atom.
Option "radii * parm" to change radii (of atom/part/all) by a common factor (namely by the value of the "parameter" slider).
Option "parm  link dia" changes the link diameter to the value of the "parm" slider.
Option "size * parm" resizes the part/creation by the value of the "parameter" slider.
Option "x * parm" resizes the part/creation in x-direction by the value of the "parameter" slider.
Option "y * parm" resizes the part/creation in y-direction by the value of the "parameter" slider.
Option "z * parm" resizes the part/creation in z-direction by the value of the "parameter" slider.
Option "col2  backgr" makes color "col2" the background color.
Option "col2  links" paints all links with the color "col2". The default color for links is golden. The link color is stored with the project.
Option "col2  atoms" paints one or more atoms with color "col2", depending on which mode of "atom/part/all" is active.
Option "link to nearest" creates links between the current atom and its nearest neighhbor(s). If "part" mode is active, then all atoms in the current molecule are linked to their nearest neighbor(s). If "all" mode is active, then all atoms are linked to their nearest neighbor(s). All this is only true as long as "parameter" is not larger than 1, otherwise the distance to the closest neighbor is multiplied by the parameter value and all atoms in this sphere are linked to.
Option "link nearest ext" creates links between the current atom and its nearest external atom(s). External atoms are those which are not part of the current connected part. If "part" mode is active, then all atoms in the current molecule are linked to their nearest external neighbor(s). If "all" mode is active, then all atoms are linked to their nearest external neighbor(s). Depending on the number of atoms in your project, this option may take a while to process (indicated by the text "link nearest ext" showing until the processing has finished).
Option "delete links" deletes all links of the current atom or all links in the molecule or all links of your project, depending on which mode of "atom/part/all" is active.
Option "reset project" resets the current project to its default values.
Option "sliders ×2" doubles the range of all sliders (except the rotation slider).
Option "sliders /2" halves the range of all sliders (except the rotation slider).
action repeat button
Click the toggle to the right of the "action" dropdown menu to repeat the last action.
Hints
- When working with this Demonstration it is mostly useful to know the sequential number of each atom. For this purpose simply switch on option "n" (numbers) of the "axes etc" setter bar, and switch off option "t" (chemical symbols) from the same setter bar.
- The sequential numbers are hard to see next to black carbon atoms. You can improve visibility by choosing a lighter color for one carbon atom and then select action "color -> type".
- Remember that the storages 1 and 2 contain default molecules, namely a hexagon and a pentagon ring of carbons atoms. After overwriting the storages you can get the deafults back by clicking "d" in "1/2/s/sp/r/+/d". Click "+" to add a carbon ring to your project at any time. The DNA in project 16 has been created this way.
- For white atoms (such as hydrogen) the color swatch to the right of the "type" dropdown menu is invisible since the background of the color swatch is also white. Clicking it will show to you that it is still there.
- In this text we use "link" rather than the term"bond" from chemistry, and "part" or "connected part" for "molecule". On the other hand, instead of "atom" you could use "ball", "orb" or "sphere".
- If you see a brown line between two atoms and you want to get rid of it, select "atom2 = 0".
- to rotate or move several parts in unison, connect the parts temporarily with a link between two of their atoms, rotate/move them as one part, then delete the temporary links. As an exercise, apply this to the buckyball with the captured inner atom (project 11) to make two copies.
Exercise 1: layers
To create the many layers of project 6, we start with one layer in the plane. We click "part" of the "atom/part/all" setter bar, then select "copy" from the "action" dropdown menu. Finally, we separate the new copy from its original by clicking "Z" twice. To give the atoms of the copy a new uniform color, change the color of the current atom and select "action = color part/all".
Exercise 2: merging
We start with the methanol molecule in project 9. How can we make a copy and join it with the original?
Select "axes etc. = n" to show the sequential numbers of the atoms, and switch "axes etc. = t" off. Click "part" of the "atom/part/all" setter bar, then select "copy" from the "action" dropdown menu. Separate the two copies with the slider. To join the two molecules at hydrogen atoms 2 and 12 , select 2 as current atom and 12 as "atom2". To bring the molecules closer to each other, shift the "distance" slide to a smaller value. To precisely achieve distance = 0 use "action=move to" rather than the distance slider. The two molecules will slide toward each other and the two hydrogen atoms 2 and 12 will coincide. To merge them, simply select click the "=" merge button in the "+/-/*/-*/=" setter bar (which merges only the given pair) or select "action=merge close" (which merges all close pairs of atoms at the same time). You have created a new molecule. (The system does not check how many bonds a hydrogen molecule is allowed to have.)
Exercise 3: rotation of a part
In project 9, select "axes etc. = n" to show the sequential numbers of the atoms. We want to rotate the CH3 group (atoms 1,2,4,5) around the axis given by atoms C and O (numbers 4 and 3). Here is how we accomplish this: select "plot range = F2" to keep the image steady. Select "atom = 4" and "atom2 = 3" and delete the link (click "-" in the "+/-/*/-*/=" setter bar). Select "α = 14" (for example), click "x" to the right of the α slider again and again to get the "L" (link) rotation mode appearing next to the "+" button. Click this "+" button repeatedly; you will see the CH3 group rotating while the OH group at the top remains fixed. Finally, reconnect the two severed parts by clicking "+" in the "+/-/*/-*/=" setter bar.
Now repeat the exercise, this time without severing the O-C connection. What will happen?
Exercise 4: creating a carbon nanotube with just a few clicks
We start with project 18, where two carbon rings are rotated against each other 30 degrees (how can you produce those from scratch?). Click "all" in "atom/part/all". Now select action "delete links", then action "link nearest". Increase z by 1.2. Now click "part" in "atom/part/all" and select action "copy", then action "mirror z".
Create six vertical links (between those six pairs of atoms of the two molecules which are closest) by selecting the appropriate numbers in "atom" and "atom2" and then clicking "+" in "+/-/*/-*/=" each time. Join two copies of this large molecule to obtain the carbon nanotube shown in project 19.
    • Share:

Embed Interactive Demonstration New!

Just copy and paste this snippet of JavaScript code into your website or blog to put the live Demonstration on your site. More details »

Files require Wolfram CDF Player or Mathematica.









 
RELATED RESOURCES
Mathematica »
The #1 tool for creating Demonstrations
and anything technical.
Wolfram|Alpha »
Explore anything with the first
computational knowledge engine.
MathWorld »
The web's most extensive
mathematics resource.
Course Assistant Apps »
An app for every course—
right in the palm of your hand.
Wolfram Blog »
Read our views on math,
science, and technology.
Computable Document Format »
The format that makes Demonstrations
(and any information) easy to share and interact with.
STEM Initiative »
Programs & resources for
educators, schools & students.
Computerbasedmath.org »
Join the initiative for modernizing
math education.
Powered by Wolfram Mathematica © 2014 Wolfram Demonstrations Project & Contributors  |  Terms of Use  |  Privacy Policy  |  RSS Give us your feedback
Note: To run this Demonstration you need Mathematica 7+ or the free Mathematica Player 7EX
Download or upgrade to Mathematica Player 7EX
I already have Mathematica Player or Mathematica 7+