static public boolean isColliding(math.Supportable lhs, math.Supportable rhs){
        List<Vector3f> simplex = new java.util.ArrayList<Vector3f>();
        Vector3f support = getSupport(lhs,rhs,Vector3f.UNIT_X);
        simplex.add(support);
        Vector3f direction = support.negate();
        int loopCounter = 0;
        // If A is in the same direction as we were heading, then we haven't crossed the origin,
        // so that means we can't get to the origin
        while((support = getSupport(lhs,rhs,direction)).sameDirection(direction)){
            simplex.add(support);
            
            if(loopCounter > MAX_ITTERATIONS)
                break;
            
            // If the simplex has enclosed the origin then the two objects are colliding
            if(containsOrigin(simplex))
                return true;
            
            direction = findSimplex(simplex);
            
            // If our dot product gave us the zero vector, our vectors must be colinear and we contain the origin and further test will break
            if (direction.equals(Vector3f.ZERO))
                return true;
        }
        return false;
    }