@Rii - well, it didn't work quite right, but on the plus side, it did produce a really pretty pattern:
sync on
nc on
on
n
sync rate 40
nc rate 40
rate 40
ate 40
e 40
40
texture object 5,2
xture object 5,2
ure object 5,2
e object 5,2
object 5,2
ject 5,2
ct 5,2
5,2
,2
elasticity#=0.2
asticity#=0.2
ticity#=0.2
city#=0.2
ty#=0.2
#=0.2
0.2
2
a=5
5
b=5
5
damping#=0.7
mping#=0.7
ing#=0.7
g#=0.7
=0.7
.7
set matrix tile 1,z,x,tile
t matrix tile 1,z,x,tile
matrix tile 1,z,x,tile
trix tile 1,z,x,tile
ix tile 1,z,x,tile
tile 1,z,x,tile
ile 1,z,x,tile
e 1,z,x,tile
1,z,x,tile
z,x,tile
x,tile
tile
le
v#(obnum(x,z))=v#(obnum(x,z))*damping#
(obnum(x,z))=v#(obnum(x,z))*damping#
bnum(x,z))=v#(obnum(x,z))*damping#
um(x,z))=v#(obnum(x,z))*damping#
(x,z))=v#(obnum(x,z))*damping#
,z))=v#(obnum(x,z))*damping#
))=v#(obnum(x,z))*damping#
=v#(obnum(x,z))*damping#
#(obnum(x,z))*damping#
obnum(x,z))*damping#
num(x,z))*damping#
m(x,z))*damping#
x,z))*damping#
z))*damping#
)*damping#
damping#
mping#
ing#
g#
@Nick: the first token$ command returns the first part of a string up until the first instance of the character(s) you choose - in my case, a colon. The next token$ command returns the part of the string between the last point it found, and the next instance of that character. Pretty handy. Check out the other string parsing commands there are in the undocumented commands thread.