code: def get_vertices_and_faces(
      obj: bpy.types.Object,
  ) -> Tuple[np.ndarray, np.ndarray]:
      """Get arrays of vertices and faces for a given blender mesh object.
  
      WARNING: only works on triangulated meshes (no polygons with > 3 sides)
  
      Args:
        obj: Blender mesh object
  
      Returns:
        vertices: numpy array of vertex positions shape=(n_vertices, 3) dtype=float64
        faces: numpy array of triangles as vertex indices shape=(n_faces, 3) dtype=int64
      """
      if not isinstance(obj.data, bpy.types.Mesh):
          raise ValueError(
              f"Expected mesh object, but got {obj.name!r} which is {obj.type!r}"
          )
      bmesh = obj.data
      vertices = np.array([v.co for v in bmesh.vertices])
      faces = np.array(
          [
              list(p.vertices)
              for p in bmesh.polygons
              if len(p.vertices) > 2
          ]
      )
      return vertices, faces
  
imports: import contextlib
  import copy
  import functools
  import sys
  from typing import Dict, Sequence, Tuple, Union
  import numpy
  import OpenEXR
  import Imath
  import sklearn.utils
  import trimesh
  from kubric import core
  from kubric.kubric_typing import AddAssetFunction, ArrayLike
  from kubric.redirect_io import RedirectStream
  from kubric.safeimport.bpy import bpy
label_desc: Use image node_id 13 for calling a global function with example usage: get_vertices_and_faces(obj) and returns: vertices,  faces