Difference between revisions of "Sierpinski triangle in the aTAM"

From self-assembly wiki
Jump to navigation Jump to search
(A SEED to start)
m (Added this page to relevant category.)
 
(33 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[Category:Self-assembly]]
 +
 
==Introduction==
 
==Introduction==
In this tutorial we will implement the [http://en.wikipedia.org/wiki/Sierpinski_triangle  Sierpienski triangle] using ISU TAS. To complete this tutorial you will need to create and define seven unique tiles, so before we begin make sure you've familiarized yourself with the basics of the [[software]].  
+
In this tutorial we will implement the [http://en.wikipedia.org/wiki/Sierpinski_triangle  Sierpinski triangle] using TAS while it is in the [[Abstract Tile Assembly Model (aTAM)]] simulation mode. To complete this tutorial you will need to create and define seven unique tiles. Before we begin make sure you've familiarized yourself with the basics by finishing the tutorial: [[Your first tile assembly]].
  
 
==Implementation==
 
==Implementation==
 
===SEED tile===
 
===SEED tile===
#Open ISU TAS. You should see the three windows that you are familiar with from previous tutorials. If there are any old assemblies still loaded in any of the three windows go ahead and make a new tile assembly. On the Simulation Window click ''File -> New tile assembly system''.
+
#Open TAS. You should see the three windows that you are familiar with from previous tutorials. If there are any old assemblies still loaded in any of the three windows go ahead and make a new tile assembly. On the Simulation Window click ''File -> New tile assembly system''.
#It is now time to create your '''SEED''' tile. If you've completed the TAS Hello World <link -> Hello World Tutorial> tutorial this will be no problem. As the name '''SEED''' suggests, this is the point from which your TAS will assemble <link -> def assembly>. For now you can think of the '''SEED''' as the origin of a 2 dimensional grid. <Is this accurate?>
+
#It is now time to create your '''SEED''' tile. If you've completed the TAS [[Your first tile assembly]] tutorial this will be no problem. As the name '''SEED''' suggests, this is the point from which your TAS will assemble. For now you can think of the '''SEED''' as the origin of a 2 dimensional grid.  
 
#The attributes of your '''SEED''' tile will be as follows:
 
#The attributes of your '''SEED''' tile will be as follows:
#*Name: SEED
+
 
#*Label:
+
[[File:Seed_Sierpinski_Triangle.PNG|thumb|center|alt=SEED|SEED tile.]]
#*North: Strength = 2, Label = 2
+
 
#*East:  Strength = 2, Label = 2
 
#*South: Strength = 0, Label = 0
 
#*West:  Strength = 0, Label = 0
 
#*Tile Color: Red
 
#*Text Color: Default
 
#*Display: Default.
 
Next we will define the perimeter or boundary tiles that assemble for the Northern and Eastern edge of the '''SEED''' tile.
 
 
===X-Axis tiles===
 
===X-Axis tiles===
#Again, right click the Tiletype editor and click ''Insert New.'' The tile name will be '''X.''' Sit and think for a moment about which sides of the tile will have glue, and what the strength of those glues should be.
+
 
#OK. If you figured it out congratulations! If not don't worry! Look at the picture of the '''SEED''' tile, along the East edge there is a glue of strength 2. Recall that for this exercise we are thinking of the '''SEED''' as the origin of a graph, where the East edge represents the ''x'' axis. If we then place an '''X''' tile along the East edge of the '''SEED''', then the Western edge of the '''X''' tile must also have a glue strength of 2. Because we want our assembly to grow indefinitely, we also give the Eastern edge of '''X''' a glue strength of 2.
+
#Again, right click the Tiletype editor and click ''Insert New.'' The tile name will be '''X.''' Before you move on answer these questions:
 +
#*For each side of '''X''', what is the strength of the glue?
 +
#*How will each side of the tile '''X''' be labeled?
 +
#Look at the picture of the '''SEED''' tile, along the East edge there is a glue of strength 2. Recall that for this exercise we are thinking of the '''SEED''' as the origin of a graph, where the East edge represents the ''x'' axis. If we then place an '''X''' tile along the East edge of the '''SEED''', then the Western edge of the '''X''' tile must also have a glue strength of 2. Because we want our assembly to grow indefinitely, we also give the Eastern edge of '''X''' a glue strength of 2.
 
#The attributes of your '''X''' tile will be as follows:
 
#The attributes of your '''X''' tile will be as follows:
#*Name: X
+
[[File:X_axis_Sierpinski_Triangle.PNG|thumb|center|alt=SEED|X tile.]]
#*Label:
 
#*North: Strength = 1, Label = 1
 
#*East:  Strength = 2, Label = 2
 
#*South: Strength = 0, Label = 0
 
#*West:  Strength = 2, Label = 2
 
#*Tile Color: Red
 
#*Text Color: Default
 
#*Display: Default
 
 
Notice that the North edge of the '''X''' tile has a glue strength of 1. This is to give the interior of the assembly a place to bind.
 
Notice that the North edge of the '''X''' tile has a glue strength of 1. This is to give the interior of the assembly a place to bind.
 +
 
===Y-Axis tiles===
 
===Y-Axis tiles===
 +
 
#The '''Y''' tiles will bond to the Northern edge of the '''SEED''' and will represent the ''y'' axis. The '''Y''' tile will have the same values as the '''X''' tile but rotated 90 degrees clock wise. When you need to create a new tile in TAS that is a rotation of a tile you've already made there is a convenient shortcut you can use.  
 
#The '''Y''' tiles will bond to the Northern edge of the '''SEED''' and will represent the ''y'' axis. The '''Y''' tile will have the same values as the '''X''' tile but rotated 90 degrees clock wise. When you need to create a new tile in TAS that is a rotation of a tile you've already made there is a convenient shortcut you can use.  
 
#Copy and paste the '''X''' tile that is in your Tiletype editor. The new tile should have a name of '''X(2).''' Right click '''X(2)''' and select ''Rotate(CW) -> 90 degrees.''  
 
#Copy and paste the '''X''' tile that is in your Tiletype editor. The new tile should have a name of '''X(2).''' Right click '''X(2)''' and select ''Rotate(CW) -> 90 degrees.''  
 
#After you change the name of '''X(2)''' to '''Y''' the attributes of your '''Y''' tile will be as follows:
 
#After you change the name of '''X(2)''' to '''Y''' the attributes of your '''Y''' tile will be as follows:
#*Name: Y
+
[[File:Y_axis_Sierpinski_Triangle.PNG|thumb|center|alt=SEED|Y tile.]]
#*Label:
+
At this point it is a good idea to load '''SEED''', '''X''', and '''Y''' into the Simulation Window and make sure they assemble as expected. It should look like this: [[File:Serpenski base.jpg|thumb|center|alt=SEED|Serpenski Base.]]
#*North: Strength = 2, Label = 2
+
 
#*East:  Strength = 1, Label = 1
 
#*South: Strength = 2, Label = 2
 
#*West:  Strength = 0, Label = 0
 
#*Tile Color: Red
 
#*Text Color: Default
 
#*Display: Default
 
At this point it is a good idea to load '''SEED''', '''X''', and '''Y''' into the Simulation Window and make sure they assemble as expected. It should look like this: <insert picture>
 
 
===Sierpinski Triangle tiles===
 
===Sierpinski Triangle tiles===
#There are four more tiles to define. To build the Sierpinski triangle we can think about the next four tiles in terms of a double input XOR gate<link>. The two unique input edges of the tile are along the West and South edges, while the output will be expressed along the North and East edges.  
+
#There are four more tiles to define. To build the Sierpinski triangle we can think about the next four tiles in terms of a double input [http://en.wikipedia.org/wiki/XOR_gate XOR gate]. The two unique input edges of the tile are along the West and South edges, while the output will be expressed along the North and East edges. All of the glues created in this step should be of strength 1.
{| class="wikitable" style="text-align:center; width:200px; height:200px;"
 
|+ XOR LOGIC
 
|-
 
!Input
 
!Output
 
|-
 
!00
 
|0
 
|-
 
!01
 
|1
 
|-
 
!10
 
|1
 
|-
 
!11
 
|0
 
|}
 
 
<ol start="2">
 
<ol start="2">
 
<li>
 
<li>
Using the skills you learned to create the '''SEED''', '''X''', & '''Y''' tiles to make the last four tiles that can express the values in the above table.  
+
Use the skills you learned to create '''SEED''', '''X''', and '''Y''' to make the last four tiles that express the logic in the XOR to Tiles picture.
 +
[[File:Four_xor_gate_tiles.png|thumb|center|upright=2.0|alt=SEED|XOR to Tiles.]]
 
</li>
 
</li>
 
<li>
 
<li>
Finally, load the current tile set into the simulator, place a '''SEED''' tile and and fast forward the assembly. Your results should look like this: <link picture>
+
Finally, load the current tile set into the simulator, place a '''SEED''' tile and fast forward the assembly. Your results should look like this:
 +
[[File:Tileset_Overview_Sierpinski_Triangle.PNG|thumb|center|upright=2.0|alt=SEED|Sierpinski Triangles.]]
 +
Note that the terminal assembly would actually continue infinitely far up and to the right.
 
</li>
 
</li>
 
</ol>
 
</ol>

Latest revision as of 12:52, 11 June 2019


Introduction

In this tutorial we will implement the Sierpinski triangle using TAS while it is in the Abstract Tile Assembly Model (aTAM) simulation mode. To complete this tutorial you will need to create and define seven unique tiles. Before we begin make sure you've familiarized yourself with the basics by finishing the tutorial: Your first tile assembly.

Implementation

SEED tile

  1. Open TAS. You should see the three windows that you are familiar with from previous tutorials. If there are any old assemblies still loaded in any of the three windows go ahead and make a new tile assembly. On the Simulation Window click File -> New tile assembly system.
  2. It is now time to create your SEED tile. If you've completed the TAS Your first tile assembly tutorial this will be no problem. As the name SEED suggests, this is the point from which your TAS will assemble. For now you can think of the SEED as the origin of a 2 dimensional grid.
  3. The attributes of your SEED tile will be as follows:
SEED
SEED tile.

X-Axis tiles

  1. Again, right click the Tiletype editor and click Insert New. The tile name will be X. Before you move on answer these questions:
    • For each side of X, what is the strength of the glue?
    • How will each side of the tile X be labeled?
  2. Look at the picture of the SEED tile, along the East edge there is a glue of strength 2. Recall that for this exercise we are thinking of the SEED as the origin of a graph, where the East edge represents the x axis. If we then place an X tile along the East edge of the SEED, then the Western edge of the X tile must also have a glue strength of 2. Because we want our assembly to grow indefinitely, we also give the Eastern edge of X a glue strength of 2.
  3. The attributes of your X tile will be as follows:
SEED
X tile.

Notice that the North edge of the X tile has a glue strength of 1. This is to give the interior of the assembly a place to bind.

Y-Axis tiles

  1. The Y tiles will bond to the Northern edge of the SEED and will represent the y axis. The Y tile will have the same values as the X tile but rotated 90 degrees clock wise. When you need to create a new tile in TAS that is a rotation of a tile you've already made there is a convenient shortcut you can use.
  2. Copy and paste the X tile that is in your Tiletype editor. The new tile should have a name of X(2). Right click X(2) and select Rotate(CW) -> 90 degrees.
  3. After you change the name of X(2) to Y the attributes of your Y tile will be as follows:
SEED
Y tile.

At this point it is a good idea to load SEED, X, and Y into the Simulation Window and make sure they assemble as expected. It should look like this:

SEED
Serpenski Base.

Sierpinski Triangle tiles

  1. There are four more tiles to define. To build the Sierpinski triangle we can think about the next four tiles in terms of a double input XOR gate. The two unique input edges of the tile are along the West and South edges, while the output will be expressed along the North and East edges. All of the glues created in this step should be of strength 1.
  1. Use the skills you learned to create SEED, X, and Y to make the last four tiles that express the logic in the XOR to Tiles picture.
    SEED
    XOR to Tiles.
  2. Finally, load the current tile set into the simulator, place a SEED tile and fast forward the assembly. Your results should look like this:
    SEED
    Sierpinski Triangles.

    Note that the terminal assembly would actually continue infinitely far up and to the right.