Skip to main content


iOS SDK version changelog

v5.5.2 - 2024/01/19


  • Using backgroundBlur with front camera doesn't work as expected.

v5.5.1 - 2023/12/22

No changes.

v5.5.0 - 2023/12/21

No changes.

v5.4.4 - 2023/10/13

No changes.

v5.4.3 - 2023/09/21

No changes.

v5.4.2 - 2023/09/15


  • Offscreen rendering bug.
  • Priority inversion caused by bx::Thread.
  • Shutdown crash.

v5.4.1 - 2023/08/17

No changes.

v5.4.0 - 2023/08/11

No changes.

v5.3.0 - 2023/07/17


  • DeepAR for iOS is now published on CocoaPods and Swift Packages.
  • glTF transmission support.
  • Background blur and background replacement API.
  • Mute/unmute all the sounds coming from DeepAR.
  • HDR textures support.


  • Audio can now be played from multiple animation controllers at the same time. Previously, only one sound could be active.


  • Unloading effect from the unkwnown slot could break the currently loaded effect.
  • Crash caused by effects with scripting.
  • Audio not playing if part of initial node in animation controller.

v5.2.0 - 2023/05/23


  • Removed the polygon count limit in the scene which was ~100k before.
  • Improved rendering performance with regard to mesh instances.


  • Simple pendulum direction not consistent for front and back camera.
  • Sound not playing if part of the first state.
  • Crashing when passing null to changeParameter API for the component parameter.

v5.1.1 - 2023/03/31

  • Fix front camera problems with beauty filters.
  • Fix meshes using bones (but not face bones) disappearing when face not visible.

v5.1.0 - 2023/03/24

  • Added version API DeepAR.sdkVersion.
  • Added scripting interop API.
  • Fix intermittent low FPS on video recordings issue.
  • Fix 2D face landmarks not being mirrored properly.
  • Fix multiple calles to changeParameterTexture crashes the app.
  • Fix blend-shapes are inverted on effects using 2D face landmarks like eyes and lips.
  • Fix effects with skin texture crashing.


  • No changes.


  • Added startCameraWithAudio to CameraController. Use this instead of startCamera to avoid dark fade-in effect when recording videos.


  • Render error message in case of too many polygons in effect.


  • Added texture size uniform that is updated every frame for every texture.
    • In shaders it is accessible with TEXTURE2D_SIZE(sampler_name) macro.


  • Updated the Scripting API:
    • Added the Face Position component class.
    • Added trigger events and functions.
    • Fixed Debug.renderText() default color parameters.
  • Fixed video texture support when video is placed in a subdirectory (with new DeepAR Studio).



  • No changes on iOS SDK


  • Added new Dynamic UVs options in SDK and Studio.
    • For dynamic UVs you can choose between face and real options.
    • face option's behaviour is the same as it was before - UVs are adjusted for sampling the person’s face from camera texture.
    • real option adjusts the UVs so that the camera texture is sampled based on the real positions of the mesh vertices.
  • Fixed dynamic UVs not working for nodes that are not in face space.
    • Dynamic UVs now work for everything:
      • Nodes in orthographic layers.
      • Nodes in perspective layers.
      • Nodes in face space.
      • Nodes in face space with parent or child node transformations.
      • Nodes not in face space.
  • Fixed eye position component mirroring.


  • Fix landmark2D camera mirror bug


  • Improved face tracking performance.


  • Fix for audio offset with prepare video recording.
  • Fix for switch effect with path and face parameter not working.
  • New video textures feature.



  • Improved touch handling.


  • No changes on iOS SDK


  • No changes on iOS SDK


  • Fixed crash when recording video and changing camera
  • Fixed scripting subsystem resource leaks
  • General refactoring and bugfixes


  • Want to add focus on touch or flash to your DeepAR camera? You can now use our Camera Controller implementation and modify it in any way you want. Check it out on our GitHub example.
  • DeepAR can stutter when starting to record a video. For this reason we have videoRecordingWarmupEnabled flag which you can use to avoid this issue. Check out our documentation on this feature.
  • Want to have more control over physics components in runtime? You can now enable/disable entire physics with enablePhysics method or show/hide physics colliders showColliders method. Also, you can change any physics component parameter through our ChangeParameter API, see documentation.
  • General refactoring and bugfixes


  • New API reference pages
  • News features: physics and scripting (check out our guides here)
  • Core Engine optimisations and refactor
  • Setting the name and location of a video recording is now possible
  • We are now bundling iOS SDK in XCFramework so that device and simulator frameworks are in one package


  • Improved audio/video sync for video recording (audio and video should now be perfectly synchronized).
  • Known issue: switching cameras while video recording causes audio/video to go out of sync (so you should disable the camera switching while video recording if the user is also recording audio).


  • bugfix: if CameraController started with the back camera, the image was flipped
  • added touchStart and touchEnd methods that work with new Hide on touch component of DeepAR Studio


  • bugfix: DeepAR crashing for feeding frames of non-standard aspect ratios


  • Custom image format for the output of DeepAR capture. When you call startCapture method, you will be served frames from the DeepAR through the frameAvaliable delegate method. Now you can choose the image format of that output frame.Supported image formats are:
    • RGBA (default)
    • BGRA
    • ARGB
    • ABGR
  • Black frames and flickering in video recording issue fixed
  • changeParameter method floatValue override fixed. There was a bug in this version of the method where the parameter would not be passed to the DeepAR. It was usually used to control Blend shapes of the effects.
  • Other smaller stability improvements and bugfixes


  • Added moveGameObject API method
  • Users can now change the additional game object and material properties with changeParameter API like enable animation, blend mode, culling mode, various material flags etc. Read more here.
  • Rendering engine optimizations providing better performance on lower-end iOS devices and faster background segmentation
  • Fixed bug where didStartVideoRecording delegate method was not called
  • Other various stability improvements and bugfixes


