Search
Loading...
Skip to content

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:) with AssetSource.fetchAsset(id:options:) by adding FetchAssetOptions argument. The replaced function AssetSource.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:) with AssetSource.fetchAsset(id:options:) by adding FetchAssetOptions argument. The replaced function AssetSource.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.addSystemGalleryAssetSources to register device gallery sources (all, image, video) and wire them into the default configuration.
  • Editor/Android: Introduced SystemGalleryAssetSource and SystemGalleryAssetSourceType to 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 keeping Dock.Button.rememberSystemGallery() as the default system gallery entry.
  • Engine/Web: Add optional clipType context parameter to engine.asset.apply() API for explicit placement control
  • Engine/Web: Stabilize middleware APIs by renaming unstable_registerApplyAssetMiddleware to registerApplyMiddleware and unstable_registerApplyAssetToBlockMiddleware to registerApplyToBlockMiddleware
  • 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 clipType context parameter
  • Editor/Web: Add clipType option to AssetLibraryPanelPayload for panel-level placement configuration
  • Editor/Web: Update addClip action to use clipType: 'overlay' for correct background track placement
  • Engine/Web: Deprecate ui.colorLibraries, ui.typefaceLibraries, ui.pagePresetsLibraries, and ui.cropPresetsLibraries configuration properties in favor of the new API-driven approach using cesdk.ui.updateAssetLibraryEntry(). The deprecated properties will be automatically migrated with console warnings. See migration guide in the deprecation warnings for details.
  • Engine/Web: Add @deprecated JSDoc marker to ui.pageFormats configuration property. This property is now deprecated in favor of using cesdk.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.iconSize in favor of cesdk.engine.editor.setSetting('dock/iconSize', 'normal' | 'large').
  • Editor/Web: Deprecated configuration.ui.elements.dock.hideLabelsin favor of cesdk.engine.editor.setSetting('dock/hideLabels', boolean).
  • Engine/Swift: Added a parameter onDisallowedResourceScheme to SceneAPI.saveToString and BlockAPI.saveToString to 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 locale parameter to cesdk.asset.fetchAsset to support fetching assets in different locales. The locale parameter 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/fetchCredentials setting that accepts "omit", "same-origin" (default), or "include" to control cookie behavior for cross-origin asset fetches
  • Editor/Web: Add currentIds parameter to updateAssetLibraryEntry sourceIds callback for easier extension of existing source IDs without manual getAssetLibraryEntry calls
  • Engine: Fixed getAVResourceTotalDuration on 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::setPlaybackSpeed and UBQ::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. Use cesdk.feature.enable('ly.img.settings') instead.
  • Editor/Web: Deprecated ui.elements.panels.inspector configuration option. Use cesdk.feature.enable('ly.img.inspector'), cesdk.ui.setPanelPosition(), and cesdk.ui.setPanelFloating() instead.
  • Editor/Web: Deprecated ui.elements.panels.assetLibrary configuration option. Use cesdk.feature.enable('ly.img.assetLibrary') and cesdk.ui.setPanelFloating() instead.
  • Editor/Web: Deprecated ui.elements.dock.show configuration option. Use cesdk.feature.enable('ly.img.dock') instead.
  • Editor/Web: Deprecated ui.elements.libraries.insert.floating configuration option. Use cesdk.ui.setPanelFloating('ly.img.assetLibrary') instead.
  • Editor/Web: Deprecated ui.elements.libraries.replace.floating configuration option. Use cesdk.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 and getTextFontSizes 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. Use cesdk.feature.enable('ly.img.opacity') instead.
  • Editor/Web: Deprecated ui.elements.blocks.transform configuration option. Use cesdk.feature.enable('ly.img.transform.position'), cesdk.feature.enable('ly.img.transform.size'), cesdk.feature.enable('ly.img.transform.rotation'), and cesdk.feature.enable('ly.img.transform.flip') instead.
  • Editor/Web: Deprecated ui.elements.blocks['//ly.img.ubq/text'].advanced configuration option. Use cesdk.feature.enable('ly.img.text.advanced') instead.
  • Editor/Web: Deprecated ui.elements.blocks['//ly.img.ubq/text'].color configuration option. Use cesdk.feature.enable('ly.img.fill') instead.
  • Editor/Web: Deprecated ui.elements.blocks.adjustments configuration option. Use cesdk.feature.enable('ly.img.adjustment') instead.
  • Editor/Web: Deprecated ui.elements.blocks.filters configuration option. Use cesdk.feature.enable('ly.img.filter') instead.
  • Editor/Web: Deprecated ui.elements.blocks.effects configuration option. Use cesdk.feature.enable('ly.img.effect') instead.
  • Editor/Web: Deprecated ui.elements.blocks.blur configuration option. Use cesdk.feature.enable('ly.img.blur') instead.
  • Editor/Web: Deprecated ui.elements.blocks.crop configuration option. Use cesdk.feature.enable('ly.img.crop') instead.
  • Editor/Web: Deprecated ui.elements.blocks['//ly.img.ubq/page'].format configuration option. Use cesdk.feature.enable('ly.img.page.resize') instead.
  • Editor/Web: Deprecated ui.elements.blocks['//ly.img.ubq/page'].manage configuration option. Use cesdk.feature.enable('ly.img.page.add'), cesdk.feature.enable('ly.img.page.move'), and cesdk.feature.enable('ly.img.duplicate') instead.
  • Engine/Web: Add new stable getView() and setView() APIs for runtime view mode switching
  • Engine/Web: Deprecate experimental unstable_getView() API in favor of stable getView()
  • Engine/Web: Deprecate configuration.ui.elements.view configuration property in favor of setView()
  • 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 new startAudioOutputDevice 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 when animate: 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

