     int steps = 0;
     float nrj = 0;
 
-    for(int i = 0; i < 20 ; i++)
+    for(int i = 0; i <20 ; i++)
     {
         nearestDistance(marchingRay.origin, currentStep);
         currentStep -= 1.1;

        marchedDistance += currentStep;
        steps++;
        nrj = energySum(marchingRay.origin);
        if(nrj > THRESHOLD )
            break;
    }
    currentStep = 0.9;
    direction -1;
    for(int i = 0; i < 1 ; i++)
    {
        marchingRay.origin += currentStep * marchingRay.direction * direction;
        marchedDistance += currentStep;
        nrj = energySum(marchingRay.origin);
    }
//
//    if(nrj <= THRESHOLD)
//        return false;

    normal = vec3(nrj);
    return true;

}


float energy(in vec3 position, in int sphere)
{
    return (-1)*(smoothstep(0, 4, dist(position, sphere) - blobs[sphere].radius) - 1.03);
//    float d = dist(position, sphere);
//    if(d > 2*blobs[sphere].radius)
//        return 0;
