class_docstr: Wandb class for 3D point clouds.
  
  Arguments:
      data_or_path: (numpy array, string, io)
          Object3D can be initialized from a file or a numpy array.
  
          You can pass a path to a file or an io object and a file_type
          which must be one of SUPPORTED_TYPES
  
  The shape of the numpy array must be one of either:
  ```
  [[x y z],       ...] nx3
  [[x y z c],     ...] nx4 where c is a category with supported range [1, 14]
  [[x y z r g b], ...] nx6 where is rgb is color
  ```
code: def seq_to_json(
      cls: Type["Object3D"],
      seq: Sequence["BatchableMedia"],
      run: "LocalRun",
      key: str,
      step: Union[int, str],
  ) -> dict:
      seq = list(seq)
  
      jsons = [obj.to_json(run) for obj in seq]
  
      for obj in jsons:
          expected = LogicalPath(cls.get_media_subdir())
          if not obj["path"].startswith(expected):
              raise ValueError(
                  "Files in an array of Object3D's must be in the {} directory, not {}".format(
                      expected, obj["path"]
                  )
              )
  
      return {
          "_type": "object3D",
          "filenames": [
              os.path.relpath(j["path"], cls.get_media_subdir())
              for j in jsons
          ],
          "count": len(jsons),
          "objects": jsons,
      }
  
imports: import codecs
  import json
  import os
  import sys
  from typing import TYPE_CHECKING, ClassVar, Optional, Sequence, Set, TextIO, Tuple, Type, Union
  import wandb
  from wandb import util
  from wandb.sdk.lib import runid
  from wandb.sdk.lib.paths import LogicalPath
  from .None import _dtypes
  from ._private import MEDIA_TMP
  from .base_types.media import BatchableMedia
label_desc: Use image node_id 7 for calling the Object3D obj's underlying member method code with example usage: obj.seq_to_json(cls, seq, run, key, step) and returns: dict