Version v1.81.0 Changelog August 24, 2026
Breaking Changes
- Engine/Android: Removed
TransitionType.None. To remove a transition, destroy the transition block returned byengine.block.getTransition(...).
Non Breaking Changes
- Engine/Android, Editor/Android: Added portable CE.SDK Android agent skills for documentation, explanations, and project scaffolding with Kotlin and Jetpack Compose.
- Editor/Android: Added UI support for transitions, including the
SheetType.Transitionsheet type,InspectorBar.Button.rememberTransition, and buttons in theTimeline. - Editor/Android: Added animation and transition previews for a better editing experience.
- Engine/Web/Android/iOS:
scene.saveToArchiveaccepts a compression option for the scene inside the archive. - Plugins/iOS: Add the
IMGLYPluginAutoCaptionsplugin for automatic caption generation in the video editor. RegisteringAutoCaptionsPluginadds a primary “Generate Automatically” action to the Add Captions sheet that transcribes the scene’s audible content and creates styled, time-synced captions. The built-inGatewayTranscriptionProviderruns the ElevenLabs Scribe v2 speech-to-text model through the IMG.LY AI Gateway using an IMG.LY API key; any other speech-to-text service can be integrated by implementingTranscriptionProvider. - Editor/iOS: Add
EditorConfiguration.Builder.captionsGeneration(_:)to back the Add Captions sheet’s “Generate Automatically” action with a custom caption generation callback. - Editor/iOS: Add caption editing to the video editor. Register the
Dock.Buttons.captions()dock button to let users create captions manually, import SRT/VTT files, edit caption text and timing on a dedicated timeline lane, apply style presets, and fine-tune a selected caption from the caption inspector (Edit Captions, Style, Split, Format, Fill & Stroke, Text Background, Delete). While editing, an action bar above the keyboard merges, splits, adds, and deletes captions, and steps to the caption above or below; merging, adding, and deleting are also available by swiping a row. Return splits a caption at the cursor — or starts the next one at the end of the text — and Backspace at the start merges into the caption above, or deletes it when empty. Style presets and core styling — font, size, alignment, colors, and background — apply to every caption on the track. Captions are burned into the exported video by the engine. - Engine/Swift, Editor/iOS: Added portable CE.SDK Swift agent skills for documentation, explanations, and project scaffolding across iOS, macOS, and Mac Catalyst.
- Editor/Web: Transitions can now be opened from the inspector bar and the inspector panel.
- Engine: Scenes and archives are now compressed with Zstd by default, making saved scenes far smaller and both saving and loading faster. Saved scene strings change shape: they carry a
UBQ2prefix instead ofUBQ1. Loading accepts either, so existing scenes keep working. - Editor/Android: Fixed the background removal plugin decoding the source image on the main thread, which blocked the UI and triggered a StrictMode
DiskReadViolation. - Editor/Android: Fixed the editor reading file modification times on the main thread when loading file-based images, which triggered a StrictMode
DiskReadViolation. - Camera/Android: Fixed the photo preview reading the captured file’s modification time on the main thread, which triggered a StrictMode
DiskReadViolation. - Engine/Android: HDR videos (HDR10/PQ and HLG) are now tone-mapped to SDR during decoding, fixing severely incorrect colors in preview and export. This uses the HDR-to-SDR tone-mapping request introduced in Android 12, and only takes effect where the device’s video decoder supports it — in practice recent Qualcomm/Snapdragon hardware decoders.
- Engine/Android: Fixed a StrictMode
LeakedClosableViolationcaused by the internal OkHttp cache when a network fetch returned an error response (e.g. HTTP 404). - Editor/Android: the Resize sheet no longer shows the Crop/Cover/Fit content fill mode picker, honoring
SheetType.Crop.Mode.ResizeAll.hasContentFillMode = falseand matching iOS - Editor/Android: Fixed
shareFileresolving the file’s content uri on the main thread, which triggered a StrictModeDiskReadViolationwhen sharing an exported file. The uri is now resolved on a background thread and any failure is surfaced via theerrorstate instead of being thrown. - Engine: Fixed
saveToArchiveleaving remote URLs in the saved scene instead of bundling the referenced bytes. - Engine: Fixed variable-font handling in scene and block archives.
- Engine: Fixed a crash in audio waveform thumbnail generation. The crash could happen once the last requested sample was delivered or when the audio block was destroyed from within the chunk callback.
- Engine: Scene files no longer store the
basePathsetting. AbasePathstored by an older version is ignored on load. - Editor/Flutter: Fixed an issue where effects applied to paused videos were not immediately visible when using TextureView.
- Engine/Web: Fixed
scene.getMode()throwing aTypeErrorinstead of returningnullwhen no scene exists. - Engine: A text or caption style preset no longer replaces the text of a block that already exists. A preset writes its own text only when it makes a new block.
- Engine: PDF export with
exportPdfWithHighCompatibility: falsenow embeds photos as their original JPEG data if possible, drastically reducing export time and file size of image-heavy documents such as photo books. - Engine: Added the
pdfImageQualityexport option. Values below the default of 1.0 encode rasterized images (e.g. with effects applied) as lossy JPEG instead of lossless. Rasterized content that keeps transparency stays lossless, because JPEG has no alpha channel. - Engine/Swift: Fixed cancelling a video export leaving the device encoding the whole video.
BlockApi.exportVideosuspended on the engine callback and ignored task cancellation, so dropping the returned stream reported the export as cancelled while the background export engine kept rendering and encoding every remaining frame, holding CPU, GPU and battery until it finished. Cancelling now stops the export and releases the background engine. - Camera/Android: Fixed the photo/video mode toggle ignoring taps in mixed capture mode. The selection indicator briefly moved to the tapped icon and then snapped back without switching the capture mode.
- Engine/Linux: Improved compatibility with H.265 video files in the licensed codec pipeline.