 }
 
 float dist_icosa(vec3 pos, float scale) {
+    if (scale > 3.5) return -16.0;
     scale *= 0.5;
     float dist = dot(pos, vec3(0.14907, -0.45879, -0.63148)) - scale;
     dist = max(dist, dot(pos, vec3(-0.39027, -0.28355, -0.63148)) - scale);

const float HIGHLIGHT_BRIGHTNESS = 0.75;

float dist_sphere(vec3 pos, float scale) {
    scale *= 0.675;
    return length(pos) - scale;
}

float dist_tetra(vec3 pos, float scale) {
    scale *= 0.25;
    float dist = dot(pos, vec3(0.0, -1.0, 0.0)) - scale;
    dist = max(dist, dot(pos, vec3(0.81650615, 0.33330014, 0.47141153)) - scale);

}

float dist_dodeca(vec3 pos, float scale) {
    if (scale > 3.5) return -16.0;
    scale *= 0.6317063;
    float dist = dot(pos, vec3(0.0, 0.0, 1.0)) - scale;
    dist = max(dist, dot(pos, vec3(0.27639428, -0.8506485, 0.44721735)) - scale);
