 
 float terrain(vec2 p) {
     p *= 0.0013;
-    float s = 1.0;
+    float s = 1.;
     float t = 0.0;
-    for (int i = 0; i < 6; i++) {
+    for (int i = 0; i < 3; i++) {
         t += s * noi(p);
         s *= 0.5 + 0.1 * t;
         p = 0.97 * m2 * p + (t - 0.5) * 0.2;
     }
-    return t * 55.0;
-}
-
-vec2 map(vec3 pos)
-{
+    return t * 45.0;
+}
+
+vec2 map(vec3 pos) {
     float m = 0.0;
     float h = pos.y - terrain(pos.xz);
     float k = 60.0;

#define ANIMATE

uniform vec2 resolution;
uniform float time;

#else
    vec3 ro = vec3(1000.0, 250.0, 1000.0);
#endif

    vec3 ta = vec3(0.0, 0.0, 0.0);
    mat3 cam = set_camera(ro, ta, cr);

    // light
    vec3 light1 = normalize(vec3(light_x, light_y, light_z));

    // generate ray
    vec3 rd = cam * normalize(vec3(sp.xy, 1.0));

    // background
    vec3 bgcol = atmosphere(rd, vec3(0.0, PLANET_RADIUS, 0), light1, SUN_INTENSITY);

    // raymarch
    float tmin = 10.0;
