diff --git a/main.py b/main.py
index 6a757a5d5c56755c43a20f8c9245181a6ae2bc01..f2b288a18eec2e0691b881555c112af141caeac7 100644
--- a/main.py
+++ b/main.py
@@ -3,8 +3,9 @@ from utils.files import output
 from utils.files.input import ScannedObject
 from utils.math.position_manipulation import verticalise
 from utils.graph3D.visplot_render import render3D
+import time
 
-def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
+def get_raw_data(obj:ScannedObject, ndigits:int, delta_z:int = 1)->dict:
     """
     Calculates data from the given object
 
@@ -23,7 +24,7 @@ def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
     data = {}
     for colone in colones:
         data[colone] = []
-    for discrete_values in obj.get_discrete_vertices():
+    for discrete_values in obj.get_discrete_vertices(delta_z):
         mean_x ,mean_y, mean_z = data_extraction.get_x_y_z_mean(discrete_values)
         for x,y,z in discrete_values:
             data["X (en mm)"].append(round(x, ndigits))
@@ -35,7 +36,7 @@ def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
             data["Yi-Ymoy"].append(round(y-mean_y, ndigits))
     return data
 
-def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
+def get_discrete_data(obj:ScannedObject, ndigits:int,delta_z:int= 1)->dict:
     """
     Calculates data from the given object
 
@@ -52,7 +53,7 @@ def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
     data = {}
     for colone in colones:
         data[colone] = []
-    for discrete_values in obj.get_discrete_vertices():
+    for discrete_values in obj.get_discrete_vertices(delta_z):
         x,y,z = data_extraction.get_x_y_z_mean(discrete_values)
         data["X moy (en mm)"].append(round(x, ndigits))
         data["Y moy (en mm)"].append(round(y, ndigits))
@@ -66,12 +67,26 @@ def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
 
 def main():
     # Create an object from the given file
+    total_time = time.time()
+    print("Loading file...")
+    t = time.time()
     obj = ScannedObject.from_obj_file("datasets/Barette/1 - BARETTE.obj")
+    print("File loaded in {} seconds".format(time.time()-t))
+    t = time.time()
+    print("Verticalising object...")
     verticalise(obj)
+    print("Object verticalised in {} seconds".format(time.time()-t))
+    t = time.time() 
+    print("Normalising object...")
     obj.normalise()
+    print("Object normalised in {} seconds".format(time.time()-t))
 
     # Calculate raw data and save it in a file
-    data = get_raw_data(obj, 6)
+    t = time.time()
+    data = get_raw_data(obj, 6,2)
+    print("Raw data calculated in {} seconds".format(time.time()-t))
+    t = time.time()
+    print("Saving data...")
     output.save_output_file('analyse_brute.txt',
                              output.format_data(data,
                                                 '\t',
@@ -82,9 +97,15 @@ def main():
                                                 "rayon (en mm)",
                                                 "Xi-Xmoy",
                                                 "Yi-Ymoy"] ))
-
+    print("Data saved in {} seconds".format(time.time()-t))
+    
     # Calculate discrete data and save it in a file
-    data = get_discrete_data(obj, 6)
+    t = time.time()
+    print("Calculating discrete data...")
+    data = get_discrete_data(obj, 6,2)
+    print("Discrete data calculated in {} seconds".format(time.time()-t))
+    t = time.time()
+    print("Saving data...")
     output.save_output_file('analyse_rayon.txt',
                              output.format_data(data,
                                                 '\t',
@@ -94,6 +115,8 @@ def main():
                                                 "Delta z(en mm)",
                                                 "Rayon moyen (en mm)",
                                                 "Rayon ecart type (en mm)"] ))
+    print("Data saved in {} seconds".format(time.time()-t))
+    print("Total time : {} seconds".format(time.time()-total_time))
 
 if __name__ == '__main__':
     main()
\ No newline at end of file
diff --git a/utils/files/output.py b/utils/files/output.py
index 3eca9abca6b4a4369bd4aca75c198f6a4b7dfc1e..ec1f1aba7adaff5a6592cb7c24cd01edcc9d06a5 100644
--- a/utils/files/output.py
+++ b/utils/files/output.py
@@ -32,7 +32,7 @@ def format_data(data:dict, separator:str, selected_columns:list = None) -> str:
     output += '\n'
     for i in range(len(data[selected_columns[0]])):
         for column in selected_columns:
-            output += str(data[column][i]).ljust(len(column)) + separator
+            output += str(data[column][i]).ljust(len(column) if len(column) > 6 else 7 ) + separator
         output += '\n'
     return output
 
diff --git a/utils/graph2D/visplot_render.py b/utils/graph2D/visplot_render.py
index 86627b172d37bacf4fd527c604d9603807be574d..81e2c2248d5e3e53649f5ca3655cb310449a2672 100644
--- a/utils/graph2D/visplot_render.py
+++ b/utils/graph2D/visplot_render.py
@@ -1,8 +1,6 @@
 import vispy.plot as vp
 import numpy as np
 
-
-
 def render2D(values:list):
     fig = vp.Fig(size=(600, 500), show=False)
     plotwidget = fig[0, 0]
@@ -11,7 +9,6 @@ def render2D(values:list):
     plotwidget.colorbar(position="top", cmap="autumn")
     fig.show(run=True)
 
-
 def cross_section(x:list,y:list):
     color = (0.3, 0.5, 0.8)
     fig = vp.Fig(show=False)
diff --git a/utils/graph3D/visplot_render.py b/utils/graph3D/visplot_render.py
index d2cd0f24021018cb49a43ee2424a12b8c7382ec8..9392ee9a5ce93f73dbecd9a75240cbbc3396bc5a 100644
--- a/utils/graph3D/visplot_render.py
+++ b/utils/graph3D/visplot_render.py
@@ -1,7 +1,6 @@
 import numpy as np
 from vispy import app, scene
 from vispy.scene.visuals import Mesh
-from vispy.scene import transforms
 from vispy.visuals.filters import ShadingFilter, WireframeFilter
 from utils.files.input import ScannedObject