Version v1.61.0 Changelog October 8, 2025
Breaking Changes
- Engine: Added playback speed control for videos, GIFs and audio blocks via
UBQ::setPlaybackSpeed
andUBQ::getPlaybackSpeed
. For non-looping blocks, durations are recalculated to reflect trim and speed changes. - Engine: breaking change calling
setDuration
adjusts the trim as well for non looping blocks.
Non Breaking Changes
- Editor/Web: Deprecated
ui.elements.panels.settings
configuration option. Usecesdk.feature.enable('ly.img.settings')
instead. - Editor/Web: Deprecated
ui.elements.panels.inspector
configuration option. Usecesdk.feature.enable('ly.img.inspector')
,cesdk.ui.setPanelPosition()
, andcesdk.ui.setPanelFloating()
instead. - Editor/Web: Deprecated
ui.elements.panels.assetLibrary
configuration option. Usecesdk.feature.enable('ly.img.assetLibrary')
andcesdk.ui.setPanelFloating()
instead. - Editor/Web: Deprecated
ui.elements.dock.show
configuration option. Usecesdk.feature.enable('ly.img.dock')
instead. - Editor/Web: Deprecated
ui.elements.libraries.insert.floating
configuration option. Usecesdk.ui.setPanelFloating('ly.img.assetLibrary')
instead. - Editor/Web: Deprecated
ui.elements.libraries.replace.floating
configuration option. Usecesdk.ui.setPanelFloating('ly.img.assetLibrary')
instead. - Editor/Web: Add animation previews - adding or updating an animation will now play a preview of the animation.
- Engine/Web: Add support for font size units in
setTextFontSize
andgetTextFontSizes
methods, allowing pixel and point units with automatic conversion - Editor/Web: Add
cesdk.getBaseURL()
API to retrieve the baseURL from configuration - Editor/Web: Migrated all UI components from deprecated
ui.elements.blocks
configuration to Feature API patterns for improved maintainability and reactivity. - Editor/Web: Deprecated
ui.elements.blocks.opacity
configuration option. Usecesdk.feature.enable('ly.img.opacity')
instead. - Editor/Web: Deprecated
ui.elements.blocks.transform
configuration option. Usecesdk.feature.enable('ly.img.transform.position')
,cesdk.feature.enable('ly.img.transform.size')
,cesdk.feature.enable('ly.img.transform.rotation')
, andcesdk.feature.enable('ly.img.transform.flip')
instead. - Editor/Web: Deprecated
ui.elements.blocks['//ly.img.ubq/text'].advanced
configuration option. Usecesdk.feature.enable('ly.img.text.advanced')
instead. - Editor/Web: Deprecated
ui.elements.blocks['//ly.img.ubq/text'].color
configuration option. Usecesdk.feature.enable('ly.img.fill')
instead. - Editor/Web: Deprecated
ui.elements.blocks.adjustments
configuration option. Usecesdk.feature.enable('ly.img.adjustment')
instead. - Editor/Web: Deprecated
ui.elements.blocks.filters
configuration option. Usecesdk.feature.enable('ly.img.filter')
instead. - Editor/Web: Deprecated
ui.elements.blocks.effects
configuration option. Usecesdk.feature.enable('ly.img.effect')
instead. - Editor/Web: Deprecated
ui.elements.blocks.blur
configuration option. Usecesdk.feature.enable('ly.img.blur')
instead. - Editor/Web: Deprecated
ui.elements.blocks.crop
configuration option. Usecesdk.feature.enable('ly.img.crop')
instead. - Editor/Web: Deprecated
ui.elements.blocks['//ly.img.ubq/page'].format
configuration option. Usecesdk.feature.enable('ly.img.page.resize')
instead. - Editor/Web: Deprecated
ui.elements.blocks['//ly.img.ubq/page'].manage
configuration option. Usecesdk.feature.enable('ly.img.page.add')
,cesdk.feature.enable('ly.img.page.move')
, andcesdk.feature.enable('ly.img.duplicate')
instead. - Engine/Web: Add new stable
getView()
andsetView()
APIs for runtime view mode switching - Engine/Web: Deprecate experimental
unstable_getView()
API in favor of stablegetView()
- Engine/Web: Deprecate
configuration.ui.elements.view
configuration property in favor ofsetView()
- Editor/Web: Added wildcard pattern matching support to
cesdk.ui.closePanel()
. - Engine/Android: Fixed a rare crash caused by a null pointer dereference during audio/video decoding.
- Editor/Android: Fixed default settings not getting applied on restoration after process death.
- Engine/iOS: The audio output device is now lazy initialized, i.e., only initialized when the first audio is played. The new
startAudioOutputDevice
editor API can be used to start the audio device if needed. - Engine/Android: The audio output device is now lazy initialized, i.e., only initialized when the first audio is played. The new
startAudioOutputDevice
editor API can be used to start the audio device if needed. - Editor/Android: Fixed unnecessary energy consumption while the app is paused with an open video scene due to the audio device not properly released. If the
setAppIsPaused
API is called, the audio output device will now be released. It will start again once a block is playing or if the newstartAudioOutputDevice
editor API is called to start it manually. - Engine: Added new editor API to manually start the audio device, which is useful for recording audio or video on iOS:
startAudioOutputDevice
. - Editor/Web: Add Command/Ctrl-click as redundancy for Shift-click to enable multi-selection of blocks.
- Engine: fix invalid position when scaling a block with a width or height of zero.
- Editor/Web: Placeholder permission labels and tooltips are now context-specific for text, audio, and graphic elements
- Editor/Web: Text placeholders show “Allow to Replace Text” with tooltip explaining text content replacement
- Editor/Web: Audio placeholders show “Allow to Replace Audio” with tooltip explaining audio track replacement
- Editor/Web: Graphic placeholders show “Allow to Replace Fill Content” with tooltip explaining image/video/color replacement
- Editor/Web: Added context-specific tooltips to “Act as Placeholder” checkboxes explaining visual appearance and click-to-replace behavior
- Editor/Web: Enhanced TypeScript translation types to better support placeholder-specific tooltip translations
- Editor/Web: Fixed TextInput component’s onRelease callback to use the controlled value prop instead of DOM value on blur
- Editor/Web: Fixed an issue that was causing the video timeline to not properly react to state changes
- Engine/Web: Fixed an issue where
engine.scene.zoomToBlock
API would incorrectly animate whenanimate: false
was passed. - Engine: Undoing and redoing changes no longer affects the playback position.
- Editor/Web: Proper dispose of engine resources when using nodejs.
- Editor/Web: Fixed an issue where gaps were preserved after dropping an element onto the background track.
- Editor/Web: Fix keyboard shortcuts for caption panel time controls not working