protected boolean setStartDirection() {
        if (downIsFree && !rightIsFree) { // DOWN free
            moveDirection = DOWN;
            checkDirection = RIGHT;
        }
        else if (rightIsFree && !upIsFree) { // RIGHT free
            moveDirection = RIGHT;
            checkDirection = UP;
        }
        else if (upIsFree && !leftIsFree ) { // UP free
            moveDirection = UP;
            checkDirection = LEFT;
        }

        else if (leftIsFree && !downIsFree) { // LEFT free
            moveDirection = LEFT;
            checkDirection = DOWN;
        }
        else {
            // we have hit a isolated pixel
            /*
            PApplet.println("pixel index: "+current);

            String l =  leftIsFree ? " " : "X";
            String r =  rightIsFree ? " " : "X";
            String u =  upIsFree ? " " : "X";
            String d =  downIsFree ? " " : "X";

            PApplet.println("[ ][" + u + "][ ]");
            PApplet.println("["+l+"][C]["+r+"]");
            PApplet.println("[ ]["+d+"][ ]");
            */

            return false;
        }
        return true;

    }