code: def noise(mesh, magnitude=None):
      
      if magnitude is None:
          magnitude = mesh.scale / 100.0
  
      random = (np.random.random(mesh.vertices.shape) - .5) * magnitude
      vertices_noise = mesh.vertices.copy() + random
  
      # make sure we've re- ordered faces randomly
      triangles = np.random.permutation(vertices_noise[mesh.faces])
  
      mesh_type = util.type_named(mesh, 'Trimesh')
      permutated = mesh_type(**triangles_module.to_kwargs(triangles))
  
      return permutated
docs: Add gaussian noise to every vertex of a mesh.
      Makes no effort to maintain topology or sanity.
  
      Parameters
      ----------
      mesh:      Trimesh object (will not be mutated)
      magnitude: float, what is the maximum distance per axis we can displace a vertex.
                 Default value is mesh.scale/100.0
  
      Returns
      ----------
      permutated: Trimesh object, input mesh with noise applied