OritatamiSim: An Introduction

OritatamiSim is designed to be a development environment for designing Oritatami systems and simulating self-assembly of these systems, utilizing system parameters which can be varied to alter the dynamics of the model. For a definition of the Oritatami model, please see www.self.assembly.net.


The OritatamiSim application window

OritatamiSim is composed of a variety of dockable windows, toolbars, and menus. The most important functionality of the main components are described below. Note that most windows can be resized, hidden, undocked, etc. but for clarity this documentation refers to them in their standard configuration.

Assembly window

This is the main window showing the current assembly. Depending on current settings it may show the triangular grid and coordinates, as well as all beads in the current assembly, the links between beads showing the order of transciption (black lines with directional arrows), and bonds between beads (red lines). The most recently added bead is shown with a white circle in the middle, and this is the bead to which the next bead to be transcribed will attach.


The assembly window (outlined in red)

The grid lines as well as the location coordinates can be toggled on and off by pressing "t" or via the "View" menu. When moving the mouse cursor over a location, the coordinates will be displayed in the leftmost position of the status bar at the very bottom of the OritatamiSim window. If the location is occupied by a bead, the name of the bead type as well as a listing of what other bead types it can bind to will be displayed in the second position of the status bar. The third position of the status bar displays the number of beads in the current assembly.

Controls

Ths assembly window displays the current assembly, updates it following self-assembly steps, and allows for manual creation and editing of assemblies. In order to control the simulation and the functionality for editing assemblies, a variety of controls are available via the toolbars, menu, mouse actions, and keyboard shortcuts. Some of these are described now.

The leftmost toolbar buttons allow for creating a new system, loading a system, saving a system, and resetting the system. The toolbar buttons to the right of that allow for pausing simulation (when it is in fast-forward mode), moving forward one simulation step at a time, and putting the simulator into fast-forward mode (i.e. simulating consecutive steps, one after anothre, as quickly as possible). The magnifying glass buttons with the "+" and "-" cause the assembly window to increase, respectively descrease, the zoom factor. The next series of buttons put the mouse cursor, when over the assembly window, into different modes as explained below. Note that for each mode, there is a unique behavior for left-clicks and right-clicks of the mouse.

  Pan/zoom mouse mode: Left-clicking and holding while dragging performs drag-based scrolling. Right-clicking zooms into the location under the cursor, right-clicking while holding the "Shift" key (or the "Alt" key or "Ctrl" key) zooms out.
  Add/remove beads: Left-clicking while over an empty grid location will cause a new bead to be placed in that location. Note that a bead type must be selected in the bead type window, and that the bead which is placed becomes the most recently added bead. If it happens to be a neighbor of the previously most recently added bead, a link will automatically be formed between the two, with the newest bead being the child. Additionally, holding the left mouse button while dragging the cursor through consecutive, empty grid locations will cause a series of beads to be placed. Right-clicking while over a bead causes that bead (along with its links and bonds) to be deleted. Holding the right mouse button while dragging the cursor over beads will cause all such beads to be deleted.
  Add/remove links: Note that links are the connections between beads which are transcribed consecutively, with the first being considered (for notational purposes) the parent and the second being the child and the arrow of a black line depicting a link pointing toward the child. Left-clicking while over a bead initially selects the first bead of a pair between which a link will be formed. Such a selected bead will be depicted with a green circle in the middle. After selecting this first bead, left-clicking on a second, neighboring bead will create a link between them, with the first being the parent and the second the child. Note that these beads must not already have a child and parent, respectively. Left-clicking a second time on the first bead can deselect it (as can right-clicking on any bead). In a similar way, right-clicking on a pair of linked beads will cause the link between them to be deleted, with the first bead selected being depicted with a red circle in the middle.
  Add/remove bonds: Note that bonds are the connections formed after transcription between beads in neighboring locations and following the binding rules defined for bead types. Left-clicking while over a bead initially selects the first bead of a pair between which a bond will be formed. Such a selected bead will be depicted with a green circle in the middle. After selecting this first bead, left-clicking on a second, neighboring bead will create a bond between them. Note that if the bond would not normally occur between these bead types or if it would cause the arity parameter (see System Parameters for a definition) of either bead to be exceeded, a warning will be displayed. Left-clicking a second time on the first bead can deselect it (as can right-clicking on any bead). In a similar way, right-clicking on a pair of bonded beads will cause the bond between them to be deleted, with the first bead selected being depicted with a red circle in the middle.

Bead type window

This window shows the definitions of the bead types, allowing them to be edited as well as for new types to be added.


The bead type definition window (outlined in red)

The bead type definition window consists of a set of boxes, one for creating a new bead type, and one for each of the currently defined bead types. To create a bead type, a name for the bead type must be entered in the "Name" text box. If it is desired for that bead to be able to form bonds to other bead types, the names of each of those bead types should be included in a comma separated list in the "Bonds" text box. If a color other than black is desired for beads of this type, clicking the circular black button will allow a new color to be selected. (Note that if more advanced options are desired for selecting colors, use the menu option "Settings" -> "Use advanced color picker".) When the new bead type is fully defined, clicking the "Add" list will cause it to be added to the bead type set of the current system.

For each box showing the definition of an existing bead type, if any of the bead type properties are edited, clicking the "Set" button will cause its new properties to be saved. Note that the ability of bead types to bond to each other is symmetric, meaning that if bead type "A" can bind to bead type "B", then "B" can also bind to "A". If the definition of a bead type is adjusted so that the bead types to which it can bind are adjusted, then other bead type definitions are adjusted to be symmetric with this new definition.

A bead type can be selected by left-clicking in the box in which it is defined (outside of buttons or text boxes). This will cause the bead type box to become colored in dark grey (e.g. the bead box for bead type "C" in the figure above), and the bead type boxes for all bead types to which it can bind to become colored in yellow (e.g. the bead box for bead type "A" in the figure above). Left-clicking on a selected bead type box will cause it to become deselected.

Primary structure window

This window shows the bead sequence (a.k.a. primary structure) definition and highlights the next bead to be placed. It also allows for the sequence to be modified and the current transcription location to be set.


The bead sequence, a.k.a. primary structure, definition window (outlined in red)

The main text box in this window shows the bead sequence as a comma separated list of bead type names. The bead which is the next to be transcribed in the self-assembly process is highlighted in bold. If the sequence is edited, the new sequence can be set as the sequence for the currently simulated system by pressing the "Apply" button. If a bead in the sequence is selected and the "Current" button is pressed, that bead will become the current location in transcription, i.e. that bead will be the next to be transcribed. If the "Reset" button is pressed, it is possible to choose if the bead sequence is reloaded from the system definition file or to the last sequence for which "Apply" was pressed.

Messages window

This window shows messages output by the simulator which may consist of general informational messages, as well as warning and error messages.


The message output window (outlined in red)