def METHOD_NAME(position, look_direction):
    camera_forward = -look_direction / np.linalg.norm(look_direction)
    camera_right = np.cross(camera_forward, np.array((0, 0, -1)))
    if np.linalg.norm(camera_right) < 0.5:
        camera_right = np.array((0, 1, 0), dtype=np.float32)
    camera_right /= np.linalg.norm(camera_right)
    camera_up = np.cross(camera_forward, camera_right)
    camera_up /= np.linalg.norm(camera_up)
    rotation = np.identity(4)
    rotation[:3, 0] = camera_right
    rotation[:3, 1] = camera_up
    rotation[:3, 2] = camera_forward
    translation = np.identity(4)
    translation[:3, 3] = position
    return np.matmul(translation, rotation)