The PyTAS simulator allows several options for controlling the progress of a Tile Assembly Model simulation. Since simulation steps are automatically cached, simulation can be run both in forward and reverse directions. Some of the methods for controlling simulations are described below.
There are three main types of breakpoints that can be set for a simulation: step, location, or tile type based breakpoints.
Breakpoints can be set and managed through the "Set Breakpoints" window, which can be accessed by selecting the menu option "Control" -> "Set breakpoints...".
Step based breakpoints can be set so that the simulator will automatically halt on specified simulation steps (when it is running in the forward direction).
Location based breakpoints can be set so that the simulator will automatically halt when tiles are placed at specified locations.
Tile type based breakpoints can be set so that the simulator will automatically halt when tiles of specified types are placed anywhere in the assembly.
Using the "Control" menu in the simulation window, you can control the behavior of the simulator if and when it encounters frontier positions in which more than one tile type can be placed, thus making the system undirected. Such nondeterminism can be ignored, reported, or cause the simulator to pause simulation (if running in fast-forward mode).
The toolbar of the simulation window contains buttons which allow for an assembly to be manipulated in a variety of ways.
When this mode is selected, left-clicking and dragging allows you to drag the view of the assembly. Right-clicking allows you to zoom in on the location of the click, and holding shift while right-clicking allows you to zoom out.
When this mode is selected, left-clicking and dragging allows you to select a rectangular area of the simulation space. Then, you can use the "Disable frontier locations" button to disable any frontier locations contained within the selected rectangle, and deactivated frontier locations will not allow tile attachments. By selecting "Enable frontier locations", you can re-activate any frontier locations within the selected rectangle which have been deactivated. You can also delete tiles either within the selected area or outside of it using the "Delete selected tiles" and "Delete unselected tiles", respectively.
When this mode is selected, right-clicking over an empty space will allow a tile of a selected type to be manually placed. Right-clicking over an occupied location will allow a tile to be removed.
When this mode is selected, left-clicking and dragging will allow deactivated frontier locations to be manually created, which essentially provide "blocking locations" into which tiles cannot be added and can force assembly growth to only occur in other directions. Right-clicking and dragging will remove deactivated frontier locations, and potentially re-activate frontier locations which were deactivated.