code: def get_linear_lookat_motion_start_end(
      inner_radius: float = 1.0,
      outer_radius: float = 4.0,
  ):
      """Sample a linear path which goes through the workspace center."""
      while True:
          # Sample a point near the workspace center that the path travels through
          camera_through = np.array(
              kb.sample_point_in_half_sphere_shell(
                  0.0, inner_radius, 0.0
              )
          )
          while True:
              # Sample one endpoint of the trajectory
              camera_start = np.array(
                  kb.sample_point_in_half_sphere_shell(
                      0.0, outer_radius, 0.0
                  )
              )
              if camera_start[-1] < inner_radius:
                  break
  
          # Continue the trajectory beyond the point in the workspace center, so the
          # final path passes through that point.
          continuation = rng.rand(1) * 0.5
          camera_end = camera_through + continuation * (
              camera_through - camera_start
          )
  
          # Second point will probably be closer to the workspace center than the
          # first point.  Get extra augmentation by randomly swapping first and last.
          if rng.rand(1)[0] < 0.5:
              tmp = camera_start
              camera_start = camera_end
              camera_end = tmp
          return camera_start, camera_end
  
file_path: kubric/challenges/movi/movi_def_worker.py
imports: import logging
  import bpy
  import kubric
  from kubric.simulator import PyBullet
  from kubric.renderer import Blender
  import numpy
label_desc: Use image node_id 2 for calling a global function with example usage: get_linear_lookat_motion_start_end(inner_radius, outer_radius) and returns: camera_start,  camera_end