Chevron DownOverview

Whats New


Initial release.


  • Encoders are constructed right before rendering starts, instead of only when a scene is defined. #1
  • DeckAdapter.render now accepts a onStop callback.
  • Remove stop and dispose from FrameEncoders #3
  • Allow PNGEncoder transparent frames #4
  • Refactor encoder settings and scene settings api #8
    • scene settings are defined at scene load time, so you can set scene resolution and animation length there.
    • encoder settings are defined before every render, so you can set seek options there.
    • format-specific encoder settings are namespaced by encoder (jpeg settings are under jpeg, etc..).
  • Gif Encoder #7



  • Automatic animation attachment, see example.
  • DeckScene
    • Added initialKeyframes parameter on DeckScene. Initializes keyframes prior to first render.
    • Provide dynamic keyframes via DeckAdapter.render({getCameraKeyframes, getKeyframes}) accessors.
      • DeckScene.setKeyframes may also be used to register new keyframes.
  • DeckAdapter
    • added to enable previewing any specific frame while paused.
    • DeckAdapter glContext parameter added to support browser testing.
    • DeckAdapter.getProps({extraProps}) added to inject additional deck props without interfering with Hubble.
    • DeckAdapter.getProps({getLayers}) added for when it’s necessary to access keyframes for animated layers.
      • getLayers: (scene) => layers[]
  • CameraKeyframes now supports flyTo interpolation.
    • new CameraKeyframes({interpolators: 'flyTo'})
  • GifEncoder defaults tuned to increase quality and reduce size.


  • Kepler UI component injection hooks and providers. This enables 3rd party libraries integrated with to inject components provided by Kepler without circularly depending on Kepler.



  • Removed DeckScene construcor parameters:
    • data removed. Instead users should manage their data loading on their own.
    • lengthMs removed. Instead provide timecode parameter to DeckAdapter.render.
    • currentCamera removed. Instead manage viewState externally and set camera keyframes with DeckScene.setCameraKeyframes.
    • animationLoop removed. Instead provide a timeline.
    • renderLayers removed. Instead either directly supply deckgl with layers, or provide a getLayers accessor, DeckAdapter.getProps({getLayers}), when it’s necessary to access keyframes for animated layers.
    • keyframes removed. Instead they can be initialized with initialKeyframes parameter and updated with setKeyframes, and setCameraKeyframes methods.
  • Encoder base class removed. Use FrameEncoder instead.
  • DeckAdapter.preview removed. Use DeckAdapter.render({Encoder: PreviewEncoder}) instead.


  • DeckAdapter.render, DeckAdapter.getProps, and DeckScene constructor expect object wrapped parameters now.
  • DeckAdapter.render({encoderSettings}) is now split up into three objects:
    • formatConfigs, to config settings for specific formats (I.e. jpeg quality)
    • timecode, to specify render start and end times as well as framerate.
    • filename, to specify the file name when rendering to a downloaded file.


  • Frame definition pattern in frame.js should no longer be used. Will be removed in next release.
  • Keyframes.setActiveKeyframes is now private Keyframes._setActiveKeyframes, and should not be used.