Version v1.60.0 Changelog September 19, 2025

Breaking Changes

  • Editor/iOS: Renamed DefaultAssetLibrary.uploadsLabel to DefaultAssetLibrary.photoRollLabel for the new PhotoRollAssetSource.
  • Editor/iOS: Removed DefaultAssetLibrary.Tab.uploads and replaced it with DefaultAssetLibrary.Tab.photoRoll that uses the new PhotoRollAssetSource. Create a custom AssetLibrary to revert to the previous behavior based on Engine.DemoAssetSource.imageUpload/videoUpload.
  • Editor/iOS: Deprecated Dock.Buttons.photoRoll in favor of Dock.Buttons.imglyPhotoRoll that uses the new PhotoRollAssetSource. Use Dock.Buttons.systemPhotoRoll to use the previous behavior.
  • Editor/iOS: Deprecated EditorEvent.addFromPhotoRoll in favor of EditorEvent.addFromIMGLYPhotoRoll that uses the new PhotoRollAssetSource. Use EditorEvent.addFromSystemPhotoRoll to use the previous behavior.
  • Editor/iOS: Added PhotoRollAssetSource integration with Photo Library, and added it to the default onCreate callback. If you use the DefaultAssetLibrary with the new DefaultAssetLibrary.Tab.photoRoll, the new Dock.Buttons.imglyPhotoRoll, or the new EditorEvent.addFromIMGLYPhotoRoll, you also need to add it to your onCreate callback implementation.
  • Editor/iOS: Add NSPhotoLibraryUsageDescription to your Info.plist if you are using the new PhotoRollAssetSource, the DefaultAssetLibrary with the new DefaultAssetLibrary.Tab.photoRoll, the new Dock.Buttons.imglyPhotoRoll, or the new EditorEvent.addFromIMGLYPhotoRoll.
  • Editor/iOS: Added a generic constraint to AssetPreview for 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 disableTooltips configuration option to asset library entries, allowing tooltips to be disabled for asset cards when set to true
  • 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 theme configuration property. Use cesdk.ui.setTheme() and cesdk.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.scale configuration property. Use cesdk.ui.setScale() and cesdk.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 setSetting and getSetting methods 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, and SettingValue for 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 SettingsColor type 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 setSetting and getSetting API.
  • 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 ColorMaskingSettings and GlobalScopes complex 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 createAudioFromVideo or createAudiosFromVideo APIs 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 split block 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) and selectNewBlock (to choose if the new block will be selected).
  • Editor/Web: Add new cesdk.actions API for centralized actions management with register(), get(), and run() methods to handle export, save, load, and other user interaction actions
  • Editor/Web: Add new cesdk.utils API 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.callbacks API with automatic migration support. The deprecated callbacks and their new API equivalents are:
    • callbacks.onBack → Use Order API with ly.img.back.navigationBar component
    • callbacks.onClose → Use Order API with ly.img.close.navigationBar component
    • callbacks.onSavecesdk.callbacks.register('saveScene', callback)
    • callbacks.onSharecesdk.callbacks.register('shareScene', callback)
    • callbacks.onExportcesdk.callbacks.register('exportDesign', callback)
    • callbacks.onDownloadcesdk.callbacks.register('exportScene', callback)
    • callbacks.onLoadcesdk.callbacks.register('importScene', callback)
    • callbacks.onLoadArchivecesdk.callbacks.register('importScene', callback) with format: 'archive'
    • callbacks.onUploadcesdk.callbacks.register('uploadFile', callback)
    • callbacks.onUnsupportedBrowsercesdk.callbacks.register('onUnsupportedBrowser', callback)
  • Engine/Web: Add upload.supportedMimeTypes setting 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 addClip action to enable customization of clip addition behavior in video timeline. Developers can now override the default behavior by registering their own addClip action.
  • Editor/Web: Deprecate setBackgroundTrackAssetLibraryEntries(), getBackgroundTrackAssetLibraryEntries() methods and backgroundTrackLibraryEntries configuration option in favor of the new addClip action approach.
  • Editor/iOS: Prepared the NavigationBar to 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 locale configuration option in favor of cesdk.i18n.setLocale() API. Set locale after instance creation instead of in config.
  • Editor/Web: Deprecated i18n configuration option in favor of cesdk.i18n.setTranslations() API. Set translations after instance creation instead of in config.
  • Editor/Web: Deprecated cesdk.setTranslations() in favor of cesdk.i18n.setTranslations(). The old method will be removed in a future version.
  • Editor/Android: Fixed touch/pinchAction value 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 addPlugin method is now async and the EnginePlugin.initialize function can return a Promise.
  • Editor/Web: Added support for async plugin initialization. The addPlugin method is now async and the EditorPlugin.initialize function can return a Promise.
  • Editor/Web: Updated all plugin examples and documentation to use await with addPlugin calls.
  • 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 cesdk parameter in BuilderRenderFunctionContext is now required (previously optional). Custom components and panels can now directly access the full CE.SDK API via the cesdk parameter.
  • 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 loadFromArchiveURL loading of scene archives with empty font files.
  • Engine: Added new APIs to extract audio from videos. getAudioTrackCountFromVideo retrieves the number of available audio tracks from a video, getAudioInfoFromVideo retrieves information from all the audio tracks in a video (such as language, track name, codec), createAudioFromVideo extracts a specific audio track from a video and creates an audio block with it and createAudiosFromVideo does the same as createAudioFromVideo but 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 createFromImage API 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)

