and here is one for touching circles:

```
import rhinoscriptsyntax as rs
import random
import math
def touching_circles():
circle = rs.GetObject("select starting circle",4)
if not circle:
print ("without giving me a circle what do you expect?")
return
if not rs.IsCircle(circle):
print ("did you try to fool me?")
return
radius = rs.CircleRadius(circle)
if radius<2.0:
print ("Your circle is to small for this task.")
return
while radius>2.0:
radius-=1
center = rs.CircleCenterPoint(circle)
circle = rs.AddCircle(center, radius)
angle = random.random()*2*math.pi
x = math.sin(angle)
y = math.cos(angle)
trans=(x,y,0)
rs.MoveObject(circle, trans)
touching_circles()
```

and one for spiraling circles:

```
import rhinoscriptsyntax as rs
import random
import math
def spiraling_circles():
circle = rs.GetObject("select starting circle",4)
if not circle:
print ("without giving me a circle what do you expect?")
return
if not rs.IsCircle(circle):
print ("did you try to fool me?")
return
radius = rs.CircleRadius(circle)
if radius<2.0:
print ("Your circle is to small for this task.")
return
angle = 0
while radius>2.0:
radius-=1
center = rs.CircleCenterPoint(circle)
circle = rs.AddCircle(center, radius)
angle+= math.pi/7
x = math.sin(angle)
y = math.cos(angle)
trans=(x,y,0)
rs.MoveObject(circle, trans)
spiraling_circles()
```