Coldfire posted a nice example of a ripple effect. Using a similar method of averaging (smoothing) the points of a grid over time, one can make a surface that kinda behaves like a gel or cloth or stretchable rubber. What I like about this example is, if you increase the frequencey of the disturbances, the whole mesh will eventually stretch out of shape:
rem cloth/rubber/gel like effect
rem based on a ripple effect by coldfire
rem by latch
rem 11/05/2008
set display mode 800,600,32
sync on
sync rate 40
autocam off
hide mouse
matx#=2000
matz#=2000
tilex=40
tilez=40
mat=1
set camera range 1,10000
make matrix mat,matx#,matz#,tilex,tilez
randomize matrix 1,200
position camera matx#/2,1000,-700
point camera matx#/2,0,matz#/2
do
text 0,0,str$(screen fps())
ht=rnd(1800)-9800
if rnd(100) < 11
set matrix height mat,rnd(tilex-2)+1,rnd(tilez-2)+1,ht
endif
for z=1 to tilez-1
for x=1 to tilex-1
avg#=(get matrix height(mat,x-1,z)+get matrix height(mat,x+1,z)+get matrix height(mat,x,z-1)+get matrix height(mat,x,z+1))/4
set matrix height mat,x,z,avg#
next x
next z
update matrix 1
sync
loop
end
Enjoy your day.