Whats New
1.4.0
This release focuses on improved deck.gl compatibility, and package maintainability.
Code base upgrades
In preparation for the 1.4 release, we made major upgrades to the tools that support the development and publishing of hubble.gl. This allows us to iterate faster and makes it easier for first-time users to get started.
- #269 Library rewritten in TypeScript
- All examples are bootstrapped with vite
- Pre-bundled scripts built with esbuild
- Website rewritten using Docusaurus
- Tests are run with
tsnode
with ESM modules for node, andvite
for the browser
Fixed
- #286 Improved compatibility up to deck.gl 8.9, react 18.0, react-map-gl 7.1, and kepler.gl 3.1.
- #302 Fixed kepler.gl 3.1 integration
- fix(react) kepler layers should be visible
- fix(kepler) layers should update on every react render
- chore(kepler) component should configure which map to render
- change(kepler) switch png and jpeg encoder to use zip archives
- fix(kepler) filters should render enlarged filters using latest schema
- fix(kepler) all defined filters should render
- #298 Added missing exports to the main
hubble.gl
package.
Changed
- #288 Hubble.gl now expects users to use an interleaved
MapboxOverlay
instead of the now deprecatedMapboxLayer
class in@deck.gl/mapbox
.
1.3.0
This release introduces a new decoupled animation manager, and refactors Please review API reference and examples before upgrading.
Fixed
- #113 encoders - gif options can be read-only
- #147 kepler - fixed rendering while preview exception
- #163 kepler - blank layer when no deck layers
- #177 kepler - match 3d perspective in video export
- #95 worldview - odd dimensions cause encoder issues
Added
- #98 Add
seek
method to DeckAdapter. - #125 Added new Keyframe classes.
Keyframes.set
to update keyframe values without reconstructing and re-attaching to timeline.DeckLayerKeyframes
KeplerLayerKeyframes
KeplerFilterKeyframes
KeplerTripKeyframes
- #127 Added
Animation
to manage keyframes and drawing a frame.DeckAnimation
KeplerAnimation
- #130 Added
AnimationManager
to replaceDeckScene
- Manages a
Timeline
and attaching animations.
- Manages a
React
- #130
useDeckAdapter
hook for better react integration. - Numerous improvements to kepler.gl support.
Changed
- #161
DeckAdapter
now waits for async deck.gl layers to finish loading before rendering a frame.- Check out the terrain example to see this in action!
DeckAdapter
has breaking changes for existing applications.- #106 renamed
encoderSettings
toformatConfigs
- #175 renamed
dimension
toresolution
Removed
- Removed
DeskScene
(replaced byAnimationManager
andAnimation
classes). - Removed Keyframe classes.
LayerKeyframes
(replaced byDeckLayerKeyframes
)FilterValueKeyframes
GridLayerKeyframes
ScatterPlotLayerKeyframes
1.2.0
Added
- Automatic animation attachment, see example.
DeckScene
- Added
initialKeyframes
parameter onDeckScene
. 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.
- Added
DeckAdapter
DeckAdapter.seek
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[]
- getLayers:
CameraKeyframes
now supportsflyTo
interpolation.new CameraKeyframes({interpolators: 'flyTo'})
GifEncoder
defaults tuned to increase quality and reduce size.
React
- Kepler UI component injection hooks and providers. This enables 3rd party libraries integrated with Kepler.gl to inject components provided by Kepler without circularly depending on Kepler.
Examples
- Quick start example
- Kepler.gl integration example
- Worldview example is a web app you can use to create fully customizable animated map videos in seconds without any installation or expensive server processing by utilizing hubble.gl.
Removed
- Removed
DeckScene
construcor parameters:data
removed. Instead users should manage their data loading on their own.lengthMs
removed. Instead provide timecode parameter toDeckAdapter.render
.currentCamera
removed. Instead manageviewState
externally and set camera keyframes withDeckScene.setCameraKeyframes
.animationLoop
removed. Instead provide a luma.gltimeline
.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 withinitialKeyframes
parameter and updated withsetKeyframes
, andsetCameraKeyframes
methods.
Encoder
base class removed. UseFrameEncoder
instead.DeckAdapter.preview
removed. UseDeckAdapter.render({Encoder: PreviewEncoder})
instead.
Changed
DeckAdapter.render
,DeckAdapter.getProps
, andDeckScene
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.
Deprecations
- Frame definition pattern in frame.js should no longer be used. Will be removed in next release.
Keyframes.setActiveKeyframes
is now privateKeyframes._setActiveKeyframes
, and should not be used.
1.1.0
- 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 underjpeg
, etc..).
- Gif Encoder #7
1.0.1
Initial release.