diff --git a/stl_atributes.py b/stl_atributes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6f1d4e202814d363f33846cef3f3c3f1ecffeb20
--- /dev/null
+++ b/stl_atributes.py
@@ -0,0 +1,109 @@
+#Pyvista information from stl file 
+import pyvista as pv
+# operating system import
+import os
+from scipy import misc
+from mpl_toolkits import mplot3d
+from matplotlib import pyplot as plt
+import pyvista
+
+test_list = ["SMAT",\
+             ]
+# file path
+file_path = os.getcwd()+os.sep+"data"
+# file path
+result_path = os.getcwd()+os.sep+"results"
+if os.path.isdir(result_path) == False :
+    os.mkdir(result_path)
+name = 'Surface'
+# post processing loop
+for i,m in enumerate(test_list) :
+    # TRA filename
+    filename = m + ".stl"
+    tata = pv.read(file_path+os.sep+filename)
+
+#Printing and saving stl parameters
+    cells = tata.n_cells
+    points = tata.n_points
+    bounds = tata.bounds
+    arrays = tata.n_arrays
+
+    print(tata.n_cells)
+    print(tata.n_points)
+    print(tata.bounds)
+    print(tata.n_arrays)
+    print(tata.area)
+
+#show surface with metallic attributes for a clearer view and roughness signaling 
+tata.plot(cpos='xy', cmap='plasma', pbr=True, metallic=1.0, roughness=0.3,
+          zoom=0.7, text='SMATed surface',return_cpos=False, hidden_line_removal= True, anti_aliasing=True)
+
+#Filter to obtain curvature values of the surface for further treatment into values of 0 and 1.
+tata_filtered= tata.plot_curvature(curv_type='gaussian', smooth_shading=True,
+                          clim=[0, 1])
+Gaus = tata.get_array('Gaussian Curvature')
+print(Gaus)
+
+
+#Locate the arrays inside the PolyData, this provides the arrays containing values of scalars, normals
+#faces and points.
+print(tata.array_names)
+#printing the array founded and saving it as a tuple inside a callable variable 
+choc = tata.get_array('Normals')
+tata.save('tata.vtk')
+
+#Data range, min,max given
+tata_r = tata.get_data_range()
+
+#Edges showing in red
+tata.plot_boundaries(line_width=5)
+choc= choc.plot_curvature(curv_type='gaussian', smooth_shading=True,
+                          clim=[0, 1])
+
+#Make a plane figure with edges planed, erased the edges due to the high aglomeration
+#In this model we can see how the values change along the plane
+projected = tata.project_points_to_plane()
+ projected.plot(show_edges=False, line_width=0.3)
+
+#Code to show the mesh that composes the figure
+    mesh = tata
+    mesh.point_data.clear()
+    centers = mesh.cell_centers()
+    pl = pyvista.Plotter() 
+    actor = pl.add_mesh(mesh, show_edges=False)
+    actor = pl.add_points(centers, render_points_as_spheres=True,
+                          color='red', point_size=10)
+    pl.show()
+    
+#Code to show the elevation in the Z plane
+    tata_elv = tata.elevation()
+    print(tata_elv)
+    tata_elv.plot(smooth_shading=True)
+# Calculate de distance of entitites from a plane in the middle, doesnt stays in the middle the plane
+plane = pv.Plane()
+_ = tata.compute_implicit_distance(plane, inplace=True)
+dist = tata['implicit_distance']
+type(dist)
+pl = pv.Plotter()
+_ = pl.add_mesh(tata, scalars='implicit_distance', cmap='bwr')
+_ = pl.add_mesh(plane, color='w', style='wireframe')
+pl.show()
+merged = tata.merge(plane)
+merged.plot(style='wireframe',color='tan')
+ow = tata.overwrite(plane)
+merged.plot(style='wireframe',color='tan')
+
+
+
+#Interpolation of our data in a mesh
+pdata = pyvista.PolyData(tata)
+plane = pyvista.Plane()
+plane.clear_data()
+plane = plane.interpolate(pdata, sharpness=3)
+pl = pyvista.Plotter()
+_ = pl.add_mesh(pdata, render_points_as_spheres=True, point_size=50)
+_ = pl.add_mesh(plane, style='wireframe', line_width=5)
+pl.show()
+
+# Normal ploting
+tata.plot_normals(mag=0.1,faces=False, show_edges=False)
\ No newline at end of file