class_docstr: Base class for the entire OO interface in Kubric.
  All objects, materials, lights, and cameras inherit from Asset.
  
  An assets have a UID, is hashable, have traits that can be observed (by external objects),
  support inserting keyframes for certain traits, and track linked (external) objects.
  
  Traits:
    name: The basename used to create uids (defaults to __class__.name)
    uid: an unique identifier auto-generated from self.name (e.g. "name", "name.001" , ...)
    background: TODO(klausg)
    metadata: TODO(klausg)
class_docstr_tok: ["Base","class","for","the","entire","OO","interface","in","Kubric",".","All","objects",",","materials",",","lights",",","and","cameras","inherit","from","Asset",".","An","assets","have","a","UID",",","is","hashable",",","have","traits","that","can","be","observed","(","by","external","objects",")",",","support","inserting","keyframes","for","certain","traits",",","and","track","linked","(","external",")","objects",".","Traits",":","name",":","The","basename","used","to","create","uids","(","defaults","to","__class__.name",")","uid",":","an","unique","identifier","auto-generated","from","self.name","(","e.g",".","``","name","''",",","``","name.001","''",",","...",")","background",":","TODO","(","klausg",")","metadata",":","TODO","(","klausg",")"]
code: def __init__(self, **kwargs):
      # --- ensure all constructor arguments are traits
      unknown_traits = [
          kwarg for kwarg in kwargs if kwarg not in self.trait_names()
      ]
      if unknown_traits:
          raise KeyError(
              f"Cannot initialize unknown trait(s) {unknown_traits}."
          )
  
      # --- Change the basename used by the UID creation mechanism
      name = (
          self.__class__.__name__
          if "name" not in kwargs
          else kwargs["name"]
      )
      self.set_trait("name", name)  # < force set (read-only)
      kwargs.pop("name", None)
  
      # --- Initialize attributes
      self.linked_objects = {}
      # """Docstring for linked_objects TODO (klausg)."""
  
      self.scenes = []
      # """Docstring for scenes TODO (klausg)."""
  
      self.keyframes = collections.defaultdict(dict)
      # """Docstring for keyframes TODO (klausg)."""
  
      # --- Initialize traits
      super().__init__(**kwargs)
  
imports: import collections
  import contextlib
  import munch
  import numpy
  import traitlets
  from kubric.utils import next_global_count
label_desc: Use image node_id 1 to create a new Asset object from inherited base classes: tl with example: obj = Asset()