code: def geometry_hash(geometry):
      
      if hasattr(geometry, 'md5'):
          # for most of our trimesh objects
          md5 = geometry.md5()
      elif hasattr(geometry, 'tostring'):
          # for unwrapped ndarray objects
          md5 = str(hash(geometry.tostring()))
  
      if hasattr(geometry, 'visual'):
          # if visual properties are defined
          md5 += str(geometry.visual.crc())
      return md5
docs: Get an MD5 for a geometry object
  
      Parameters
      ------------
      geometry : object
  
      Returns
      ------------
      MD5 : str