Non Breaking Changes

  • Engine: Added addLocalAssetSourceFromJSONURI method 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.saveToString and Block.saveToString to 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 overrideEditorConfig boolean flag to loadSceneFromString, loadSceneFromURL and loadSceneFromArchiveURL which controls whether to override the editor settings from the loaded scene.
  • Engine: Reject Infinity values in all setters.
  • Engine: Reject NaN values in block.scale and block.setRotation.
  • Engine/Web: Fixed issue when export produced a corrupted file.
  • Editor/Web: Fix filter library only loading if ly.img.filter.duotone and ly.img.filter.lut asset 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/html MIME 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 clampThumbnailTextureSizes setting 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 clampThumbnailTextureSizes setting 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.assetBaseURL for Engine.addDefaultAssetSources to https://cdn.img.ly/assets/v4.
  • Editor/iOS: Updated DefaultAssetLibrary.shapes and DefaultAssetLibrary.stickers with new sections from v4 assets.
  • Engine/Android: Updated the default value of baseUri in Engine.addDefaultAssetSources to https://cdn.img.ly/assets/v4.
  • Editor/Android: Updated LibraryContent.Shapes and LibraryContent.Stickers with new sections from v4 assets.

Non Breaking Changes

  • Editor/iOS: Allow Kingfisher 7 and 8 dependency.
  • Engine: From now on addAssetToSource does 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 applyTemplateFromString if the current scene has a different design unit or DPI setting.
  • Engine: Add asset.addFromJSONString endpoint to streamline asset source creation.
  • Editor/Web: Introduced a new builder.Component component that allows rendering custom components that were registered using the cesdk.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.navigationBar component 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

Version v1.56.0 Changelog July 24, 2025

Breaking Changes

  • Editor/Web: Updated the ly.img.vectorpath asset library with new shapes. Those can be accessed by calling cesdk.addDefaultAssetSources().
  • Engine: Added fetchAsset method to the AssetSource interface, allowing fetching of specific assets by ID. This is a breaking change for custom asset source implementations, which must now implement or handle the new fetchAsset method.
  • Engine: Added findAssetSourceAssets to the UBQ interface, allowing fetching of specific assets by ID.
  • Engine/Android: added fetchAsset method to the AssetAPI interface. AssetSource now includes an optional fetchAsset method.
  • Engine/Swift: added fetchAsset method to the AssetAPI interface. AssetSource protocol now includes an optional fetchAsset method. The getAsset method is removed.
  • Engine/Web: added fetchAsset method to the AssetAPI interface. AssetSource protocol now includes an optional fetchAsset method.
  • 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 .libraryReplace initializers to accept a LocalizedStringResource as title instead of a String.
  • 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/v3 to https://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 onLoaded callback to EngineConfiguration that 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 applyForceCrop API
  • 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.enable API.
  • 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.canvasMenu to 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