diff --git a/src/geomtree/affine_transform.py b/src/geomtree/affine_transform.py
index c4bcd205de0398d6efb5fdfc0a4c4b865ff4b1ca..a956a340da068dd8f107fa21916bde9d1d84ea18 100644
--- a/src/geomtree/affine_transform.py
+++ b/src/geomtree/affine_transform.py
@@ -95,12 +95,12 @@ class AffineTransform(object):
         from visu_core.vtk.actor import vtk_actor
         from visu_core.vtk.polydata import face_scalar_property_polydata
 
-        #TODO : doc + correct scale (in visu_core)
+        #TODO : doc
         qr = np.sqrt(chi2.ppf(alpha, 3))
         T = self.linear
         u,s,_ = svd(T @ T.T)
         tensor = u @ np.diag(np.sqrt(s)) @ u.T
-        actors = [ellipsoid_primitive(self.translation,tensor, opacity=opacity, scale=2*qr, color=color)]
+        actors = [ellipsoid_primitive(self.translation,tensor, opacity=opacity, scale=qr, color=color)]
         if axis==True:
             actors+=[affine_frame_primitive(origin=self.translation, axes=qr * self.linear.T, lw=5)]
         if box==True:
@@ -229,6 +229,7 @@ def geometric_distance(tf1,tf2,alpha=0.95,epsilon=1e-6,view=True): #wip
     # Algo from "On the distance between two ellipsoids" by A. Lin and S.-P. Han
 
     import sys
+    import time
 
     def coeff(tf, c1, c2, alpha):
         T = inv(tf.linear)
@@ -261,11 +262,14 @@ def geometric_distance(tf1,tf2,alpha=0.95,epsilon=1e-6,view=True): #wip
     ### Main step
     i=1
     while True:
-        t1 = max([i for i in np.roots(coeff(tf1, c1, c2,alpha)) if 0 <= i <= 1])
-        t2 = min([i for i in np.roots(coeff(tf2, c1, c2,alpha)) if 0 <= i <= 1])
+        s1 = [i for i in np.roots(coeff(tf1, c1, c2,alpha)) if 0 <= i <= 1]
+        s2 = [i for i in np.roots(coeff(tf2, c1, c2,alpha)) if 0 <= i <= 1]
+
+        t1 = max(s1) if len(s1)>0 else 1
+        t2 = min(s2) if len(s2)>0 else 0
 
         if t2<t1:
-            print('\n')
+            #print('\n')
             return 0
 
         if view:
@@ -292,7 +296,7 @@ def geometric_distance(tf1,tf2,alpha=0.95,epsilon=1e-6,view=True): #wip
         theta2 = angle(xbar - ybar, quadratic(tf2, ybar))
 
         if theta1<epsilon and theta2<epsilon:
-            print('\n')
+            #print('\n')
             return norm(xbar-ybar)
 
         gamma1 = 1 / norm(inv(
@@ -314,5 +318,40 @@ def geometric_distance(tf1,tf2,alpha=0.95,epsilon=1e-6,view=True): #wip
             actors += tfb1.get_actor(color='b', alpha=chi2.cdf(1, 3)) + tfb2.get_actor(color='b', alpha=chi2.cdf(1,3)) + pcb.get_actor(color='b', glyph='sphere', scale=0.05) + [segment_primitive(c1, c2, color='#808080', lw=1)]
             display(actors)
 
-        sys.stdout.write('\r Iteration : %i | Angles: %i, %i' % (i,theta1,theta2))
-        i+=1
\ No newline at end of file
+        #sys.stdout.write('\rIteration : %i | Angles: %.6f, %.6f' % (i,theta1,theta2))
+        i+=1
+
+# from geomtree import *
+# from visu_core.vtk.actor import vtk_display_actors as display
+#
+# tf1 = random_transform()
+# tf2 = random_transform()
+#
+# #display(tf1.get_actor()+tf2.get_actor())
+#
+# print(geometric_distance(tf1,tf2,alpha=0.95,epsilon=1e-6,view=False))
+# print('#-------------------#')
+#
+# tf1 = AffineTransform()
+# tf1.set_parameters(translation= np.array([2.86820768,3.89143435,4.33672974]),linear=np.array([[-0.55153873,-0.16148895,-0.00088868],[-0.3521366,0.21171356,-0.01869735],[ 0.16406091, -0.08847516, -0.04311911]]))
+#
+# tf2 = AffineTransform()
+# tf2.set_parameters(translation=np.array([3.76642489, 3.60659314, 5.1294022 ]),linear=np.array([[-0.60064044, -0.02037255,  0.02495534],[-0.02739907, -0.03648569, -0.40604146],[ 0.05979144, -0.22137366,  0.06462512]]))
+#
+# display(tf1.get_actor()+tf2.get_actor())
+#
+# print(geometric_distance(tf1,tf2,alpha=0.95,epsilon=1e-6,view=False))
+# print('#-------------------#')
+#
+# tf1 = AffineTransform()
+# tf2 = AffineTransform()
+# tf2.set_parameters(np.array([1, 5, 8]), np.diag([1, 2, 3]))
+#
+# display(tf1.get_actor()+tf2.get_actor())
+#
+# print(geometric_distance(tf1,tf2,alpha=0.95,epsilon=1e-6,view=True))
+# print('#-------------------#')
+
+
+
+