     	  continue;
       }
 
+      vec3 spherePos = vec3(0.0, 0.0, 0.0);
+      float sphereRad = 1.0;
+
       // lighting
       vec3 p2 = cameraPos + dist * worldDir;
       vec3 K_a = vec3(0.35, 0.35, 0.35);
       vec3 K_d = vec3(0.6, 0.6, 0.6);
       vec3 K_s = vec3(1.0, 1.0, 1.0);
+      if (p2.y < 0.0) {
+        K_d = vec3(0.5, 0.5, 0.6);
+      } else if (p2.y < 1.5) {
+        K_a = vec3(0.5, 0.5, 0.5);
+        K_d = vec3(1.0, 1.0, 1.0);
+      } else {
+        K_a = vec3(0.35, 0.15, 0.15);
+        K_d = vec3(1.0, 0.4, 0.4);
+      }
       float shininess = 10.0;
       final += phongIllumination(K_a, K_d, K_s, shininess, p2, cameraPos);
 

  return max(a, -b);
}

mat4 rotateY(float theta){
  float c = cos(theta);
  float s = sin(theta);

  );
}

mat4 translateX(float dist){
  return mat4(
    vec4(1, 0, 0, dist),
    vec4(0, 1, 0, 0),
    vec4(0, 0, 1, 0),
    vec4(0, 0, 0, 1)
  );
}

float sdH2O(vec3 p){
  vec3 h = (vec4(p, 1.0) * translateY(-0.96 - .6 - .53)).xyz;
  vec3 o1 = (vec4(p, 1.0) * translateX(1.85) * translateY(-0.63)).xyz;
  vec3 o2 = (vec4(p, 1.0) * translateX(-1.85) * translateY(-0.63)).xyz;
  vec3 bond1 = (vec4(p, 1.0) * translateY(-1.35) * translateX(0.95) * rotateZ(-0.911)).xyz;
  vec3 bond2 = (vec4(p, 1.0) * translateY(-1.35) * translateX(-0.95) * rotateZ(0.911)).xyz;
  return sdUnion(sdUnion(sdUnion(sdUnion(
    sdSphere(h, 0.6),
    sdSphere(o1, 0.53)),
    sdSphere(o2, 0.53)),
    sdCappedCylinder(bond1, 0.05, 1.0)),
    sdCappedCylinder(bond2, 0.05, 1.0)
  );
}

float sdScene(vec3 p) {
  vec3 floorPoint = (vec4(p, 1.0) * translateY(0.5)).xyz;
  float sceneFloor = sdBox(floorPoint, vec3(5.0, 0.1, 5.0));
  vec3 h2oPos = (vec4(p, 1.0) * rotateY(sin(iTime))).xyz;
  return sdUnion(
    sceneFloor,
    sdH2O(h2oPos)
  );
}