Major upgrade, check the API docs for more in detail features explanation

  • Frame-by-frame/Continuous rendering mode (live mode on/off) added
  • Off-screen/On-screen rendering mode added
  • Seamless switching between any rendering mode

API changes:

  • removed parameter orientation from processFrame
  • initializeWithWidth now takes a parameter of type CAEAGLLayer instead of a generic CALayer for the last parameter
  • added following new methods: initializeOffscreenWithWidth, switchToRenderingOffscreenWithWidth, switchToRenderingToViewWithFrame, changeLiveMode, processFrameAndReturn


  • Video recording memory leaks fixed
  • Using native camera texture through enqueCameraFrame API
  • Various other stability and bug fixes


  • Added support for 1920x1080 resolution
  • Computer vision only on/off mode added
  • Bugfixes and optimizations


  • Major upgrade
  • New segmentation model
  • Tracking improvements
  • Bugfixes and optimizations


  • The microphone permission is asked when starting to record instead of on launch
  • Fixed first black frame when recording the video


  • Bugfixes
  • Performance improvements
  • When the resolution change, frame output will reset


  • Bugfixes


  • Bugfixes
  • Support for changing textures at runtime
  • Game object transforms can now be changed at runtime
  • Textures can now be changed at runtime
  • Segmentation masks now work properly on the first frame
  • Color sampling now works properly on the first frame


  • Bugfixes
  • Minimum iOS version set to 11


  • Fixed frame output bug
  • Fixed audio sync error when recording with pause/resume


  • Bugfixes
  • Video API update


  • Image tracking support
  • Improved handling multiple faces
  • Foreground and Hair segmentation support


  • License key support


  • Reduced CPU usage


  • Support for hair segmentation (enabled on request)
  • Added didFinishShutdown to the ARViewDelegate


  • Added support for 1920x1080
  • Improved external camera handling
  • Added face detection sensitivity setting
  • Added face rect output


  • Added function to initialize DeepAR with the back camera
  • Added functions to change the focus and exposure points of interest
  • Improved how camera orientation changes
  • iPhone X now takes higher resolution screenshots
  • Bugfix: changing orientation while using the back camera
  • Other bugfixes


  • Bugfixes and performance improvements


  • Updated docs


  • Added API for getting the raw face data (face pose and landmark coordinates)


  • Added possibility to record the video without audio


  • Fixed issues with external camera handling


  • Fixed issue when audio stops being recorded on camera switch


  • Fixed issue with another OpenGL view while recording or frame output in progress


  • Fixed issues with additional OpenGL view in the same screen


  • Improved performance
  • Added option to use different camera resolution


  • iPhone simulator build


  • Added blink detection


  • Added cancelSwitchEffect method


  • Added simple physics simulation
  • Added panorama capabilities
  • Improved face tracking


  • Added iMessage sample


  • Fixed crash when shutdown is called shortly after prepare/start video recording.


  • Fixed memory leaks


  • Added cropMode setting


  • Fixed bug when rendering is resumed on another screen on lock/unlock device


  • Added method to prepare the video recording in advance
  • Fixed bug when sometimes the video recorded is black
  • Fixed bug when quickly shutting down the AR engine and then initializing it again


  • Added the option of passing the video compression parameters
  • Reduced delay between the call of startVideoRecording and the actual start of video recording