   pR(p.yz, 1.);
   p += vec3(.0, .0, a * .1);
   res = opU(res, vec2(sdBloodCell(opRep(p, vec3(3.))), 54.));
-/*
-  // manual repeat, slow AF
-  for (int x = 0; x < 2; x++) {
-    for (int y = 0; y < 2; y++) {
-      vec3 thisPos = repeated + vec3(x, y, x + int(mod(float(y * 4), 5.)));
-      pR(thisPos.xy, float(x + y));
-
-      res = opU(
-        res,
-        vec2(sdBloodCell(thisPos), 54.)
-      );
-    }
-  }
-  */
-  // TODO start value??
-  /*
-  vec2 res = vec2(0.2, 54.);
-
-  // manual repeat, slow AF
-  for (int x = 0; x < 2; x++) {
-    for (int y = 0; y < 2; y++) {
-      vec3 thisPos = repeated + vec3(x, y, x + int(mod(float(y * 4), 5.)));
-      pR(thisPos.xy, float(x + y));
-
-      res = opU(
-        res,
-        vec2(sdBloodCell(thisPos), 54.)
-      );
-    }
-  }
-  */
 
   return res;
-
-/*
-
-  pR(p.xy, p.x * 0.1);
-
-  vec3 repeated =
-    opRep(
-      p + vec3(.0, .0, e + a),
-      vec3(1.2)
-    );
-    // TODO: tweak parameters
-
-  //repeated = opTwist(repeated);
-  //repeated.xy = pR(repeated.xy, a);
-  //repeated =
-  //pR(p.xz, a);
-
-  return vec2(sdBloodCell(repeated), 54.);
-  */
-}
-
-/*
-float sdTunnelThingPlasma(vec3 p) {
-  return (cos(p.x) + sin(p.y) + sin(p.z)) / 20. * (sin(a / 20.) + 2.);
-}
-*/
-
+}
 
 vec2 bloodVein(vec3 pos) {
   return vec2(


float PI = 3.14;

float smin( float a, float b, float k ) {
  return -log(exp( -k*a ) + exp( -k*b ))/k;
}

/*
float sdPlane(vec3 p) {
  return p.y;
}
*/

float sdSphere(vec3 p, float s) {
  return length(p)-s;
}

float sdBox( vec3 p, vec3 b )
{
  vec3 d = abs(p) - b;
  return min(max(d.x,max(d.y,d.z)),0.0) + length(max(d,0.0));
}

/*
float udBox( vec3 p, vec3 b ) {
  return length(max(abs(p)-b,.0));
}
*/

/*
float sdBlob2(vec3 p, vec2 t) {
  //return sqrt(p.x*p.x*.125 + p.y*p.y + p.z*p.z*.125) - .1;
  float P = .2;
  float Q = .1;
  return -pow(p.x*p.x + p.y*p.y, 2.) + P * (p.x*p.x + p.y*p.y) + Q * p.z*p.z + .1;
}
*/

/*
float sdBloodCell(vec3 p) {
  return pow(p.x*p.x + p.z*p.z, 2.) -.15 * (p.x*p.x + p.z*p.z) + 1.275 * p.y*p.y -.001;
}
*/


float sdBloodCell(vec3 p) {
  float d1 = length(vec2(length(p.xz)-.3,p.y)) - .1;

  );
}

// SCENES

vec2 scene0(vec3 pos) {
  return opBlend(
    bloodVein(pos),
    bloodCellField(pos),
    9.
  );
}

vec2 scene1(vec3 pos) {
  return opU(
    heart(pos),
    bloodCellField(pos)
  );
}

vec2 scene2(vec3 pos) {
  // Blood cell thing
