code: def pose_spherical(theta, phi, radius):
      c2w = trans_t(radius)
      c2w = rot_phi(phi / 180.0 * np.pi) @ c2w
      c2w = rot_theta(theta / 180.0 * np.pi) @ c2w
      c2w = (
          np.array(
              [[-1, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 1]]
          )
          @ c2w
      )
      transf = np.array(
          [
              [1, 0, 0, 0],
              [0, -1, 0, 0],
              [0, 0, -1, 0],
              [0, 0, 0, 1.0],
          ]
      )
      c2w = c2w @ transf
      return CameraPose.from_camera_to_world(c2w, unstable=True)
  
file_path: ml-neuman/utils/render_utils.py
imports: import random
  import numpy
  import torch
  import torch.nn.functional
  from pytorch3d.structures import Meshes
  from pytorch3d.renderer import RasterizationSettings, MeshRenderer, MeshRasterizer, HardPhongShader, PointLights, TexturesVertex, PerspectiveCameras
  from PIL import Image
  from cameras.camera_pose import CameraPose
  from utils import ray_utils
  from utils.constant import DEFAULT_GEO_THRESH
  from geometry import transformations
label_desc: Use image node_id 1 for calling a global function with example usage: pose_spherical(theta, phi, radius) and returns: CameraPose