diff --git a/src/geomtree/affine_transform.py b/src/geomtree/affine_transform.py
index fc4f30e0543ab4f9b78972201069995247256754..eb6b87b532d761eaa1798598ce216568165a78ef 100644
--- a/src/geomtree/affine_transform.py
+++ b/src/geomtree/affine_transform.py
@@ -8,7 +8,7 @@ from visu_core.vtk.actor import vtk_actor
 from visu_core.vtk.polydata import face_scalar_property_polydata
 
 from scipy.spatial.transform import Rotation as R
-from scipy.linalg import svd, inv
+from scipy.linalg import svd, inv, det
 from scipy.stats import chi2
 
 class AffineTransform(object):
@@ -194,4 +194,12 @@ def random_transform(translation=True,scale=True,rotation=True):
     tf.set_parameters(t,rot.as_matrix() @ np.diag(s))
     return tf
 
-#-----------------------------------------------------#
\ No newline at end of file
+#-----------------------------------------------------#
+
+def hellinger_distance(tf1,tf2):
+    t1 = tf1.translation
+    t2 = tf2.translation
+    sig1 = tf1.get_covariance_matrix()
+    sig2 = tf2.get_covariance_matrix()
+    sigm = (sig1+sig2)/2
+    return 1 - (det(sig1)*det(sig2))**(1/4) / det(sigm)**(1/2)*np.exp((-1/8) * np.transpose(t1 - t2) @ inv(sigm) @ (t1 - t2))
\ No newline at end of file