Skip to main content


Web SDK version changelog

v5.4.3 - 2023/09/21


  • background segmentation regression.

v5.4.2 - 2023/09/15


  • Shutdown crash.
  • touchEvent handling on mobile platforms.

v5.4.1 - 2023/08/17


  • Reduced the initial size of deepar.js file from 1MB to 200kb. DeepAR Web will now lazy-load additional modules when it needs them.

v5.4.0 - 2023/08/11


  • DeepAR now takes in previewElement parameter at initialization. That is an HTML element like <div> which will be used for AR preview placement and sizing. It is intended to be used instead of canvas parameter which is now deprecated. This approach is now used so users do not have to manually crete and manage the canvas.
  • New method: getCanvas() which returnes the underlying canvas used for rendering.


  • Improved background segmentation performance.
  • [BREAKING CHANGE] Improved video recording. Videos are now produced in mp4 format that is compatible with the most devices. Audio capture from microphone is now available as well. The startVideoRecording() function is now async and returns Promise<void>. Before it was a plain function that returned void.
  • Reduced the initial size of deepar.js file from 1MB to 200kb. DeepAR Web will now lazy-load additional modules when it needs them.
  • The touchOccurred() function is now deprecated. DeepAR will now track the touches on the preview out-of-the-box.


  • Freezing that occurred when the background segmentation effects were loaded for the first time.
  • Frozen camera on iOS Safari when using startCamera().

v5.3.0 - 2023/07/17


  • glTF transmission support.
  • Background blur and background replacement API.
  • Mute/unmute all the sounds coming from DeepAR.
  • HDR textures support.


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


  • DeepAR would sometimes crash on shutdown.
  • 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


  • Wrist tracking.
  • Chrome extension support. Get in touch with us for more info.
  • CameraPermissionDenied error is now thrown when DeepAR requires camera from the browser, but the permission is denied.


  • 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 camera sync issues.
  • Fix meshes using bones (but not face bones) disappearing when face not visible.

v5.1.0 - 2023/03/24

  • Added scripting interop API.
  • Changed startCamera() can now be called again without stopVideo().
  • 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 changing video sources scrambles up the effect textures.


  • Completely new modern and user-friendly API. See migrating to v5
  • Improved error handling.
  • Reduced foot tracking initialization time and improved performance.
  • switchEffect() now resolves after the effect is loaded and all ML models are loaded. This mainly concerns switching effects with background segmentation or foot tracking which have somewhat longer first initialization time.
  • Now using WebGL2 canvas context for rendering instead of WebGL.
  • Fix non power of 2 textures not working.
  • Fix reduced depth precision when using postprocessing or render textures.
  • Fix eye position not working.


  • Updated the foot tracking API:
    • Added the initializeFootTracking method. Accepts a callback that is triggered when foot tracking is initialized.
    • Added the onFeetTracked callback which gets called when feet are tracked.
  • Greatly improved foot tracking's accuracy.


  • Fixed foot tracking when changing the video feed.
  • Render error message in case of too many polygons in effect.
  • Clean up logging.


  • Fixed foot tracking not working.
  • 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.
  • Added MIME type parameter for video recording.


  • SDK is now written in TypeScript and bundles appropriate .d.ts files with classes, types, methods and documentation.
  • SDK is now available on NPM npm install deepar.
  • Performance improvements.
  • 40% smaller JavaScript file and 20% smaller WebAssembly file.
  • New API:
    • setOffscreenRenderingEnabled - Force rendering on canvas even when tab is not focused.
  • Fix memory leak in processFrameRawPixels.
  • Fix caching u_modelNormal uniform when using the same material on multiple mesh renderers. More details:
  • Breaking changes:
    • DeepAR is now a class and is called with new keyword let deepAR = new DeepAR({ ... }).
    • Constructor parameters:
      • canvasWidth and canvasHeight - Passing these parameters has no effect anymore. In previous versions of SDK, these parameters would resize the canvas. You could change the canvas size with setCanvasSize() method. In new SDK, DeepAR will adapt to the canvas size. So you just need to set the size of the canvas. If canvas is resized, DeepAR will pick it up automatically.
      • numberOfFaces - This parameter has no effect anymore. DeepAR will track minimum number of faces according to the current configuration of loaded effects.
      • segmentationInfoZip - Path to the segmentation (background removal) model. This parameter is now changed to segmentationConfig.modelPath.
      • deeparWasmPath - Path to the deepar.wasm file.
    • Callbacks
      • You can provide callbacks in the constructor of the DeepAR class in the callbacks parameter.
      • Add, change or remove callbacks via DeepAR.callbacks property.


  • Add setFaceDetectionSensitivity function.
  • Add scripting console log API.


  • Introducing foot tracking as a beta* feature!
    • Allows you to easily create a shoe try-on app using the DeepAR Web SDK.
    • *Foot position component available only in DeepAR Studio 4.0-beta.
  • Breaking API changes:
    • Removed the libPath parameter.
    • Consequently, segmentationInfoZip should contain the full relative path to
  • 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 undefined symbols in the FaceData struct in onFaceTracked callback function.
  • Improved segmentation performance.


  • Fix landmark2D camera mirror bug
  • Fix faceRect empty bug


  • Greatly improved face tracking performance (up to 100%).
  • The numberOfFaces parameters is now removed when initializing DeepAR as we can determine the number of faces required in the runtime.


  • Fix for switch effect with path and face parameter not working.


  • Fix crash on shutdown.
  • New particle system feature


  • Improved touch handling.


  • No changes on Web SDK


  • Web recording


  • Bugfix in processImage(image) where the image didn't display properly when loading some image formats and changing resolutions.
  • Fixed scripting subsystem resource leaks
  • General refactoring and bugfixes


  • 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
  • General refactoring and bugfixes


  • New API reference pages
  • News features: physics and scripting
  • Core Engine optimisations and refactor


  • Improved background segmentation


  • Web background segmentation added
  • moveGameObject API method added (check API docs for more detail)
  • exposed fireTrigger API method to trigger custom animation state triggers
  • Fixed setVideoElement call where the main processing loop was not started after the call
  • Stability and bugfixes


Major upgrade.

  • Added ability to process a single image in addition to the camera stream
  • Added ability to change bool and texture parameters to changeParameter API
  • Bugfixes and stability issues


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

v1.4.6 - 28/02/2020

  • Fixed issue with numberOfFaces less than 4

v1.4.5 - 09/10/2019

  • Get face data for each face
  • Enable multi face tracking during the initialization

v1.4.4 - 04/10/2019

  • Change transform API

v1.3.2 - 31/01/2019

  • External camera

v1.3.1 - 08/01/2019

  • Multi face tracking
  • setCanvasSize function to reset the viewport size

v1.3 - 02/01/2019

  • Added onFaceTracked

v1.2.5 - 05/11/2018

  • Added audio playback

v1.2.4 - 18/10/2018

  • Improved API and documentation
  • Transition to Web Assembly