docstr: Logs a mesh as an asset
  
  Args:
  tag: Data identifier
  vertices: List of the 3D coordinates of vertices.
  colors: Colors for each vertex
  faces: Indices of vertices within each triangle.
  config_dict: Dictionary with ThreeJS classes names and configuration.
  step: step value to record
  walltime: Optional override default walltime (time.time())
      seconds after epoch of event
docstr_tok: ["Logs","a","mesh","as","an","asset","Args",":","tag",":","Data","identifier","vertices",":","List","of","the","3D","coordinates","of","vertices",".","colors",":","Colors","for","each","vertex","faces",":","Indices","of","vertices","within","each","triangle",".","config_dict",":","Dictionary","with","ThreeJS","classes","names","and","configuration",".","step",":","step","value","to","record","walltime",":","Optional","override","default","walltime","(","time.time","(",")",")","seconds","after","epoch","of","event"]
code: def log_mesh(
      self, tag, vertices, colors, faces, config_dict, step, walltime
  ):
      """Logs a mesh as an asset
  
      Args:
      tag: Data identifier
      vertices: List of the 3D coordinates of vertices.
      colors: Colors for each vertex
      faces: Indices of vertices within each triangle.
      config_dict: Dictionary with ThreeJS classes names and configuration.
      step: step value to record
      walltime: Optional override default walltime (time.time())
          seconds after epoch of event
      """
      mesh_json = {}
      mesh_json["tag"] = tag
      mesh_json["vertices"] = vertices.tolist()
      mesh_json["colors"] = colors.tolist()
      mesh_json["faces"] = faces.tolist()
      mesh_json["config_dict"] = config_dict
      mesh_json["walltime"] = walltime
      mesh_json["asset_type"] = "mesh"
      mesh_json = json.dumps(mesh_json)
      self.log_asset_data(mesh_json, tag, step=step)
  
imports: import logging
  import json
  import functools
  from io import BytesIO
  from google.protobuf.json_format import MessageToJson
  import numpy
  from .summary import _clean_tag
label_desc: Use image node_id 16 for calling the CometLogger obj's underlying member method code with example usage: obj.log_mesh(tag, vertices, colors, faces, config_dict, step, walltime) without return types