 vec2 scene10(vec3 pos) {
   // Plasma starfield thing
   // works best with very low tmin
-  float plasma = calcPlasma(pos.x, pos.y, pos.z, a / 2.0);
-  float hue = sin(plasma) * 80.0 + a * 1.0;
+  float plasma = calcPlasma(pos.x, pos.y, pos.z, a / 2.);
+  float hue = sin(plasma) * 80. + a * 1.;
   return vec2(sdSphere(
     opRep(
       pos,
-      vec3(sin(a / 20.0) / 4.0, cos(a / 17.4) / 4.0, cos(a / 21.24) / 4.0) // WTF alternative
+      vec3(sin(a / 20.) / 4., cos(a / 17.4) / 4., cos(a / 21.24) / 4.) // WTF alternative
       //vec3(.1, .1, .1)
     ),
     //(sin(a / 15.0) + 1.0) * 0.01), hue)
-    (1.0 + sin(a + 5.0 * (pos.y + pos.x + pos.z))) * 0.01), hue // WTF alternative
+    (1. + sin(a + 5. * (pos.y + pos.x + pos.z))) * .01), hue // WTF alternative
   );
 }
 

  // Blood cell thing
  // hue 80.0 = water ish
  // hue 240.0 = green ish
  float plasmaBlood = calcPlasma(pos.x, pos.y, pos.z, a / 10.0);
  //vec2(sdSphere(pos-offs, .5 - 0.01 * sin(20.0* pos.x + 15.0*pos.y + a * 3.0)), 80.0)

  return vec2(sdBloodCell(
    opRep(
      pos,
      vec3(1.0, 1.0, 1.0)
    ),
    // TODO: tweak parameters
    vec3(-0.15, 1.275, -0.001)
  )
  // blobby surface
  + 0.0005 * sin(30.0 * pos.x) * sin(30.0 * pos.y) * sin(30.0 * pos.z) * sin(plasmaBlood),

  // color
  54.0);
}

/*
vec2 scene3(vec3 pos) {
  // virus
  vec3 offs = vec3(sin(a) / 4.0,0.75,0.0);
  return vec2(0.5 *
    sdSphere(
      pos - offs, 0.5
    )
    + 0.01 * sin(100.0 * pos.x) * sin(100.0 * pos.y) * sin(100.0 * pos.z),
    .0
  );
}

  float d1 = length(vec2(length(p.xz)-t.x*1.5,p.y)) - t.y/2.2;
  // float d2 = udBox(p,b);
  vec2 d = abs(vec2(length(p.xz),p.y)) - h;
  float d2 = min(max(d.x,d.y),.0) + length(max(d,.0));
  return smin(d1,d2,32.);
}

float PI = 3.14;

float calcPlasma(float x, float y, float z, float t) {
  // horizontal sinusoid
  float sine1 = sin(x * 10. + t * 2.);

  // rotating sinusoid
  float sine2 = sin(10. * (x * sin(t / 2.) + z * cos(t / 3.)) + t);

  // circular sinusoid
  float cx = x + .5 * sin(t / 5.);
  float cy = y + .5 * cos(t / 3.);
  float sine3 = sin(sqrt(100. * (cx * cx + cy * cy) + 1.) + t);

  float blend = sine1 + sine2 + sine3;

  //blend *= 1.0 + sin(t / 4.0) * 2.0;
  //blend *= 3.0;
  blend = sin(blend * PI / 2.) / 2. + .5;
  //blend = pow(blend, 2.0);

  return blend;
}

float sdPlasmaSphere(vec3 p, float s, float t) {
  float plasma = calcPlasma(p.x, p.y, p.z, t / 1.);

  return sdSphere(p, s) + plasma * sin(t / 20.);
}

float calcPlasma2(float x, float y, float z, float t) {
  // horizontal sinusoid
  float sine1 = sin(x * 10. + t * 2.);

  // rotating sinusoid
  float sine2 = sin(10. * (x * sin(t / 2.) + z * cos(t / 3.)) + t);

  // circular sinusoid
  float cx = x + .5 * sin(t / 5.);
  float cy = y + .5 * cos(t / 3.);
  float sine3 = sin(sqrt(100. * (cx * cx + cy * cy) + 1.) + t);

  float blend = sine1 + sine2 + sine3;

  //blend *= 1. + sin(t / 4.) * 2.;
  blend *= 3.;
  blend = sin(blend * PI / 2.) / 2.;
  //blend /= 1.;
  //blend = pow(blend, 2.);
  return blend;
}

float sdPlasma(vec3 p, float t) {
  float plasma = calcPlasma2(p.x, p.y, p.z, t / 100.);
  return plasma;
}

/*
float random(vec2 p) {
  vec2 r = vec2(
    23.14069263277926, // e^pi (Gelfonds constant)
