is this anything close to the supplied function:
for(float elevation, iteration, scale, waveHeight, positionModifier, globalOffset, horizontalDisplacement; iteration < 90.; offsetIncrement = .01 - .02 / exp(max(scale, elevation) * 3000.) / horizontalDisplacement) {
vec3 point = vec3((frameCoordinates.xy - .5 * resolution) / resolution.y * globalOffset 2., globalOffset);
point.zy *= rotate2D(.5);
elevation = point.y;
horizontalDisplacement = elevation point.x * .3; point.z = time; // Assuming 't' is a time variable
for(scale = .6; scale > .001; scale *= .7) {
point.xz *= rotate2D(5.);
positionModifier = (point.x point.z) / scale time time;
elevation -= waveHeight = exp(sin(positionModifier) - 3.) * scale;
horizontalDisplacement = abs(dot(sin(point.xz / scale * .3) * scale, resolution / resolution));
}
globalOffset = elevation = min(elevation, horizontalDisplacement * .5 - 1.); }