Changelog
Explore the recent changes made to CreativeEditor SDK.
Our release notes contain more details on features and changes.
Recent Releases
Version v1.62.0 Changelog October 22, 2025
Breaking Changes
- Editor/Web: Modernized editor theme with refined color palette, unified elevation surfaces, and improved visual hierarchy.
- Engine/Android: Fixed crash on calling
AssetApi.fetchAsset. - Engine/Android: Replaced
AssetSource.fetchAsset(id:)withAssetSource.fetchAsset(id:options:)by addingFetchAssetOptionsargument. The replaced functionAssetSource.fetchAsset(id:)won’t be called anymore. Asset sources that implemented this old optional method need to be updated. - Engine/iOS: Replaced
AssetSource.fetchAsset(id:)withAssetSource.fetchAsset(id:options:)by addingFetchAssetOptionsargument. The replaced functionAssetSource.fetchAsset(id:)won’t be called anymore. Asset sources that implemented this old optional method need to be updated. - Editor/Web: Clips added from the asset library will now no longer be automatically added to the background track when the timeline is still empty
- Engine: The ‘unstable_exportAudio’ API was renamed to ‘exportAudio’ and is now able to export audio from scenes, pages, tracks, audio blocks and blocks with video fills.
- Audio can be exported to either ‘audio/wav’ and ‘audio/mp4’:
- When exporting audio from either an audio block or a block with a video fill, if the underlying resource is not compatible with the requested mime type, the audio is first transcoded. Otherwise, the audio data is returned immediately.
- Added the flag ‘skipEncoding’ to the AudioExportOptions (disabled by default). Enabling it will allow getting the audio data from buffers directly while bypassing encoding (even if it is needed).
Non Breaking Changes
- Editor/Web: Added
cesdk.i18n.listLocales()method to retrieve available locales with optional wildcard pattern matching. - Editor/Web: Added
cesdk.actions.list()method to retrieve registered actions with optional wildcard pattern matching. - Editor/Web: Fixed an issue in
cesdk.i18n.getTranslations()that was causing the method to not return all available locales when no locale was passed as an input. - Editor/Android: Added
Engine.addSystemGalleryAssetSourcesto register device gallery sources (all, image, video) and wire them into the default configuration. - Editor/Android: Introduced
SystemGalleryAssetSourceandSystemGalleryAssetSourceTypeto expose MediaStore content, including permission-aware paging and limited-access support on Android 13+. - Editor/Android: Updated the default asset library and timeline flows to surface the system gallery with runtime permission handling and quick add options.
- Editor/Android: Documented how to keep the legacy uploads flow by overriding the default
AssetLibrary/timeline configuration, while keepingDock.Button.rememberSystemGallery()as the default system gallery entry. - Engine/Web: Add optional
clipTypecontext parameter toengine.asset.apply()API for explicit placement control - Engine/Web: Stabilize middleware APIs by renaming
unstable_registerApplyAssetMiddlewaretoregisterApplyMiddlewareandunstable_registerApplyAssetToBlockMiddlewaretoregisterApplyToBlockMiddleware - Editor/Web: Move middleware registration from VideoTimeline component to engine facade for global initialization
- Editor/Web: Update middleware to support conditional clip placement based on
clipTypecontext parameter - Editor/Web: Add
clipTypeoption toAssetLibraryPanelPayloadfor panel-level placement configuration - Editor/Web: Update
addClipaction to useclipType: 'overlay'for correct background track placement - Engine/Web: Deprecate
ui.colorLibraries,ui.typefaceLibraries,ui.pagePresetsLibraries, andui.cropPresetsLibrariesconfiguration properties in favor of the new API-driven approach usingcesdk.ui.updateAssetLibraryEntry(). The deprecated properties will be automatically migrated with console warnings. See migration guide in the deprecation warnings for details. - Engine/Web: Add
@deprecatedJSDoc marker toui.pageFormatsconfiguration property. This property is now deprecated in favor of usingcesdk.ui.updateAssetLibraryEntry('ly.img.pagePresets', { sourceIds: [...] }). - Engine: Now supports evaluation mode without providing a license
- Editor/Web: Remove loading indicator text from editor
- Editor/Web: Deprecated
configuration.ui.elements.dock.iconSizein favor ofcesdk.engine.editor.setSetting('dock/iconSize', 'normal' | 'large'). - Editor/Web: Deprecated
configuration.ui.elements.dock.hideLabelsin favor ofcesdk.engine.editor.setSetting('dock/hideLabels', boolean). - Engine/Swift: Added a parameter
onDisallowedResourceSchemetoSceneAPI.saveToStringandBlockAPI.saveToStringto allow the opportunity to persist transient or temporary resources. - Editor/Web: Added rectangle selection for timeline clips by dragging. Click the timeline background to deselect all clips.
- Editor/Web: Added middle mouse button drag scrolling for timeline navigation.
- Engine/Web: Added
localeparameter tocesdk.asset.fetchAssetto support fetching assets in different locales. Thelocaleparameter is optional. - Editor/Web: Fixed an issue on the page resize panel that was causing the input values to not reflect properly.
- Editor/Web: Fixed an issue on the page resize panel that was causing wrong updates to the scene values.
- Engine: Fixed and issue where fonts for a given typeface were being wrongly evicted, causing archives to not have the necessary fonts files.
- Editor/iOS: Fix potential localization lookup performance issue for large app bundles.
- Editor/iOS: Fixed asset library navigation reset when using search button in nested navigation screens on iOS 26.
- Editor/iOS: Fixed opening the crop sheet via double tap when another sheet is already open.
- Editor/iOS: Fixed opening the replace sheet when tapping on placeholders while another sheet is open.
- Engine/Web: Added
web/fetchCredentialssetting that accepts"omit","same-origin"(default), or"include"to control cookie behavior for cross-origin asset fetches - Editor/Web: Add
currentIdsparameter toupdateAssetLibraryEntrysourceIds callback for easier extension of existing source IDs without manualgetAssetLibraryEntrycalls - Engine: Fixed
getAVResourceTotalDurationon a video fill from an imported archive not returning the correct value.
Version v1.61.0 Changelog October 8, 2025
Breaking Changes
- Engine: Added playback speed control for videos, GIFs and audio blocks via
UBQ::setPlaybackSpeedandUBQ::getPlaybackSpeed. For non-looping blocks, durations are recalculated to reflect trim and speed changes. - Engine: breaking change calling
setDurationadjusts the trim as well for non looping blocks.
Non Breaking Changes
- Editor/Web: Deprecated
ui.elements.panels.settingsconfiguration option. Usecesdk.feature.enable('ly.img.settings')instead. - Editor/Web: Deprecated
ui.elements.panels.inspectorconfiguration option. Usecesdk.feature.enable('ly.img.inspector'),cesdk.ui.setPanelPosition(), andcesdk.ui.setPanelFloating()instead. - Editor/Web: Deprecated
ui.elements.panels.assetLibraryconfiguration option. Usecesdk.feature.enable('ly.img.assetLibrary')andcesdk.ui.setPanelFloating()instead. - Editor/Web: Deprecated
ui.elements.dock.showconfiguration option. Usecesdk.feature.enable('ly.img.dock')instead. - Editor/Web: Deprecated
ui.elements.libraries.insert.floatingconfiguration option. Usecesdk.ui.setPanelFloating('ly.img.assetLibrary')instead. - Editor/Web: Deprecated
ui.elements.libraries.replace.floatingconfiguration 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
setTextFontSizeandgetTextFontSizesmethods, 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.blocksconfiguration to Feature API patterns for improved maintainability and reactivity. - Editor/Web: Deprecated
ui.elements.blocks.opacityconfiguration option. Usecesdk.feature.enable('ly.img.opacity')instead. - Editor/Web: Deprecated
ui.elements.blocks.transformconfiguration 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'].advancedconfiguration option. Usecesdk.feature.enable('ly.img.text.advanced')instead. - Editor/Web: Deprecated
ui.elements.blocks['//ly.img.ubq/text'].colorconfiguration option. Usecesdk.feature.enable('ly.img.fill')instead. - Editor/Web: Deprecated
ui.elements.blocks.adjustmentsconfiguration option. Usecesdk.feature.enable('ly.img.adjustment')instead. - Editor/Web: Deprecated
ui.elements.blocks.filtersconfiguration option. Usecesdk.feature.enable('ly.img.filter')instead. - Editor/Web: Deprecated
ui.elements.blocks.effectsconfiguration option. Usecesdk.feature.enable('ly.img.effect')instead. - Editor/Web: Deprecated
ui.elements.blocks.blurconfiguration option. Usecesdk.feature.enable('ly.img.blur')instead. - Editor/Web: Deprecated
ui.elements.blocks.cropconfiguration option. Usecesdk.feature.enable('ly.img.crop')instead. - Editor/Web: Deprecated
ui.elements.blocks['//ly.img.ubq/page'].formatconfiguration option. Usecesdk.feature.enable('ly.img.page.resize')instead. - Editor/Web: Deprecated
ui.elements.blocks['//ly.img.ubq/page'].manageconfiguration 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.viewconfiguration 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
startAudioOutputDeviceeditor 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
startAudioOutputDeviceeditor 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
setAppIsPausedAPI is called, the audio output device will now be released. It will start again once a block is playing or if the newstartAudioOutputDeviceeditor 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.zoomToBlockAPI would incorrectly animate whenanimate: falsewas 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
Version v1.60.0 Changelog September 19, 2025
Breaking Changes
- Editor/iOS: Renamed
DefaultAssetLibrary.uploadsLabeltoDefaultAssetLibrary.photoRollLabelfor the newPhotoRollAssetSource. - Editor/iOS: Removed
DefaultAssetLibrary.Tab.uploadsand replaced it withDefaultAssetLibrary.Tab.photoRollthat uses the newPhotoRollAssetSource. Create a customAssetLibraryto revert to the previous behavior based onEngine.DemoAssetSource.imageUpload/videoUpload. - Editor/iOS: Deprecated
Dock.Buttons.photoRollin favor ofDock.Buttons.imglyPhotoRollthat uses the newPhotoRollAssetSource. UseDock.Buttons.systemPhotoRollto use the previous behavior. - Editor/iOS: Deprecated
EditorEvent.addFromPhotoRollin favor ofEditorEvent.addFromIMGLYPhotoRollthat uses the newPhotoRollAssetSource. UseEditorEvent.addFromSystemPhotoRollto use the previous behavior. - Editor/iOS: Added
PhotoRollAssetSourceintegration with Photo Library, and added it to the defaultonCreatecallback. If you use theDefaultAssetLibrarywith the newDefaultAssetLibrary.Tab.photoRoll, the newDock.Buttons.imglyPhotoRoll, or the newEditorEvent.addFromIMGLYPhotoRoll, you also need to add it to youronCreatecallback implementation. - Editor/iOS: Add
NSPhotoLibraryUsageDescriptionto yourInfo.plistif you are using the newPhotoRollAssetSource, theDefaultAssetLibrarywith the newDefaultAssetLibrary.Tab.photoRoll, the newDock.Buttons.imglyPhotoRoll, or the newEditorEvent.addFromIMGLYPhotoRoll. - Editor/iOS: Added a generic constraint to
AssetPreviewfor the empty view. - Editor/RN: Fixed Android compatibility issues with Expo 54.
- Camera/RN: Fixed Android compatibility issues with Expo 54.
Non Breaking Changes
- Editor/Web: Add support for P3 color space and OKLCH color format to theming API.
- Editor/Web: Added
disableTooltipsconfiguration option to asset library entries, allowing tooltips to be disabled for asset cards when set totrue - Engine: Add support for Lottie animations on video fills.
- Engine/Web: Added MKV (Matroska) video format support with extended codec compatibility including H.264, H.265/HEVC, AAC, MP3 audio codecs in addition to the existing VP8, VP9, AV1, and Opus support.
- Editor/Web: Extended the page placeholder settings to support resizing. Similar to changing page size, the placeholder setting will reflect on all pages in the scene.
- Editor/Web: Added ‘system’ theme option that automatically adapts to the user’s OS theme preference
- Editor/Web: Enhanced theme API to support function-based themes for dynamic theme selection.
cesdk.ui.setTheme()now accepts ‘light’, ‘dark’, ‘system’, or a function that returns a theme - Editor/Web: Updated
cesdk.ui.getTheme()to always return the resolved theme value (‘light’ or ‘dark’), evaluating functions and system preferences as needed - Editor/Web: Deprecated
themeconfiguration property. Usecesdk.ui.setTheme()andcesdk.ui.getTheme()methods instead for runtime theme management - Editor/Web: Fixed icon functions to always receive resolved theme values (‘light’ or ‘dark’), never ‘system’
- Editor/Web: Enhanced scale API to match theme API pattern.
cesdk.ui.setScale()now accepts ‘normal’, ‘large’, or a function that returns a scale based on viewport properties - Editor/Web: Updated
cesdk.ui.getScale()to always return the resolved scale value (‘normal’ or ‘large’), evaluating functions as needed - Editor/Web: Deprecated
ui.scaleconfiguration property. Usecesdk.ui.setScale()andcesdk.ui.getScale()methods instead for runtime scale management - Engine/Web: Refactored Settings interface architecture by moving settings interface to separate Settings.ts file for better code organization and maintainability.
- Engine/Web: Consolidated internal setting types into main Settings interface using @internal JSDoc tags for improved API clarity.
- Engine/Web: Improved type safety by deriving all setting types directly from the Settings interface, ensuring consistency across the API.
- Engine/Web: Added unified
setSettingandgetSettingmethods that automatically infer types based on the setting key, providing better TypeScript support and a simpler API. - Engine/Web: Added new TypeScript types
SettingsMap,SettingKey, andSettingValuefor type-safe settings access. - Engine/Web: Simplified deprecated type-specific settings methods (
setSettingBool,getSettingBool,setSettingInt,getSettingInt,setSettingFloat,getSettingFloat,setSettingString,getSettingString,setSettingColor,getSettingColor,setSettingEnum,getSettingEnum) to use single function signatures while maintaining backward compatibility. - Engine/Web: Deprecated
SettingsColortype export. Use the Color type directly instead. - Engine/Web: Updated all internal code to use the new unified settings API.
- Engine/Web: Video captions are now enabled by default without requiring explicit feature flag configuration.
- Documentation: Replaced C++ internal function references (
createRGBColor,createClear,createWhite) with JavaScript object literals. - Documentation: Updated all code examples to use the new unified
setSettingandgetSettingAPI. - Documentation: Fixed license placeholder to use ‘YOUR_CESDK_LICENSE_KEY’ consistently.
- Documentation: Cleaned up complex types in Settings tables to show just type names with parameters in dedicated sections.
- Documentation: Added missing sections for
ColorMaskingSettingsandGlobalScopescomplex types. - Editor/Web: Fix an issue where the navigation bar actions dropdown appeared empty after or broken updating the CE.SDK.
- Editor/Web: Add comprehensive tooltips to all placeholder settings options to clarify what each permission allows users to do
- Engine/Android: Fixed that the audio stream on a video export could have no proper end-of-stream signal.
- Editor/Android: Fixed ClassCastException when opening FillStroke sheet for a block referencing CMYK color(s).
- Engine: The
createAudioFromVideoorcreateAudiosFromVideoAPIs now use the correct sample rate and channel configuration from the track being extracted. - Engine/Web: Fixed crash when loading audio with empty chunks.
- Engine: Added support of MP4 videos that do not report the duration for audio tracks.
- Engine/Android: Fixed an issue where certain videos or audio files that could not be decoded were not always assigned an error state.
- Engine: Added a new
splitblock API that allows splitting a block into two based on a specified time and additional options:attachToParent(to choose if the new block will be attached to the same parent as the original),createParentTrackIfNeeded(to choose if the parent should be a track block) andselectNewBlock(to choose if the new block will be selected). - Editor/Web: Add new
cesdk.actionsAPI for centralized actions management withregister(),get(), andrun()methods to handle export, save, load, and other user interaction actions - Editor/Web: Add new
cesdk.utilsAPI providing default implementations for common operations including loading dialogs, export operations, file handling, and scene management - Editor/Web: Extend navigation bar order manipulation APIs to accept index-based matching for more flexible component positioning
- Editor/Web: Deprecate navigation bar action configuration options (
ui.elements.navigation.action.save,ui.elements.navigation.action.export,ui.elements.navigation.action.share,ui.elements.navigation.action.download,ui.elements.navigation.action.load,ui.elements.navigation.action.back,ui.elements.navigation.action.close) in favor of the Order API with automatic migration support - Editor/Web: Deprecate individual callback configurations in favor of the new centralized
cesdk.callbacksAPI with automatic migration support. The deprecated callbacks and their new API equivalents are:callbacks.onBack→ Use Order API withly.img.back.navigationBarcomponentcallbacks.onClose→ Use Order API withly.img.close.navigationBarcomponentcallbacks.onSave→cesdk.callbacks.register('saveScene', callback)callbacks.onShare→cesdk.callbacks.register('shareScene', callback)callbacks.onExport→cesdk.callbacks.register('exportDesign', callback)callbacks.onDownload→cesdk.callbacks.register('exportScene', callback)callbacks.onLoad→cesdk.callbacks.register('importScene', callback)callbacks.onLoadArchive→cesdk.callbacks.register('importScene', callback)withformat: 'archive'callbacks.onUpload→cesdk.callbacks.register('uploadFile', callback)callbacks.onUnsupportedBrowser→cesdk.callbacks.register('onUnsupportedBrowser', callback)
- Engine/Web: Add
upload.supportedMimeTypessetting to configure supported file types for upload operations - Editor/Web: Add Angular integration wrapper for Creative Editor SDK, available as
@cesdk/cesdk-js/angular - Editor/Web: Add
addClipaction to enable customization of clip addition behavior in video timeline. Developers can now override the default behavior by registering their ownaddClipaction. - Editor/Web: Deprecate
setBackgroundTrackAssetLibraryEntries(),getBackgroundTrackAssetLibraryEntries()methods andbackgroundTrackLibraryEntriesconfiguration option in favor of the newaddClipaction approach. - Editor/iOS: Prepared the
NavigationBarto correctly present items for Apple’s new design system on iOS 26. - Editor/iOS: Hide the navigation bar while searching to avoid seeing it underneath through the search’s glass background on iOS 26.
- Editor/iOS: Fixed truncated “Cancel” button on Voiceover sheet for iOS 26.
- Editor/Web: Fix custom locale translations not being applied when using setTranslations() with non-default locales.
- Engine: During drag operations, blocks are no longer reparented to hidden pages.
- Editor/Web: Fixed text asset labels not being translated properly.
- Engine: Archive file size reduced by removing unnecessary font files from it.
- Editor/iOS: Fixed audio playback after using system camera to record videos.
- Engine/Web: Fix HDR HEVC video support.
Version v1.59.2 Changelog September 12, 2025
Breaking Changes
Non Breaking Changes
- Editor/Web: Fix custom locale translations not being applied when using setTranslations() with non-default locales.
Version v1.59.1 Changelog September 8, 2025
Breaking Changes
Non Breaking Changes
- Editor/Web: Fix an issue where the navigation bar actions dropdown appeared empty after or broken updating the CE.SDK.
Version v1.59.0 Changelog September 2, 2025
Breaking Changes
- Editor/Web: Deprecated
localeconfiguration option in favor ofcesdk.i18n.setLocale()API. Set locale after instance creation instead of in config. - Editor/Web: Deprecated
i18nconfiguration option in favor ofcesdk.i18n.setTranslations()API. Set translations after instance creation instead of in config. - Editor/Web: Deprecated
cesdk.setTranslations()in favor ofcesdk.i18n.setTranslations(). The old method will be removed in a future version. - Editor/Android: Fixed
touch/pinchActionvalue was not being restored correctly after exiting crop mode when it had been custom set.
Non Breaking Changes
- Engine/Web: Added support for async plugin initialization. The
addPluginmethod is now async and theEnginePlugin.initializefunction can return a Promise. - Editor/Web: Added support for async plugin initialization. The
addPluginmethod is now async and theEditorPlugin.initializefunction can return a Promise. - Editor/Web: Updated all plugin examples and documentation to use
awaitwithaddPlugincalls. - Editor/Web: Enhanced
cesdk.i18n.setTranslations()with type-safe translation keys - Editor/Web: Added
cesdk.i18n.getTranslations()method to retrieve current translations for specified locales - Editor/Web: Pass CE.SDK instance through builder context. The
cesdkparameter inBuilderRenderFunctionContextis now required (previously optional). Custom components and panels can now directly access the full CE.SDK API via thecesdkparameter. - Engine: In the default implementation for applying an asset to the scene, if the block fill is a raster image, we now ensure that it does not exceed it’s maximum size. This prevents images from being scaled beyond their native resolution.
- Engine/Web: Added WebM video format support for VP8, VP9, and AV1 video codecs and Opus audio codec (Vorbis is currently not supported).
- Editor/Web: Add offical React and Vue wrappers for CE.SDK Web
- Editor/Flutter: Fixed error in the photo editor on Android where the image could not be found.
- Editor/Web: Added
cesdk.i18n.translate()method for retrieving translations by key or array of keys - Engine: Fixed
loadFromArchiveURLloading of scene archives with empty font files. - Engine: Added new APIs to extract audio from videos.
getAudioTrackCountFromVideoretrieves the number of available audio tracks from a video,getAudioInfoFromVideoretrieves information from all the audio tracks in a video (such as language, track name, codec),createAudioFromVideoextracts a specific audio track from a video and creates an audio block with it andcreateAudiosFromVideodoes the same ascreateAudioFromVideobut for all existing audio tracks in the video. - Editor/iOS: Fixed iOS crash during camera/mic permission prompt due to Swift 6 update.
Version v1.58.0 Changelog August 19, 2025
Breaking Changes
- Engine: The
createFromImageAPI now adds a fill directly to the page instead of creating a graphic block with the image fill. To replicate the previous behavior:- Get the page’s fill after calling
createFromImage - Create a graphic block with a rectangular shape
- Set the fill of the graphic block to that of the page
- Set the graphic block dimensions to match those of the page
- Add the graphic block as a child of the page
- Replace the page’s fill with a solid color fill (white)
- Get the page’s fill after calling
Non Breaking Changes
- Engine: Added
addLocalAssetSourceFromJSONURImethod to load asset sources from JSON URIs. Returns the asset source ID of the newly created source. - Engine: The setEditMode API now has an additional optional parameter that allows using another edit mode as a base.
- Engine/Web: Added a parameter to
Scene.saveToStringandBlock.saveToStringto allow the opportunity to persist transient or temporary resources. - Engine: Introduced “page/selectWhenNoBlocksSelected” setting that automatically selects the current page when nothing else is currently selected.
- Engine: Added support for self-contained scenes and archives by serializing additional scene state components including settings, variables, and spot colors. This ensures that exported scenes maintain their complete configuration when shared or loaded in different environments.
- Engine: Added a
overrideEditorConfigboolean flag toloadSceneFromString,loadSceneFromURLandloadSceneFromArchiveURLwhich controls whether to override the editor settings from the loaded scene. - Engine: Reject Infinity values in all setters.
- Engine: Reject NaN values in
block.scaleandblock.setRotation. - Engine/Web: Fixed issue when export produced a corrupted file.
- Editor/Web: Fix filter library only loading if
ly.img.filter.duotoneandly.img.filter.lutasset sources are being available. - Engine/iOS: Fix crash when typing characters with a diacritic mark.
- Engine/Android: Fixed an issue where content with the
text/htmlMIME type could not be pasted. - Editor/Web: Fix tooltip and keyboard issues on iOS Safari/WebKit
- Editor/iOS: Fix crash when starting VoiceOver after Swift 6 update
- Engine: Fix crash when generating thumbnails larger than the platform’s maximum texture size by clamping to the supported limit.
- Engine: Added
clampThumbnailTextureSizessetting to control this clamping behavior (default:true). - Editor/Web: Fix an issue where the editor is zoomed in on iOS devices when the input field is focused.
- Editor/Web: Fix an issue where the AI plugin quick action button is disabled.
Version v1.57.1 Changelog August 15, 2025
Breaking Changes
Non Breaking Changes
- Editor/Web: Fix an issue where the AI plugin quick action button is disabled.
- Engine: Fix crash when generating thumbnails larger than the platform’s maximum texture size by clamping to the supported limit.
- Engine: Added
clampThumbnailTextureSizessetting to control this clamping behavior (default:true).
Version v1.57.0 Changelog August 6, 2025
Breaking Changes
- Engine/Swift: Updated the default value of
Engine.assetBaseURLforEngine.addDefaultAssetSourcestohttps://cdn.img.ly/assets/v4. - Editor/iOS: Updated
DefaultAssetLibrary.shapesandDefaultAssetLibrary.stickerswith new sections from v4 assets. - Engine/Android: Updated the default value of
baseUriinEngine.addDefaultAssetSourcestohttps://cdn.img.ly/assets/v4. - Editor/Android: Updated
LibraryContent.ShapesandLibraryContent.Stickerswith new sections from v4 assets.
Non Breaking Changes
- Editor/iOS: Allow Kingfisher 7 and 8 dependency.
- Engine: From now on
addAssetToSourcedoes not allow adding multiple assets with the same ID in case of local asset sources. - Engine/Android: Improved memory usage when saving scene to archive.
- Engine/Swift: Improved memory usage when saving scene to archive.
- Editor/Web: Fix caption dock button visible after disabling caption feature via feature API
- Engine/Swift: Fixed invalid blend mode values and added new blend modes (linearBurn, darkenColor, linearDodge, lightenColor, vividLight, linearLight, pinLight, hardMix, subtract, divide).
- Camera/iOS: Close the camera if there is an issue loading the reaction video.
- Engine: Fixed that min and max automatic font size were not scaled the same way as the font size. Could lead to auto-sized text being too small or too large after a change in design unit or DPI, e.g., during
applyTemplateFromStringif the current scene has a different design unit or DPI setting. - Engine: Add
asset.addFromJSONStringendpoint to streamline asset source creation. - Editor/Web: Introduced a new
builder.Componentcomponent that allows rendering custom components that were registered using thecesdk.ui.registerComponent. - Editor/Web: Order UI APIs now support nested orders, allowing for the customization of nested components within the order. This pattern is currently only supported by
ly.img.actions.navigationBarcomponent with other components to follow soon. - Editor/Web: Added new order manipulation APIs for all UI areas:
- Dock:
updateDockOrderComponent,removeDockOrderComponent,insertDockOrderComponent - Inspector Bar:
updateInspectorBarOrderComponent,removeInspectorBarOrderComponent,insertInspectorBarOrderComponent - Canvas Menu:
updateCanvasMenuOrderComponent,removeCanvasMenuOrderComponent,insertCanvasMenuOrderComponent - Navigation Bar:
updateNavigationBarOrderComponent,removeNavigationBarOrderComponent,insertNavigationBarOrderComponent - Canvas Bar:
updateCanvasBarOrderComponent,removeCanvasBarOrderComponent,insertCanvasBarOrderComponent
- Dock:
Version v1.56.0 Changelog July 24, 2025
Breaking Changes
- Editor/Web: Updated the
ly.img.vectorpathasset library with new shapes. Those can be accessed by callingcesdk.addDefaultAssetSources(). - Engine: Added
fetchAssetmethod to theAssetSourceinterface, allowing fetching of specific assets by ID. This is a breaking change for custom asset source implementations, which must now implement or handle the newfetchAssetmethod. - Engine: Added
findAssetSourceAssetsto theUBQinterface, allowing fetching of specific assets by ID. - Engine/Android: added
fetchAssetmethod to theAssetAPIinterface. AssetSource now includes an optionalfetchAssetmethod. - Engine/Swift: added
fetchAssetmethod to theAssetAPIinterface.AssetSourceprotocol now includes an optionalfetchAssetmethod. ThegetAssetmethod is removed. - Engine/Web: added
fetchAssetmethod to theAssetAPIinterface.AssetSourceprotocol now includes an optionalfetchAssetmethod. - Editor/Android: Changed localization keys to a common structure prefixed with
ly_img_editor_for easy customizations and added German translations. - Camera/Android: Changed localization keys to a common structure prefixed with
ly_img_camera_for easy customizations and added German translations. - Editor/iOS: Changed
AssetLibrarySource,AssetLibraryGroup,AssetLibraryTab,AssetLibraryTabView,NavigationLabel,SheetType.libraryAdd, and.libraryReplaceinitializers to accept aLocalizedStringResourceas title instead of aString. - Editor/iOS: Changed localization keys to a common structure prefixed with
ly_img_editor_for easy customizations and added German translations. - Camera/iOS: Changed localization keys to a common structure prefixed with
ly_img_camera_for easy customizations and added German translations. - Editor/Web: Introduce a new set of sticker assets that can be added by calling
addDefaultAssetSources - Editor/Web: Moved the default assets path from
https://cdn.img.ly/assets/v3tohttps://cdn.img.ly/assets/v4 - Editor/Swift: Packages for Apple platforms are now built with Xcode 16.4, which is the new minimum requirement for using them.
- Engine/Swift: Packages for Apple platforms are now built with Xcode 16.4, which is the new minimum requirement for using them.
Non Breaking Changes
- Editor/Web: Introduced a new scale slider for captions, allowing users to adjust the size of the captions directly from the preset panel.
- Editor/Web: Add feature API ids for crop related inputs
- Editor/Android: Added new
onLoadedcallback toEngineConfigurationthat is invoked when the editor is loaded and ready to be used. It is best to register callbacks, collect flows returned by the engine and apply editor settings in this callback. - Editor/Web: Adding force crop feature via
applyForceCropAPI - Editor/iOS: Added configurable onClose and onError callbacks.
- Editor/iOS: Added a default confirmation alert when closing the editor.
- Editor/React Native: Fixed unexpected behavior when opening camera inside the editor that caused the editor to close.
- Editor/Flutter: Fixed unexpected behavior when opening camera inside the editor that caused the editor to close.
- Editor/Web: Adjustments, effects, filters and blurs are now only enabled for images and videos by default. This can be easily changed by using the
cesdk.feature.enableAPI. - Editor: When selecting a child with all arrangement scopes disabled, the group’s rotation and resize gizmos now appear instead — allowing to move, resize, and rotate the group directly (provided the group itself has the necessary arrangement scopes).
- Editor/Web: The canvas menu will now be hidden by default during playback. If you wish to show it, you can use the feature predicate
ly.img.canvasMenuto control its visibility. - Engine: Fixed potential crash during export if the device runs out of memory.
- Editor/Web: Fixed an issue where the AnimationSubInspector was not positioned correctly.
- Engine: Removed crop component from blocks when switching to a non-croppable fill.
- Editor/Web: Fixed an issue where certain panels did not respond correctly to API calls.
- Editor/RN: Fixed compatibility issues with RN 0.77.0+/Expo 53+ during compilation due to signature mismatch.
- Engine/Android: Fixed not released GPU memory on repeated export, which could result in the device running out of memory.
- Editor/iOS: Fixed incorrect scope check when determining if a block can be moved. Previously, the “editor/add” scope was checked instead of the correct “layer/move” scope when evaluating whether a block can be moved forward or backward.
- Editor/Android: Fixed incorrect scope check when determining if a block can be moved. Previously, the “editor/add” scope was checked instead of the correct “layer/move” scope when evaluating whether a block can be moved forward or backward.
- Engine: Enable all scopes for the current user role when loading blocks from serialized resources in defaultApplyAsset.
- Engine/iOS: Fixed crashes during text editing.
- Engine: fixed an issue where toggling mute while in “Playback” mode would set the edit mode to “Transform”.
All Releases
v1.62.0 Changelog October 22, 2025
v1.61.0 Changelog October 8, 2025
v1.60.0 Changelog September 19, 2025
v1.59.2 Changelog September 12, 2025
v1.59.1 Changelog September 8, 2025
v1.59.0 Changelog September 2, 2025
v1.58.0 Changelog August 19, 2025
v1.57.1 Changelog August 15, 2025
v1.57.0 Changelog August 6, 2025
v1.56.0 Changelog July 24, 2025
v1.55.2 Changelog July 18, 2025
v1.55.1 Changelog July 11, 2025
v1.55.0 Changelog July 8, 2025
v1.54.1 Changelog July 2, 2025
v1.54.0 Changelog June 26, 2025
v1.53.0 Changelog June 12, 2025
v1.52.0 Changelog May 29, 2025
v1.51.0 Changelog May 19, 2025
v1.50.2 Changelog May 15, 2025
v1.50.1 Changelog May 9, 2025
v1.50.0 Changelog April 29, 2025
v1.49.1 Changelog April 21, 2025
v1.49.0 Changelog April 16, 2025
v1.48.1 Changelog April 11, 2025
v1.48.0 Changelog April 1, 2025
v1.47.0 Changelog March 20, 2025
v1.46.1 Changelog March 5, 2025
v1.46.0 Changelog March 4, 2025
v1.10.6 Changelog February 19, 2025
v1.45.0 Changelog February 19, 2025
v1.44.0 Changelog February 6, 2025
v1.43.0 Changelog January 21, 2025
v1.42.0 Changelog January 9, 2025
v1.41.1 Changelog December 16, 2024
v1.41.0 Changelog December 11, 2024
v1.40.1 Changelog December 6, 2024
v1.40.0 Changelog November 28, 2024
v1.39.0 Changelog November 12, 2024
v1.38.0 Changelog October 29, 2024
v1.37.0 Changelog October 14, 2024
v1.36.1 Changelog October 4, 2024
v1.36.0 Changelog September 30, 2024
v1.35.1 Changelog September 20, 2024
v1.35.0 Changelog September 16, 2024
v1.34.0 Changelog August 31, 2024
v1.10.5 Changelog August 30, 2024
v1.33.0 Changelog August 23, 2024
v1.10.4 Changelog August 21, 2024
v1.32.0 Changelog August 6, 2024
v1.31.0 Changelog July 18, 2024
v1.30.0 Changelog July 3, 2024
v1.29.0 Changelog June 20, 2024
v1.28.0 Changelog June 6, 2024
v1.27.1 Changelog May 23, 2024
v1.26.1 Changelog May 22, 2024
v1.27.0 Changelog May 21, 2024
v1.26.0 Changelog May 7, 2024
v1.25.0 Changelog April 23, 2024
v1.24.0 Changelog April 5, 2024
v1.23.0 Changelog March 26, 2024
v1.22.0 Changelog March 12, 2024
v1.21.1 Changelog February 27, 2024
v1.21.0 Changelog February 22, 2024
v1.20.0 Changelog January 25, 2024
v1.19.0 Changelog December 13, 2023
v1.18.1 Changelog November 29, 2023
v1.18.0 Changelog November 6, 2023
v1.10.2 Changelog October 26, 2023
v1.10.3 Changelog October 26, 2023
v1.17.0 Changelog October 9, 2023
v1.16.1 Changelog September 14, 2023
v1.16.0 Changelog September 8, 2023
v1.15.0 Changelog September 1, 2023
v1.14.0 Changelog July 21, 2023
v1.13.1 Changelog July 10, 2023
v1.13.0 Changelog July 3, 2023
v1.12.2 Changelog June 30, 2023
v1.12.1 Changelog June 12, 2023
v1.12.0 Changelog June 2, 2023
v1.11.1 Changelog May 17, 2023
v1.11.0 Changelog May 10, 2023
v1.10.1 Changelog March 29, 2023
v1.10.0 Changelog March 14, 2023
v1.9.2 Changelog January 18, 2023
v1.9.1 Changelog December 15, 2022
v1.9.0 Changelog December 12, 2022
v1.8.0 Changelog October 21, 2022
v1.7.0 Changelog August 11, 2022
v1.6.3 Changelog June 13, 2022
v1.6.2 Changelog May 24, 2022
v1.6.1 Changelog May 23, 2022
v1.6.0 Changelog May 16, 2022
v1.5.1 Changelog May 9, 2022
v1.4.7 Changelog May 3, 2022
v1.4.6 Changelog April 14, 2022
v1.5.0 Changelog April 4, 2022
v1.4.5 Changelog April 1, 2022
v1.4.4 Changelog March 9, 2022
v1.4.3 Changelog March 7, 2022
v1.4.2 Changelog February 23, 2022
v1.4.1 Changelog February 22, 2022
v1.4.0 Changelog February 18, 2022
v1.3.0 Changelog January 6, 2022
v1.2.1 Changelog November 30, 2021
v1.2.0 Changelog November 22, 2021
v1.1.1 Changelog October 29, 2021
v1.1.0 Changelog October 28, 2021
v1.0.0 Changelog August 18, 2021