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.1 Changelog November 7, 2025

Non Breaking Changes

  • Engine: Fixed an issue where export calls failed with a Scene contains disallowed schemes… error.

Version v1.63.0 Changelog November 7, 2025

Breaking Changes

  • Editor/Web: Migrated document colors to use engine-native ly.img.scene.colors asset source, removing the frontend implementation entirely. The old ly.img.colors.documentColors source ID is no longer available. Custom integrations explicitly referencing the old source ID must update configurations to use ly.img.scene.colors instead. The migration is automatic for users relying on default configurations.
  • Editor/iOS: Add support for groups in video editor timeline
  • Editor/Android: Add support for groups in video editor timeline
  • Editor/iOS: Removed DefaultAssetLibrary.textAndTextComponents property. Use DefaultAssetLibrary.text instead, which now includes text components by default.
  • Editor/iOS: Removed DefaultAssetLibrary.text(_: SceneMode?) function. Use the DefaultAssetLibrary.text property instead.
  • Editor/Android: Removed LibraryContent.TextAndTextComponents property. Use LibraryContent.Text instead, which now includes text components by default.
  • Editor/Android: Removed LibraryCategory.TextAndTextComponents property. Use LibraryCategory.Text instead, which now includes text components by default.
  • Engine: The createAudioFromVideo and createAudiosFromVideo APIs now have an AudioFromVideoOptions parameter consisting of:
    • keepTrimSettings (default: true): When enabled, the extracted audio block will have the same duration as the video’s effective (trimmed) duration. When disabled, the full audio track is extracted.
    • muteOriginalVideo (default: false): When enabled, the original video’s audio track is muted after extraction.
  • Editor/Web: Add new “modern” UI scaling option

Non Breaking Changes

  • Engine: Added isCropAspectRatioLocked() and setCropAspectRatioLocked() APIs to query and control crop aspect ratio locking. When enabled, crop handles maintain the current aspect ratio during resize operations.
  • Editor/Web: Improved crop panel aspect ratio lock button to control both text inputs and crop handles, with automatic synchronization when selecting crop presets (1:1, Free, etc.).
  • Editor/iOS: Added assetSourceIDs parameter to SheetType.crop allowing to specify asset sources for the crop sheet used by InspectorBar.Buttons.crop and Dock.Buttons.crop actions.
  • Editor/Web: Add native eye dropper tool for color sampling in color inspector and color preview boxes (Chrome, Edge, Opera)
  • Engine: Added findAllMediaURIs API that retrieves all valid media file URIs (http://, https://, file://) referenced by blocks in a scene
  • Engine/Web: Licenses are now optional. Without a license, a watermark is shown on exports. Licenses remove the watermark and are required for production use.
  • Editor/Web: Updated all examples to demonstrate the SDK works without a license.
  • Engine/Web: Added video support for Safari 26.0 and newer.
  • Engine: Added editor APIs to enable or disable selection for a block and query its current selection state via setSelectionEnabled and isSelectionEnabled.
  • Engine: Fixed possible empty audio samples in video exports if the audio decoder could not provide the decoded audio data in time.
  • Engine/Android: Fixed empty audio in exported videos for some video files especially on the Samsung Galaxy S24 and S25 devices.
  • Editor/Android: Fixed a jump of the video preview playback position if the video is paused and set to playing again.
  • Editor/iOS: Fixed crop rectangle not expanding back to full size after multiple rotations with fixed aspect ratios
  • Editor/Web: Fixed broken ligatures in ElsieSwashCaps font
  • Editor/Android: Fixed broken ligatures in ElsieSwashCaps font
  • Editor/iOS: Fixed broken ligatures in ElsieSwashCaps font
  • Editor: Improve selection frame handle visibility for text blocks with fixed frame widths by prioritizing right side handle over corner handles when overlapping
  • Editor/Web: Fixed video playback being stopped by selection changes when using the API to programmatically start playback. A 300ms grace period now allows initialization sequences to complete without interference while preserving the UI behavior of stopping playback when users manually click on clips.
  • Editor/Web: Add feature flag ly.img.crop.panel.autoOpen to control automatic opening of crop panel when entering crop edit mode (defaults to true for backward compatibility)
  • Editor/Web: Importing scenes from archives is now more memory efficient. Blob URLs are now used instead of Data URLs avoiding base64 encoding overhead.
  • fix(Engine): Fix Document Color showing multiple highlights (default and selected color) after changing text color
  • Engine/Web: Add objectURL return type to utils.loadFile() API for efficient blob URL creation without manual conversion. This avoids base64 encoding overhead when loading large archive files.
  • Editor/iOS: Fixed potential voiceover crashes
  • Editor/Web: Fix document color selection state not updating properly when selected element changes

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).

All Releases

v1.62.1 Changelog November 7, 2025
v1.63.0 Changelog November 7, 2025
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