Changelog

Version v164 - June 2, 2023

New

  • Added AudioGraphModule JaveScript API, which enables the creation and manipulation of sound effects graphs.

Removed

  • The ability to create patch assets from the Shader Asset menu has been deprecated. To use custom properties with a material, use a shader code asset material instead.

Download: Windows | macOS

Version v163 - May 16, 2023

New

  • Added 6 new effect templates that use the camera depth texture: Camera Blur, Water, World Texture, Fog, Torchlight and Parallax.

Known issues

Version v162 - May 3, 2023

Improved

  • Bug fixes and performance improvements.

Version v161 - April 25, 2023

Improved

Version v160 - April 11, 2023

New

Improved

  • Block initialisation parameters can now be accessed without adding the ScriptingDynamicInstantiation capability to your project.
  • AnimationClip is now available as a type for block inputs and outputs.

Version v159.1 - March 28, 2023

Removed

  • In v159 we incorrectly communicated the deprecation of the Meta Spark Studio command line tool. Meta Spark Studio command line tool, with bug fixes, can be found in this update.

Version v159 - March 21, 2023

Removed

  • The Meta Spark Studio command line tool has been deprecated.

Version 158.1 - March 10, 2023

Fixed

  • A security vulnerability in Meta Spark Studio for Windows and MacOS has been fixed. We have no evidence that anyone has been affected by the vulnerability. However, we strongly recommend you update to this version of Meta Spark Studio (v158.1). We remain committed to the safety of our users, and apologize for the inconvenience.

Version 158 - March 7, 2023

Improved

  • The Pulse Merge patch can now be used with up to 8 inputs.
  • Scene.create() now follows the correct naming convention for SVG images (SvgImage).

Removed

  • Persistence.userScope and the StorageScope class have been removed from the Persistance API. To update old projects, use Persistance.local.

Version 156.1 - February 21, 2023

  • Bug fixes and performance improvements.

Version 156 - February 9, 2023

  • Bug fixes and performance improvements.

Version 155 - January 24, 2023

Improved

SDK Changelog

  • std::getTime() uniform API in SparkSL will now properly report the time from the start of the effect, instead of creation time of the material.

Version 154 - December 20, 2022

New

Improved

  • Bug fix: materials can now be renamed in projects.

Removed

  • PersonSegmentationModule has been deprecated. All APIs have been moved to SegmentationModule.

Version 153 - December 13, 2022

Improved

  • The physically-based material Occlusion, Roughness and Metallic (ORM) property has been split into two separate properties: Occlusion and Roughness-Metallic.

Known issues

  • Some users may experience an error when trying to rename materials in projects.

Version 152 - November 28, 2022

New

Improved

Version 151 - November 14, 2022

Improved

  • Bug fix: items can now be dragged into undocked windows above other windows. For example, items can be dragged into the Patch Editor above the Asset Library.
  • Bug fix: all keyboard shortcuts now work correctly when the Patch Editor is undocked.

SDK changelog

  • Bug fix: materials created with Materials.clone() will no longer be missing properties.

Version 150 - November 1, 2022

New

  • Use multiplane tracking to create effects where multiple planes, both vertical and horizontal, are identified and tracked in the scene. Two new templates demonstrate the Hit Test patch, the Point Trackable patch and the WorldTracking API.
  • Add haptic feedback to your effect using the new HapticFeedback API. Please note that haptic feedback is not played back in Meta Spark Player on some versions of iOS when the effect contains both haptic feedback and audio capabilities.

Improved

  • Click the undock icon at the top right of the Patch Editor to detach it from the main Meta Spark Studio interface.

Version 149 - October 19, 2022

New

Version 148 - October 11, 2022

New

  • Spark AR Studio is now called Meta Spark Studio. Find out more.
  • Test experiences using one of six new virtual environments available in the Simulator. Experiment with both day and night scens, interiors and exteriors, and domestic and public spaces.

Improved

  • You can now search and filter objects in the Scene panel and the Layers panel.
  • When selecting objects to be included in a Scene Render Pass using tags, objects inside block instances will now be ignored. Block instance can be either selected entirely or not selected at all.

SDK changelog

Version 147 - September 20, 2022

New

SDK changelog

  • The LayersModule class provides access to layers. It allows dynamic creation and destruction of layers, modifying layer properties such as render order, as well as changing what layer a scene object is in.
  • Introduces API to list input and output ports on Block scene root.

Version 146 - September 5, 2022

Improved

  • You can now remove previously selected textures by selecting None from the Texture dropdown in a patch, such as the Picker UI or Texture Transform.

Version 145.1 - August 26, 2022

Improved

  • Fixes a bug where Spark AR Studio can freeze when the simulator camera is moved.

Version 145 - August 22, 2022

  • Bug fixes and performance improvements.

Version 144 - August 12, 2022

New

  • Added new templates: Vehicles, Jump Up Game and Fruit Catching Game.

Version 143 - July 26, 2022

New

  • Use the Start patch to send a pulse signal when an effect is first started.
  • When you select Double Sided from a material's render options, the normals of back facing polygons are now reversed so that lighting is rendered as expected on both sides.

Improved

  • When you open a project containing a scripting package from AR Library, you’ll be prompted to update the package if a newer version is available.
  • Objects that are mirrored using negative Scale values will now be properly reflected.

SDK changelog

  • std::getFrontFacing function in SparkSL is no longer returning the wrong value on Metal backend.

Known issues

  • Some users may experience a crash on Desktop Player when mirroring the Piano template.

Version 141 - June 27, 2022

New

Improved

  • Adjust a null object's Shape and Color properties to visualize it as a wireframe shape in the Viewport.
  • Click the documentation icon in the Spark AR Studio toolbar to access interface walkthroughs and documentation.

SDK changelog

Version 140.1 - June 22, 2022

Fixed

  • Fixed a rare crash when dragging and dropping an object from the scene tree or asset panel into the patch editor or viewport.

Version 140 - June 17, 2022

New

Improved

  • Custom instructions can now be selected from a dropdown in the new Conditional Instruction and Timed Instruction patches and do not need to be entered manually. Conditional instructions are displayed if a condition is true. Timed instructions are displayed for a specific duration.

SDK changelog

Version 139 - May 30, 2022

New

  • In Spark AR Player for Desktop, use the Current View dropdown to simulate a specific participant's perspective.

Improved

  • Import the Triplanar Mapping patch asset from the AR Library to apply textures to objects without UVs or to add tileable micronormals and other detail maps.

Fixed

  • Spark AR Studio for macOS no longer crashes when virtual cameras are installed.

SDK changelog

  • Fixed calculation of bounding boxes when using SceneObjectbase.boundingBox or the Bounding Box patch with a 3D model in the tree that has non-identity transform.

Version 138 - May 17, 2022

New

  • Use the Camera View Parameters patch to expose additional information about the camera, including View and Projection Matrix, Focal Plane Dimensions and Focal Distance.

Improved

Version 137 - May 3, 2022

Improved

SDK changelog

  • The Scene property worldTransform is now available in blocks. Get a TransformSignal that represents the position, orientation and scale of a block's scene.
  • The SceneObjectBase properties worldTransform and parentWorldTransform are now available in blocks.
  • SignalSource API from ReactiveModule is now available in blocks.
  • Block inputs and outputs are now disconnected after a block is destroyed via Scene.destroy(). After destruction, any values given to block inputs are ignored, and block outputs revert to their default values.
  • When setting a block's input from JavaScript, if the input's name is invalid or if the Block has been destroyed via Scene.destroy, the Promise returned from the relevant BlockInstanceInputs.set... method is now failed (instead of succeeding).

Other

  • Bug and workaround. Edits to the minimum/maximum values of a block's input and output properties aren't reflected in the rendering process. Restarting the effect will make sure that the new properties are used.

Version 136 - Apr 25, 2022

New

Improved

SDK changelog

Version 135 - Apr 4, 2022

New

  • Show live compilation errors for Spark SL in Visual Studio Code.
  • Plugins can now specify optional Block initialization parameters.
  • Change the scale of normal map textures from the Inspector. Values between 0 and 1 will limit the texture’s effect. Values above 1 will exaggerate it.

SDK Changelog

Version 134.1 - Mar 21, 2022

New

  • Quickly add a Gaussian blur effect to your scene by downloading the Gaussian Blur block from AR Library.
  • Add a face extraction render pass patch to a block.

Improved

  • Desktop Player now includes a "User" participant when Studio is on the same call, allowing you to test group effects more easily.

SDK Changelog

  • Fixed a typo in the emissiveColorFactor property from the DefaultMaterial class.
  • Added the normalTextureScale property to the DefaultMaterial class, which represents the scale factor applied to each of the texture's normal vectors.

Version 133.2 - Mar 14, 2022

Fixed

  • Potential crash on macOS involving tooltips no longer occurring.

Version 133.1 - Mar 9, 2022

Fixed

  • Potential crash on Windows no longer occurring.
  • Potential memory leak when using blocks no longer occuring.

Version 133 - Mar 7, 2022

New

  • Added the Delta Time patch, which provides the elapsed time since the last frame in seconds. Equivalent functionality is available in scripts with the deltaTime property exposed by the TimeModule API. Unlike the patch, the elapsed time is provided in milliseconds.

SDK Changelog

  • Dynamically instantiated planar objects now use proper dimensions for size properties, allowing proper resizing and repositioning.
  • Plane tracker objects now use a Y-up coordinate system on devices, for consistency with the Spark AR Studio coordinate system.

Version 132 - Feb 23, 2022

New

  • Use the Spark AR Extension for Visual Studio Code to debug mirrored effects running in the Spark AR Player app on Android devices.
  • Use the Rotate Vector patch to find the forward vector of a 3D object in world space.
  • Click the button in the toolbar to advance the video in the Simulator by a single frame. Use this to debug your effects frame by frame.

Improved

  • See where your assets are being used, both directly and indirectly, with the improved Used By UI.
  • Fixed a bug that occurred when passing a payload to a Trigger with Script Bridging.
  • Scene Render Pass and Shader Render Pass patches are now available from blocks.
  • Resolved issue of app crashing when some creators opened projects from earlier versions.

SDK Changelog

  • Added the alphaTestEnabled property to the MaterialBase class, which represents whether alpha testing is enabled for the material. The property is available for all classes that inherit from MaterialBase.
  • Added the getParent() method to the SceneObjectBase class, which allows you to retrieve a scene object's parent object. The method is available for all classes that inherit from SceneObjectBase.
  • Added the normalTextureScale property to the MetallicRoughnessPBRMaterial class, which represents the scale factor applied to each of the texture's normal vectors.
  • Added the depthTestEnabled and depthWriteEnabled properties to the MaterialBase class, which represent whether depth testing and depth writing are enabled for the material, respectively. The properties are available for all classes that inherit from MaterialBase.
  • Added the emissiveColorFactor property to the MetallicRoughnessPBRMaterial class, which represents the texture's emissive color factor.

Version 131.1 - Feb 15, 2022

Fixed

  • Several crashes have been fixed, including:
    • Error in the asset tree.
    • Crash when editing shader patch assets.
    • Crash during Spark AR Studio start up.

Version 131 - Feb 7, 2022

SDK Changelog

  • Added the reflectiveTextureTransform property to the DefaultMaterial class which represents the transform coordinates of the material's reflective texture.

Version 130.1 - Feb 3, 2022

Fixed

  • Potential crash on Windows no longer occurring.

Version 130 - Jan 26, 2022

New

  • Delay Value patch restored. Use the Delay Value patch to delay the given input by one frame and output it onto the next frame. This enables cyclical connections not previously possible in the Patch Editor.
  • Select low, mid or high video quality when recording a demo video. Higher qualities may take longer to process.
  • Click the create button in the Inspector to add a customizable segmentation effect straight away. Select the Device > click Create next to Segmentation in the Inspector > choose Person, Hair or Skin.

SDK Changelog

Version 129 - Dec 17, 2021

New

Improved

  • New Create buttons have been added to Device properties. Add color LUT, retouching and face distortion render pipelines in one click.
  • Sort, filter, search and reorder your assets using the updated Asset panel UI.
  • Use the Spark AR Extension for Visual Studio Code's improved mirrored console to switch between open projects' console outputs, filter console messages by type, search console messages for a given string or to execute code.

SDK Changelog

  • Added the BinaryMessageChannel class to the MultipeerModule API, which allows you to send messages containing a Uint8Array between peers.
  • Added the occlusionStrength property to the MetallicRoughnessPBRMaterial class.
  • Added the ability to query an image texture's vertical wrap mode, horizontal map mode, color encoding and filtering mode via new properties exposed by the ImageTexture class.
  • Scripting is now enabled in Blocks. Use the inputs and outputs properties exposed by the BlocksModule API to access a Block's inputs or outputs from a script within the Block itself.

Version 127.1 - Dec 10, 2021

Fixed

  • A security vulnerability in Spark AR Studio for Windows has been fixed.

    We have no evidence that anyone has been affected by the vulnerability. However, we strongly recommend you update to this version of Spark AR Studio (v127.1). If you don’t want to use Spark AR Studio v127.1, you can install version 124.1, 125.2 or 126.1 from the Spark AR Downloads page. These versions are safe to use. To date, we have seen no indicators that this affects Spark AR Studio for macOS. We remain committed to the safety of our users. We apologize for the inconvenience.

Version 127 - Nov 23, 2021

New

Improved

  • Use the Delay Frame patch in blocks.
  • Save messages output in the multipeer debugging tool.
  • Use the dropdown in Visual Studio's Run and Debug tab to debug a specific project when there are multiple projects open and the Spark AR Extension is active.

SDK Changelog

  • Bounding boxes for skinned skeletons can now be properly calculated by the Bounding Box patch and BoundingBox API.
  • Fixed an issue in which the bounding box of a Scene Object containing a child object with zero scale was incorrectly calculated.
  • Fixed a bug which prevented layer changes to instantiated Blocks.

Version 126 - Nov 8, 2021

New

Improved

  • Fixed an issue with retrieving the value of the signals returned by the isActiveInCall and isActiveInSameEffect properties exposed by the Participant class.

SDK Changelog

  • Added bounding box-related APIs to the BlockSceneRoot class: the boundingBox property and getBoundingBox() method return the bounding box of the Block relative to its parent or local coordinate system, respectively. The boundingBoxVisible property and getBoundingBox() method return the visibility of the Block's bounding box. Equivalent APIs were also added to the SceneObjectBase class.

Version 125.1 - Nov 1, 2021

Improved

  • Bug fixes and stability improvements.

Version 125 - Oct 25, 2021

New

  • Create and publish a video calling effect that can be used in an Instagram or Messenger video call.
  • Use Spark AR Player for Desktop to simulate participants leaving and rejoining a video call.
  • Use the Participants API or participant patches to retrieve details about participants in a video calling effect.
  • Use the Multipeer API to send messages to, and receive messages from, other participants in a video calling effect.
  • Use the Spark AR Extension for Visual Studio Code to debug multipeer effects.
  • Capture and upload a demo video for a video calling effect with Spark AR Player for Desktop.
  • Use the grid view in Spark AR Player for Desktop to simulate additional participants when testing multipeer effects.
  • Use the Locale patch to retrieve the user's device language or region as a string signal, allowing you to customize the effect for users in different regions. The device language is provided as an ISO 639-1 formatted code, while the device region is provided as an ISO 3166-1 formatted code.

Improved

SDK Changelog

  • Added the getBlendShapes() method to the FaceMesh class, which returns an array of blend shapes for a given face mesh.
  • The use of global and globalThis in JavaScript and TypeScript files is no longer allowed. These two keywords will have a value of undefined in all scripting contexts.
  • The Bounds2D class has been unified with the new Box2DSignal class.

Version 124 - Oct 11, 2021

New

  • Navigate complex patch graphs with the search bar. At the bottom of the Patch Editor, click Search Patch and enter the patch name to scroll to the relevant highlighted patch.

Improved

  • Certain type errors will no longer be shown in JavaScript files, only in TypeScript files.
  • Two functionalities provided by the Spark AR Extension for Visual Studio Code have been moved to different locations within the window. The Spark AR Watchers panel has been moved under the Run and Debug tab and the Spark AR: Graph Visualizer has been moved to the terminal window.
  • Patches that are pasted into Patch Editor will now appear next to the mouse cursor.
  • Use macOS Virtual Camera in Spark AR Studio to visualize and preview your effects.

Version 123.1 - Sep 29, 2021

Fixed

  • Crash relating to 3D objects with skinning.

Version 123 - Sep 27, 2021

New

Improved

  • Use multiple render targets in Scene Render Pass patches.

SDK Changelog

  • Added two methods to the SparkSL API: std::getFragmentCoord() returns window-relative coordinates for a fragment, and std::getFrontFacing() returns whether a fragment belongs to a front-facing primitive.

Version 122 - Sep 13, 2021

SDK Changelog

  • Added the seek method to the GalleryTextureMediaVideo API, which seeks video playback to the specified position.
  • Added the getDeltaTime() method to the SparkSL Uniforms module, which returns the elapsed time since the previous frame was rendered, in seconds.
  • When a particle system is dynamically instantiated via Scene.create() without any object properties specified, it will be instantiated with the same default values as a particle system created from within Spark AR Studio. Additionally, the default Z axis spray angle value for a particle system has been changed from 10° to 0°.
  • The getPulse() method exposed by the BlockInstanceOutputs class now correctly returns an EventSource object.

Version 121.1 - Sep 1, 2021

Fixed

  • Crash caused by selecting File > Save as.
  • Version 121 - Aug 31, 2021

    SDK Changelog

    • Added the set() method to the PatchesInputs class, which sends a generically typed signal from the Patch Editor to a script. Added the get() and getWithFallback() methods to the PatchesOutputs class, which retrieve a generically typed signal from the Patch Editor in a script with or without a fallback value, respectively.
    • Added the error() method to the Diagnostics API, which prints the passed object to the console as an error.

    Version 120 - August 16, 2021

    Improved

    Version 119 - August 3, 2021

    New

    • Opt in to daily or weekly tips to discover features and learn how to get the most out of Spark AR Studio.

    Version 118 - Jul 19, 2021

    New

    Improved

    SDK Changelog

    • The Point4DSignal class has been renamed Vec4Signal.
    • The applyTo() method exposed by the TransformSignal and WorldTransform classes can no longer be called with arguments of type Point2DSignal or VectorSignal. Use applyToPoint() or applyToVector() for equivalent functionality instead.
    • The Point2DSignal class has been renamed Vec2Signal.

    Version 117 - Jul 07, 2021

    New

    • View the reactive graph for scripts in real-time with the visualizer provided by the Spark AR Extension for Visual Studio Code. Use this to visualize connections between objects and properties and to identify issues when used alongside the interactive debugger.
    • Use the Real-World Scale Object template to create an effect that places a 3D object in the real world. The object will appear at its real size based on its position and surroundings.
    • Use the To String patch to convert a boolean, number, pulse, text or vector value into a text string.
    • Enable the Spark AR Extension for Visual Studio Code to create a workspace which mirrors the folder structure of the synced Spark AR Studio project, allowing you to easily switch between scripts and visualize image files.
    • Create world effects with objects that are sized based on their real-world surroundings. Enable real-world scale in the plane tracker to get started.
    • Preview the output of shader patches as you build your graph. Open the preview by clicking on the arrow at the bottom right of the patch.

    Improved

    • Resize the AR Library window to easily browse assets.

    SDK Changelog

    • The BlocksModule API now exposes the ability to query block assets in your project via the findFirst(), findUsingPattern() and getAll() methods. For example:
         const blockAsset = await BlocksModule.assets.findFirst('MyBlockAsset');
      These methods return a promise containing an object of type BlockAsset. Additionally, the Instantiate() method exposed by the BlocksModule class can now be called with a BlockAsset object as the argument.

    Version 115.1 - Jun 10, 2021

    Fixed

    • Crash when adding patch assets to a project no longer occurring.
    • UI issues relating to patch assets, such as patches not appearing after import, are resolved.

    Version 115 - June 8, 2021

    SDK Changelog

    • Deprecated eyeBrighteningFactor and teethWhiteningFactor properties from the RetouchingMaterial class.
    • Added module-defined variant of ifThenElse() method exposed by BoolSignal.
    • Converted LocationModule to TypeScript.
    • CameraShare, the legacy name for DeepLinkModule, has been removed.
    • The lastValue property exposed by the BoolSignal, ScalarSignal and StringSignal classes has been deprecated. Use the subscribeWithSnapshot method exposed by objects of type EventSource to retrieve a signal's last value instead, for example:
             
        TouchGestures.onTap().subscribeWithSnapshot({
          
          // Store the mouth openness signal in the snapshot as 'val'                          
          'val' : FaceTracking.face(0).mouth.openness
             
          // Set a callback function for the 'onTap()' event source, with the snapshot passed        
          } , function (event, snapshot) {
          
            // 'snapshot.val' contains the signal's last value at the time the callback function 
            // was called        
            Diagnostics.log(snapshot.val);        
        });
        

    Version 114.2 - May 26, 2021

    Fixed

    • Webcam can now run without causing a memory leak.

    Version 114 - May 24, 2021

    New

    Improved

    • The fixed target tracker is now called the target tracker. You can set effects triggered by the target tracker to stay in a fixed place or move with a moving target by editing the new Target Type setting in the Inspector.

    SDK Changelog

    • Share custom functions between SparkSL shaders. Use the export keyword to export functions and the #import directive to make them available in another shader.

    Version 113 - May 12, 2021

    New

    SDK Changelog

    • Return and modify the camera's field of view (FOV) with properties exposed by the Camera class. Use getFieldOfView to get the current FOV, preferredFieldOfView to set a preferred FOV and overrideFieldOfView to set an FOV override.
    • The this keyword is set to undefined in callback functions executed from the Spark AR API and now matches its behavior in user-defined JavaScript. Previously this was set to the global object in callback functions, which was inconsistent with Spark AR's execution of JavaScript in strict mode.

    Version 112 - Apr 26, 2021

    New

    Improved

    • Easily adjust compression settings for textures in the redesigned Inspector. Set textures to automatic, manual or none for different devices and access documentation from the tooltip next to Compression.

    SDK Changelog

    • Deprecated the subscribeOnNext() method previously exposed by the EventSource class. Use EventSource.subscribe() instead.
    • Added the TransformSignal class, which returns a signal with the value that is equal to the transpose value of the transform signal the method was called on.

    Version 111 - Apr 12, 2021

    New

    • Navigate complex patch graphs with the search bar. At the bottom of the Patch Editor, click Search Patch and enter the patch name to scroll to the relevant highlighted patch.

    Improved

    • Expanded command line tool functionality. Use the tool to extract metadata from a patch asset or update 3D objects, for example to replace meshes or convert files.

    SDK Changelog

    • Receive an event when new media is selected in a GalleryTexture object with the onMediaChange() method. This method returns a GalleryTextureMediaImage or GalleryTextureMediaVideo object, the latter of which provides media playback controls via its API.
    • Fixed a bug with derivative/antiderivative APIs not behaving as expected when an effect is paused.

    Version 110 - Mar 29, 2021

    Improved

    • Improved support for TypeScript autocompletion. Use type assertion to ensure the compiler provides correct type information for retrieved objects, for example: const myPlane = await Scene.root.findFirst('plane0') as Plane.

    Version 110.1 - Apr 1, 2021

    Fixed

    • Crash when closing project window no longer occurring.

    Version 110 - Mar 29, 2021

    Improved

    • Improved support for TypeScript autocompletion. Use type assertion to ensure the compiler provides correct type information for retrieved objects, for example: const myPlane = await Scene.root.findFirst('plane0') as Plane.

    Version 109.1 - Mar 22, 2021

    Fixed

    • Relevant particle system properties now showing in the Inspector when changing the emission type.

    Version 109 - Mar 15, 2021

    New

    Improved

    • Use cubic interpolation in the Keyframe patch to create animations with smooth transitions.

    Version 108 - Mar 1, 2021

    New

    • Added support to run natively on Apple Silicon Macs.

    Version 107 - Feb 16, 2021

    New

    SDK Changelog

    The pinLastValue() method, which returns the last value a signal contained before the method was called, is now supported on the following signal types:

  • TransformSignal
  • QuaternionSignal
  • VectorSignal
  • Point2DSignal
  • PointSignal
  • Point4DSignal
  • RgbaSignal
  • HsvaSignal
  • Version 106.1 - Feb 3, 2021

    Fixed

    • Potential crash on Windows no longer occurring.

    Version 106 - Feb 1, 2021

    New

    Improved

    • Modify the texture data type for a scene render pass according to the level of precision you need. Choose from unsigned byte or half float data types.

    SDK Changelog

    Version 105.1 - Jan 20, 2021

    Fixed

    • Texture inspectors are no longer missing for 3D models.

    Version 105 - Jan 19, 2021

    New

    Version 104.1 - Dec 24, 2020

    Fixed

    • Projects with blocks no longer crash when they’re opened.
    • Children of blocks are no longer being incorrectly removed from projects.

    Version 104 - Dec 18, 2020

    New

    • Use the Keyframe patch to create animations for an object’s color, light intensity, transformations and other values.
    • View effects in full screen with Spark AR Player for Desktop (for macOS and Windows). Explore AR experiences beyond mobile devices, like interactive exhibits in museums.

    Improved

    • When ungrouped, patches will remain selected making it easier to reposition them if needed. When a single output has multiple connections into a group, it’s consolidated into a single input on the group patch, and a single input patch within the patch group. The multiple connections are restored upon ungrouping.
    • Choose whether or not to recover unsaved projects. Previously, unsaved projects opened automatically.
    • Open an instance of a patch asset in the Patch Editor to view its runtime values.

    Version 103 - Dec 11, 2020

    New

    Improved

    • Intermediary patches will appear in a position within the Patch Editor that doesn’t overlap any other patches.
    • Edit the names of ports in patch assets by right-clicking the patch asset in the Patch Editor and selecting Edit Properties.
    • Added the ability to zoom in and out of animation sequences made in the texture animation import and optimization tool. There’s also an option to add the sequence to a plane when importing.
    • Preview effects that use voice command. When the effect is opened in Spark AR Player, you’ll be asked to log in again before you can preview the effect.
    • Choose whether or not to recover unsaved projects. Previously, unsaved projects opened automatically.

    Version 102 - Nov 19, 2020

    New

    • Dynamically instantiate scene objects, materials and blocks in an effect at runtime by using the new create () method exposed by the link SceneModule and MaterialsModule APIs. Use dynamic mode to visualize these dynamic objects in the scene.
    • Write custom shaders in Spark AR Studio.
    • Use the Mouth patch to detect the position of specific parts of the mouth.
    • Extract a 3D object’s global and local transform values to position objects in your scene.
    • Optimize imported texture sequences in the Import Texture Animation window before adding them to your project. Click Add Asset > Import > Texture Animation.

    SDK Changelog

    • Fixed an issue in which image-based lighting on PBR materials appeared flipped due to the V texture coordinate being incorrectly computed.

    Version 101 - Nov 10, 2020

    New

    SDK Changelog

    Version 100 - Oct 26, 2020

    New

    • Clip animations using the trim feature in the Inspector for the Animation Playback Controller. You can also create multiple clips from the same animation.
    • Use energy saving mode to help save your device’s battery power by disabling non-essential features.
    • Easily arrange 2D objects into positions relative to each other using the 2D stack object.

    Improved

    • Compress textures in PNG format up to 20 times more quickly.
    • Check how well a plane is being tracked using the plane tracker patch confidence port. Use this to create better quality effects by activating parts of your scene when the tracking confidence is high enough.

    SDK Changelog

    • Added the PlanarStack class to the SceneModule API. This class provides the ability to use a stack layout for 2D elements, which organizes child objects in a one-dimensional stack, either horizontally or vertically.
    • OutputVisibility.forOverlayOutput has been deprecated and will be removed in a future release.
    • New Fonts capability added, with gating and automatic detection of font usage within an effect.
    • Added new outputVisibility: OutputVisibility read-only property to the Scene class, which provides the ability to control output visibility for the overall scene via Scene.root.outputVisibility.
    • Added new objectDepthDistance: number read-only property to the TapGesture class. The returned value represents the distance from the 3D location of the tap on an object to the camera.

    Version 99 - Oct 12, 2020

    Improved

    Version 98 - Sep 29, 2020

    New

    Improved

    SDK Changelog

    • Added new rotation: QuaternionSignal and scale: PointSignal read-write properties to WorldTransform class.
    • Added a new rotation: QuaternionSignal read-only property to TransformSignal class.

    Version 97 - Sep 14, 2020

    New

    • Use the Insets Unpack patch to discover a device's safe area. The safe area is the rectangle where someone is guaranteed to be able to interact with an effect.

    Improved

    • Easily edit and transform 2D objects with the redesigned Inspector.

    SDK Changelog

    • Expose shading color factors of default materials as ColorSignals.

    Version 96 - Sep 1, 2020

    SDK Changelog

    • SegmentationModule: change isEnabled to enabled.
    • Removed face anchor objects from the SDK.

    Version 95 - Aug 17, 2020

    New

    SDK Changelog

    • Expose base color factor getter of the physically-based material to scripting.

    Version 94 - Aug 3, 2020

    New

    • A new Blend Mode is available for materials - Associative Alpha.

    Improved

    • Easily review and delete unused assets through the Asset Summary.
    • The Inspector shows that a tracker’s Transformation values are driven by the tracker.
    • Spark AR Studio uses the native menu bar on MacOS.

    SDK Changelog

    • Removed the 'require' function from the global object in JavaScript, instead keeping it as only a local variable.
    • Expose normal texture and transform of the physically-based material to scripting.
    • Expose mesh surfaces in JS API.

    Version 93.1 - Jul 27, 2020

    Fixed

    • Stability improvements.

    Version 93 - July 21, 2020

    SDK Changelog

    • Converted JavaScript APIs to be asynchronous.

    Version 92 - July 8, 2020

    New

    • Use render passes to change the default render pipeline in Spark AR Studio and produce multiple rendered results in effects.
    • Add more inputs to Option Picker patches. Drag the bottom of the patch up or down to adjust the amount or select the patch, click the settings icon and select Number of Inputs.
    • Optimize 3D objects with the Spark AR Toolkit add-on for Blender. Use the toolkit to decrease triangle count, adjust height and set an object’s pivot point.
    • Use blocks in AR Library to quickly build effects. Access them by selecting Add Asset > Search AR Library.
    • Preview effects that use the gallery picker in Spark AR Player. When you open the effect in the app, use the Add Media button to add image files and preview the effect.
    • Easily add custom instructions to effects. Select Device in the Scene panel, and either choose an instruction from the dropdown in the Inspector or click See All Instructions.
    • Simulate realistic, high quality lighting in effects with Blender environment textures. Select Add Asset > Search AR Library and pick a texture.
    • Use the face mask template to create custom mask and makeup textures in Adobe® Photoshop®.

    Improved

    • When a custom instruction is selected in the Inspector, the capability is automatically selected in the Capabilities menu and the token in the Instruction patch is automatically filled.
    • Access environments textures in the Inspector. When an environment light or PBR material is selected, there’s an option to Search AR Library in the dropdown next to Texture in the Environment section.

    SDK Changelog

    • Renamed RotationSignal to QuaternionSignal.
    • QuaternionSignal APIs now include support for common quaternion operations.

    Version 91 - June 22, 2020

    New

    • Stop running an effect using the Stop button in the toolbar. When you start playing it again, it will return to its first rendered frame.
    • Preview effects that use the gallery picker in the Simulator. When you add the gallery texture to your scene, an Add Media button will appear in the Simulator. Use this to add image files and preview the effect.

    Improved

    • Add 3D text to Instagram effects.
    • Changing variables from scripts no longer causes crashes or errors in the Patch Editor. To resolve the issue in existing projects, add or remove a variable in the From Script section in the Inspector.

    SDK Changelog

    • TransformSignal.applyTo() and WorldTransform.applyTo() are deprecated when used with point or vector arguments. Please use applyToPoint() and applyToVector() instead.
    • Merged ScaleSignal into PointSignal to allow type interoperability and extend functionality.
    • Merged EulerAnglesSignal into PointSignal to allow type interoperability and extend functionality.
    • When Materials/Fonts/Textures/Svgs are queried from JavaScript, they now correctly return only the ones that belong to the effect.
    • Add the Scene.projectToScreen() function to convert a world space position into screen space coordinates.
    • Removed audio play()/stopAll() methods from the Audio module.

    Version 90 - June 8, 2020

    Improved

    • When editing blocks, an indicator will display the origin point of your scene.
    • Enable For is available in blocks. This property allows you to choose the camera or cameras you want objects in blocks to render on.
    • Easily find documentation for objects. When you click Add Object, each item now has a View Documentation link.
    • Get help using the new items in the Help menu. Changes include adding links to documentation and tutorials and improved naming.

    SDK Changelog

    • Support for async/await syntax in JavaScript.
    • Merged InsetsSignal with Point4DSignal to allow type interoperability and extend functionality.
    • Convert RgbaSignal to HsvaSignal. You can also convert HsvaSignal to RgbaSignal.
    • Convert RgbaSignal and HsvaSignal into Point4DSignal. You can also convert Point4DSignal into RgbaSignal or HsvaSignal.
    • Expose components of HsvaSignal as read-only properties.
    • Add member function shorthand for mix (linear interpolation) operations to all Scalar and Vector signals.
    • Add member function shorthand for min/max/clamp operations to Scalar and all Vector signals.
    • Add magnitudeSquared() to Scalar and all Vector signals.

    Version 89 - May 26, 2020

    See a demonstration of new features in the latest Quick Tips video.

    New

    • Make objects and assets respond to the signal power of an audio source using an Analyzer or Energy Meter patch. For example, an object can scale in response to each frequency band with an Analyzer patch or scale in response to the signal power of the combined frequencies with an Energy Meter patch.
    • Create Instagram effects that augment photos and videos that were already taken. For example, an effect can be applied to a photo added to Stories from a device’s media library.
    • Easily manipulate 2D objects by selecting 2D in the top right of the Viewport.
    • Add UI controls to effects with Slider UI and Picker UI patches.
    • Use face tracking and face meshes in blocks.
    • Control which face a face mesh is tracking in the Patch Editor. Create a patch by selecting a face mesh in the Scene panel and clicking Create Patch next to Tracked Face.

    Improved

    • View grid spacing in the bottom right of the Viewport. This can be turned off in the Filter menu.
    • When assigning a layer to a parent object, you can also assign the same layer to the children of that object.
    • Reorder the inputs and outputs of patch groups, patch assets and blocks by editing its properties.

    SDK Changelog

    • Merged PixelSizeSignal and PixelPointSignal with Point2DSignal. Point2DSignal is now the unified type in all APIs representing a vector of 2 elements. Simply substitute types — there’s no need to add a conversion layer.

    Version 88 - May 12, 2020

    New

    • Add touch gestures to blocks.
    • Add custom instructions for target tracking, plane tracking, native UI and interactions.
    • Use the gallery picker to create an Instagram effect that lets people add media from their phone’s camera roll to the effect.

    Improved

    • Adjust the Viewport by enabling or disabling Axes Guide, Active Camera and FPS Meter in the Filter dropdown.

    SDK Changelog

    • Reference previous signal values. For example, use signal = signal.history(1)[-1].add(1) to create animation. With each frame, you’re adding 1 to the signal value.

    Version 87 - Apr 27, 2020

    New

    Improved

    • Changes to patch assets will automatically change all instances of that patch asset.
    • When a new layer is added, it will appear above the selected layer in the layers tab.
    • See which camera is simulated at the bottom of the Viewport. For example, when using the front camera, it will say Camera: Front at the bottom of the Viewport.

    SDK Changelog

    • Strict mode is enabled for all JavaScript scripts in new projects. This applies to projects created in version 87, and all future versions. Projects created in older versions have the option to enable or disable strict mode in Properties.
    • Added hidden property on Scene.root.
    • Renamed HandTrackerSceneObject to HandTracker in JS scripting API.

    Version 86 - Apr 14, 2020

    New

    • Easily turn a texture into a face mask using the Use As A Face Mask action. To use, select a texture, click Actions and choose Use As A Face Mask.
    • Apply actions to textures. To use, select a texture, click Actions and choose an action.

    Improved

    • Automatic changes to the Viewport camera — for example, when a plane tracker is added, the position of the Viewport camera changes — are now animated. Animations can be turned off in Preferences.
    • Notifications appear with the option to Undo when the Viewport automatically changes orientation after adding a plane or target tracker.

    Version 85 - Mar 31, 2020

    New

    • Transmit data from a patch graph to multiple inputs using Sender and Receiver patches. These patches can be connected to any other patches and transmit any data type.
    • Explore new content in the Learn tab on the welcome screen. This section will be regularly updated with learning materials and information about new features.

    Improved

    • Position and zoom of patch groups are now stored so when you re-open a patch group, it will return to the last position and zoom you were using.

    SDK Changelog

    Version 84 - Mar 16, 2020

    New

    • Change the color of eyes with the new iris tracking template. Access it by opening Spark AR Studio and selecting Eye Color.
    • Add Pulse as an input or output type in blocks.
    • Select Facebook Ads as a platform in Properties. This allows you to test your effect by sending it to the Facebook Ads camera, which is now an option when you select Test on Device > Send to App.
    • Display an effect in fullscreen in Spark AR Player using presentation mode. Exit by tapping 3 times in the top right corner of the device screen.

    Version 83.1 - Mar 4, 2020

    New

    • Quickly create a visual shader with a patch asset material. Create a patch asset by selecting a material in the Assets panel and choosing Create > Patch Asset from the Shader Type dropdown menu.
    • Easily find assets in AR Library using search filters.

    Improved

    • Improved performance when editing, scrolling and zooming out in large patch graphs.
    • Instructions automatically trigger if a face or hand tracker is used in the Patch Editor or scripting.

    Version 82 - Feb 17, 2020

    New

    • Bring a poster to life using the new target tracking template. Access it by opening Spark AR Studio and selecting 3D Animated Poster.
    • Test audio effects with Live Microphone Preview, a feature that picks up audio from the microphone and outputs it through your machine’s speakers. Select Microphone in the Scene panel to expose the feature in the Inspector panel.
    • Use environment textures in AR Library to quickly build an effect. Access them by selecting Add Asset > From AR Library.
    • Learn more about new features and improvements. A window with information about each release will appear when you update Spark AR Studio, or you can go to the Learn tab in the welcome screen.

    Improved

    • Connect input ports to output ports in the Patch Editor. This means you can connect ports from left to right in addition to right to left.

    SDK Changelog

    • Async scripting API for LocaleModule.
    • Reactive switch-case function to improve async localization syntax.

    Version 81.1 - Feb 13, 2020

    New

    • Use new animation, audio, shader and utility patches to easily build an effect. Access them by clicking Add Asset > Import From AR Library and selecting Patch Assets.
    • Access assets recently imported from AR Library by clicking Add Asset > Recent From Library.

    Improved

    • Multiple fixes for layers, including corrections to occluders and rendering order.
    • View your entire patch graph with an improved max zoom out in the Patch Editor.
    • Navigate patch graphs by clicking the map in the Patch Editor and dragging it to the area you want to view.
    • Learn more about patches by clicking on the settings icon underneath the patch and selecting Patch Info from the menu. You can also access the menu by right-clicking the patch.

    SDK Changelog

    • Expose a signal for the preview screen's scale value in the CameraInfo module.
    • Change cull mode on materials with EnumSignal.
    • Change blend mode on materials with EnumSignal.
    • Set Patch Asset material inputs with setParameter.

    Version 80 - Jan 20, 2020

    New

    • Find tutorials and other learning resources in Spark AR Studio. To access the new learn section, open Spark AR Studio and click Learn in the welcome screen or go to Help > Welcome to Spark AR Studio.
    • Use actions to quickly create an audio effect. Import an audio clip, right-click the clip in the Assets panel and select Actions from the menu.
    • Publish iris tracking effects — effects that change the appearance of someone's eyes by tracking 3D objects to the irises — to Instagram.

    Improved

    • Compressed images with a small amount of detail will no longer be blurry on devices.

    SDK Changelog

    • Use Shader APIs for BlockSceneRoot to interact with Block texture inputs/outputs.
    • Directly input parameters in setTextureSlot, an improved version of setTexture.

    Version 78.2 - Jan 15, 2020

    New

    • Use new assets in the AR Library to quickly build an effect. Explore a variety of 3D objects, audio files, patch groups and script packages. Access AR Library by clicking Add Asset > Import From Library in the Assets panel.
    • Easily navigate large patch graphs by clicking Show Map at the bottom left of the Patch Editor.

    Improved

    • When you import a collection of assets — for example, an animated character — and modify the assets in the collection, those changes will be saved when you reload the collection.
    • Changes to the scale of assets in master 3D objects will change all instances of that asset.
    • Adjust the size of the Patch Editor.
    • Option Sender patches now have a pulse type.

    SDK Changelog

    • Enable billboarding with LookAt API for scene objects.

    Version 77 - Dec 16, 2019

    New

    • Check if an audio clip is looping correctly by selecting it in the Assets panel and clicking the loop button below the audio graph in the Inspector.

    Improved

    • Add actions to objects in the Scene panel by right-clicking the object and selecting Actions from the dropdown menu.
    • Access the Spark AR Studio Tour from the Help menu. Select Help > Spark AR Studio Tour.
    • Access recent projects and templates from the File menu. Select File > Open Recent Project or File > New From Template.
    • Adjust opacity in the color picker in the Patch Editor.

    Version 76 - Nov 25, 2019

    New

    • Quickly build an effect using a template. The pre-designed projects can be customized by importing your own objects and assets or adjusting inputs in the Inspector. Access them by opening Spark AR Studio or selecting File > New From Template.
    • Streamline effect creation with actions, a feature that packages common, repetitive steps into shortcuts. For example, it can take up to 10 steps to place an object on a face effect, but with actions, this process can be reduced to a single click.
    • Allow people to to gradually control something in an Instagram effect by adding a native slider to it. For example, users can make an object in an effect bigger or smaller by adjusting the slider.
    • Publish target tracking effects — effects that are triggered by specific objects or textures found in the world — to Instagram.
    • Upload effects directly from Spark AR Studio to Spark AR Hub using the new upload functionality. Select the upload icon in the toolbar at the bottom left of the interface or select File > Upload.

    Improved

    • Large projects open much faster.
    • Particle systems, 2D and 3D text, materials, lights and speakers show runtime value in the Inspector when bound to the Patch Editor or scripts.
    • Use blend shapes with normal mapping.
    • Multiple fixes to the display of the Inspector.

    Version 75 - Nov 11, 2019

    New

    • Split scripts across multiple files. This can be useful when you have large scripts or want to organize your files.

    Improved

    • Two audio capabilities have new names: Triggered is now One-Shot and Ambient is now Looping.

    Version 74.1 - Oct 30, 2019

    New

    • Quickly find items in the Scene and Assets panels using the search functionality in the toolbar on the left of the interface. You can also use Command F or go to the main menu and select Edit > Find.
    • Click the question mark icon in the toolbar on the left of the interface to search documentation and get quick access to helpful tutorials and guides.
    • Manipulate an object to pivot around its own pivot point using Pivot or a central pivot point using Center.
    • Set input and output values for blocks using a slider.
    • Set Minimum or Maximum values for block inputs and outputs.

    Improved

    • Projects with environment textures can now mirror without fail.
    • Crash reports automatically appear after crashes and include a streamlined way to send a crash log.
    • Texture extraction now works with face trackers.
    • Fixed a bug that caused issues logging into Sketchfab from the AR Library.
    • Fixed an issue with graphics on Windows machines.

    Version 73 - Oct 14, 2019

    New

    • Learn your way around in the Spark AR Studio Tour. The guided tour walks through essential parts of the interface and also shares the basics of building effects.
    • Add custom devices to the Simulator to easily test your effect. To add a custom device, select Preferences from the Spark AR Studio dropdown menu.
    • The maximum size of .arexport files — the files downloaded to your machine after exporting a project — is now 40MB.

    Improved

    • Sample projects have animated images instead of static previews.
    • When you open a saved project, filters in the Viewport will be enabled or disabled in the same way they were when the project was last saved.
    • Assets imported from the AR Library no longer display as “scene” in the Assets panel. Instead, the name matches the original name of the asset.
    • Crash reports automatically appear after crashes and include a streamlined way to send a crash log.

    SDK Changelog

    • Fixed environment texture rotation in Physically-Based Material.

    Version 72 - Sep 30, 2019

    New

    • Work on projects using multiple versions of Spark AR Studio. You’ll still be prompted to update to the latest version, but can disable these notifications. Find the different versions of Spark AR Studio you’ve downloaded in the main menu.
    • Create patches for the different emitter types (Line, Plane and Ring) in particle systems.
    • Access the target tracker in the Patch Editor.
    • Create patches to represent the Size, Scale, Rotation and Position properties of 2D objects. Patch functionalities that contradict 2D layout will be blocked.
    • Create object tap and producer patches for lights, vector objects, particle systems, text and rectangles using the Create button in the Inspector.
    • The animation playback controller properties have changed from Play, Pause and Stop to Play and Reset.

    Improved

    • The device picker in the Simulator now shows device resolution.
    • When you open a saved project, objects in the Scene panel will be expanded or collapsed in the same way they were when you last saved.
    • Imported 3D objects are automatically scaled to fit the Viewport. If your objects were created with real-world scale, consider disabling this feature. You can do this by selecting Preferences from the Spark AR Studio dropdown menu and unchecking Automatically scale imported 3D models

    SDK Changelog

    • Removed the empty Blocks module from the JS API.
    • Added support for remote images in the Native UI Picker.

    Version 71 - Sep 16, 2019

    New

    • Improved alignment for texture extraction. If the texture is applied to a face mesh, check the boxes next to Eyes and Mouth to ensure the texture aligns properly.
    • You can create patches for the Size property in 2D objects, allowing dynamic control of size in the Patch Editor.
    • Increment or decrement numerical values by pressing the up or down arrow keys in combination with Control or Option (Alt in Windows) keys.

    SDK Changelog

    • Rotate environment lights and use them with Blocks.

    Version 70 - Sep 9, 2019

    New

    • Grid snapping is enabled by default for the Patch Editor. You can disable it in the View menu.
    • Rectangle and text models can be enabled and disabled for front and back cameras, preview and capture.
    • Automatic compression for all files. Spark AR Studio will find the best type of compression for each texture, and for all devices, according to the image's contents.

    Improved

    • Add minimum and maximum values to inputs and outputs on patch groups.

    Version 69 - Aug 19, 2019

    New

    • Collapse patches by hiding unconnected ports. This allows you to better arrange the layout of your patch graph.
    • Evaluate math expressions in numeric text fields in the Patch Editor. For example, you can type “(1 + 2) * 3” and it will evaluate to “9”.

    Version 68.1 - Aug 8, 2019

    New

    • You can now add multi-axis spray angle, 3D angular velocity and 3D rotation of particles to particle systems.
    • Playback controllers for audio can now pause and resume sounds.
    • We now have a waveform visualizer on the audio preview inspector.

    Improved

    • Fixed a crash that can occur when opening a document that contains segmentation.
    • We’ve added exported project sizes and Blocks support to the Asset Summary, and added an additional entry point to the Asset Summary in the Export window.
    • Play and loop inputs are now a boolean type for Playback Controllers. Check the play or loop checkbox to activate sounds.
    • We fixed a bug so callbacks that throw exceptions only occur once.

    Version 67 - Jul 22, 2019

    New

    • Blocks are now available to add to your scene/assets. They allow you to structure your project and save pieces of it that you can share or reuse. Combinations of scene objects, assets, patches, materials and textures are all supported by Blocks. Find out more about it in the documentation.
    • Simulator can now be docked alongside the main Viewport from the Simulator hamburger menu or the View menu.
    • SVG’s (Vector Objects and Vector Images) are now available to add to your scene/assets.
    • Code Autocomplete allows you to have Code Suggestions as well as Inline Documentation and Type Checking. Find out more in the documentation.
    • Imported animations will now let you create patches for nodes that are not targeted.
    • Created 2D manipulator for 2D objects: rotate, reposition and scale your 2D objects. Please note that migration is added for 2D objects. Please check your effects.

    SDK Changelog

    • Expose the red, green, blue and alpha components of RGBA signal.
    • Transformations were introduced to planar objects, please check that your layout works as expected.

    Version 66 - Jul 22, 2019

    New

    • You can now use the Patch Editor to make changes to 3D Text.
    • You can also use the Patch Editor to make changes to 2D Text.
    • We’ve introduced 3D Text Texture Coordinate Modes.
    • Textures will automatically compress after import.
    • There’s now a Texture Sizes section in the Inspector.
    • You can manually compress textures through options in the Inspector.
    • You can also use global compression settings to compress textures. Go to Project; Edit Properties; Compression.

    SDK Changelog

    • Deprecate pulse-typed Playback Controller Actions (play, loop and stop) in favor of new, boolean ones.
    • Added New Boolean Playback Controller Actions [patches, APIs] (play, loop and reset)
    • Introduce plane tracker to visual scripting.

    Version 65.1 - Jul 8, 2019

    Improved

    • Fixes a crash that can occur when inserting a plane tracker.

    SDK Changelog

    • Renamed 'CameraShare' scripting module to 'DeepLink'.

    Version 64 - Jun 24, 2019

    New

    • We've been making bug fixes and improvements based on your feedback.

    Version 63 - June 10, 2019

    New

    • We've been making bug fixes and improvements based on your feedback.
    • We've added a code example for the LiveStreaming Module.

    Version 62.1 - May 30, 2019

    New

    • We've been making bug fixes and improvements based on your feedback.

    Version 61 - May 16, 2019

    New

    Improved

    • We've been making bug fixes and improvements based on your feedback.

    Version 60 - April 29, 2019

    New

    • We've added a new sample effect to the welcome window. Learn more about using visual shaders in the Patch Editor - to create the effect of a beam of light shining across the face.
    • Sound Collection is back

    SDK Changelog

    • The setTexture method of the MaterialBase class now accepts enums instead of strings.

    Version 59 - April 15, 2019

    New

    • We've added a new sample effect to the welcome window. You can now learn about adding procedural animation in the Patch Editor, to an object with a skeleton and joints. You'll also learn to make the animation respond to someone's facial movements. Just select Sample Effects in the welcome window, then select Skeleton Animation.
    • We've added code examples to the following Scripting Reference pages: FaceTracking2DModule, FontsModule, HandTrackingModule, InstructionModule, IrisTrackingModule, LightingEstimationModule.

    SDK Changelog

    • The SdfTwist method of the Shaders Module has been renamed to sdfTwist to match all other method casing.

    Version 58 - April 2, 2019

    New

    Version 57 - Mar 18, 2019

    New

    Version 56 - March 1, 2019

    New

    • You can now add SVG images to your effect. Add the SVG asset to the assets panel, then use a scene object called a Vector Object to render them in the scene. You can manipulate, transform and control the visibility of vector objects (both manually and through Patch Editor). You can't import SVG assets that include strokes, opacity, gradients and patterns, clipping, masking, filter effects, linking, scripting, animation and fonts.
    • We've added a new sample project - Thumbs Up. Open the project by selecting Sample Projects when you open Spark AR Studio. Find out more about building the effect yourself in our documentation.
    • We've added a new guide to our documentation. Learn more about using the face reference assets.

    Improved

    • More faithful import of physically based material using the specular/glossiness workflow.

    SDK Changelog

    • Expose alpha test threshold to scripting.
    • We've been working to achieve parity between the features available in the Patch Editor, and JavaScript. You can now create visual shaders using JavaScript.

    Version 55 - Feb 14, 2019

    New

    • Introduced a new environment light to assign a global environment texture to all physically-based materials
    • You can now manipulate, transform and control the visibility of 3D text in the Patch Editor.
    • We've added a new guide to our documentation - learn more about using the face tracker texture

    SDK Changelog

    • Ability to control instructions from JS

    Version 54 - Jan 25, 2019

    New

    • Signed Distance Fields are now available from the Patch Editor
    • We've deprecated flex and the legacy canvas. Use 2D layout - flexibility, pinning, alignment and filling properties - and the canvas instead. Enabled patch editor for such 3D Text properties as visibility and transformations (position / scale / rotation)

    Improved

    • Support for vertex colors in physically-based materials
    • Support for back material, line and letter spacing in 3D text

    SDK Changelog

    • Split face material of 3D text to front and back material
    • Introduce back material of 3D Text to the scripting
    • Expose properties of the physically-based material to scripting
    • Allows multiple point anchors to be used in the same effect

    Version 53 - Jan 4, 2019

    New

    • New face reference assets

    SDK Changelog

    • Line spacing property for 3D Text introduced to scripting
    • Letter spacing property for 3D Text introduced to scripting

    Version 52 - Dec 21, 2018

    Improved

    • We've improved the retouching shader. Skin smoothing has been improved and we've removed eye and teeth whitening.

    SDK Changelog

    • Introduce getBlendShapes methods that returns a promise of blend shapes array.

    Version 51 - Dec 7, 2018

    New

    • Spark AR Studio has a brand new welcome window
    • Image-based lighting for physically-based materials (with a selection of environment map presets)
    • Importing HDR files for image-based lighting
    • Add medium (MIP) and high (Trilinear) filtering options for textures

    Improved

    • Skin smoothing for retouching material

    SDK Changelog

    • Introduced pinLastValue method for ScalarValue, StringValue, BoolValue
    • Added count and name properties to BlendShape scripting

    Version 50 - Nov 19, 2018

    New

    • You can now use animation playback controllers to animate 3D objects, without needing to use the Patch Editor.
    • Full support of Metallic Roughness PBR materials from external assets.

    SDK Changelog

    • Introduced the 'pinLastValue' function, that creates a new signal which always returns the value that the original signal had immediately before 'pinLastValue' was called.
    • Exposed the emissive texture and associated transform of the standard and physically-based materials to scripting.

    Version 49 - Nov 2, 2018

    New

    • Effects will start from the beginning in the Viewport and Simulator, when the video is changed.
    • 3D Text feature is available now.

    Improved

    • Spark AR Studio will no longer crash when switching to camera input on macOS Mojave.
    • We fixed color encoding for compressed textures.

    Removed

    SDK Changelog

    • Introduced asin, acos, tan, atan functions.
    • Property getters which used to return Value types now return Signal types (e.g. BoolValue -> BoolSignal, ScalarValue -> ScalarSignal).
    • Transforms now have a 'toSignal' method, that converts them into a TransformSignals.
    • Introduced the FaceTracking2D module, that offers performance gains compared to tracking faces in 3D.

    Version 48 - Oct 19, 2018

    New

    • You can now choose whether objects are visible in either preview, capture or both. Use the check boxes in the Inspector, and test it using the Simulator.
    • We've introduced iris tracking. Connect the the new Eyeball patch to the Face Select patch, or use the “IrisTracking” JS module to track the eye rotation and iris position of faces in your scene.
    • Full support of glTF 2.0 materials and textures from imported files.

    Improved

    • AR Studio will no longer crash when opening the Preferences window in macOS Mojave.

    Patch Editor Improvements

    • New patches for face gestures: Kissing, Surprised and Happy.
    • The new Eyeball patch is available, allowing you to track the position and rotation of irises and eyes in your scene.

    Removed

    • Eye anchors in the face mesh. To track the position of eyes in your scene, use the “Left/Right Eyeball Center Position” output of the Eyeball patch.
    • Materials no longer have alpha test enabled by default to improve performance.

    SDK Changelog

    • Face blendshapes in legacy units are no longer supported. Previously-authored blendshapes must be scaled down to meters (scaled by a factor of 1/960) to continue to work in this version of AR Studio.
    • New methods for recognizing gestures in FaceGestures module.

    Version 47 - Oct 5, 2018

    New

    • It is now much easier to create effects that transform people's backgrounds using Segmentation. Simply select Scene→Camera→Segmentation→Segmentation Mask Texture, rather than using the insert menu.
    • When you're opening AR Studio for the first time, you'll be welcomed with a guided tour.
    • You can now change letter and line spacing for 2D Text.
    • You can persist effect data across AR sessions, using the new effect persistence feature.

    Improved

    • Significantly improved hand tracking quality on Mac OS platforms.

    SDK Changelog

    • lastValue property is deprecated
    • subscribeWithSnapshot, setTimeoutWithSnapshot and setIntervalWithSnapshot JS APIs are added to replace lastValue
    • worldTransform property for SceneObjectBase is added
    • Random module is added
    • spacing property for 2D text is added

    Version 46 - Sep 27, 2018

    New

    • FaceTracker now has 2D & 3D modes
    • You no longer need to click Run to see interactive parts of your scene - they'll play continuously. Use Pause and Restart in the tool bar to stop or reset your effect.

    Improved

    • Significantly improved hand tracking accuracy and performance

    Patch Editor Improvements

    • The Loop Animation patch has a new “Looped” output that is triggered when the animation completes and then starts again.

    SDK Changelog

    • 1200 HE face mesh is now used by default
    • 3D face tracking is now a separate capability
    • Legacy (lo-res) face mesh is deprecated

    Version 45 - September 7, 2018

    New

    • You can now use AR Library to add objects from Sketchfab's object library and free-to-use sound effects in your projects.
    • You can now make a text node editable. Having that, you can trigger the keyboard input from scripting and make user input the value for the given text node.
    • You can now use Babel Support feature as a part of AR Studio and be sure that scripts works the same on both iOS and Android.

    Improved

    • New projects have speaker node in the scene by default
    • You can now adjust compression settings and preview textures in the Simulator.
    • Canvas now has a safe zone area so you can see where the camera interface lies and avoid this section
    • Rectangle now has a “fill parent” function which will resize to that of the parent

    Patch Editor Improvements

    • When using animation patches, the Option Picker patch no longer requires all inputs to be connected. You can leave some ports open.
    • We've changed all Progress ports to Numbers on all Transition & Animation patches. You can now see & change progress values directly on the patch ports, and connect them with numbers.

    Version 44 - Aug 24, 2018

    Improved

    • Properly focus on meshes, bones, skeletons by pressing F to reframe the camera to facilitate creation
    • Drastically improved asset import process, 4-10 times faster, and doesn't block the UI on import
    • Various minor bug fixes

    Patch Editor Improvements

    • Renamed Eye to Eyelid in patch editor

    Version 43- August 10, 2018

    Improved

    • We've enabled the hierarchy of 2D objects. This means you can nest 2D objects like Text and Rectangles as children of parent 2D objects.
    • In the Patch Editor, you can now use Visual Shaders to manipulate and apply complex materials to your effects.

    Patch Editor Improvements

    • Some errors now highlight the related patch.
    • Non-generic ports can no longer be connected to non-generic ports of a different type. For example, Face Tracker's Face output port can't be connected to Transition's Progress input port, because their port Types are different.
    • We've added Visual Feedback, which means port values should be updated during runtime.

    SDK Changelog

    • Firing start and reset at the same time will reset and start animation.

    What's New - Version 42 (July 27, 2018)

    New

    • We've added a new fill width and fill height feature for 2D objects. You can now make the size of 2D objects the same as, and responsive to, the size of the object's parent.
    • There's now import support for glTF 2.0 files.
    • We've introduce a new type of audio asset called Playback Controller. You can use it to play, loop and stop sounds.
    • We've introduced a new scene object called Speaker. Connect playback controllers to it to play audio clips.
    • We've introduced Smart Compression - simple controls for resolution and desired quality to make minimizing texture file size easier. Use Smart Compression on a global or per-texture level to automatically lower the quality of simple textures while preserving detail in more complex textures.

    Improved

    • When deleting multiple external assets, only one confirmation popup will now be shown.

    Patch Editor Improvements

    • Imported animations are now compatible with Animation, Loop Animation and Progress patches.
    • Switching from one imported animation to another does not stack animations.
    • Patch Editor errors related to the misconfiguration of a patch now highlights the patch to give more context to the user.
    • Patches that represent assets are orange-colored.

    Removed

    • Audio Source scene node - use Speaker from now on.

    SDK Changelog

    • Improved patches for imported animations: switching from one animation to another doesn't stack animations.
    • Added capability to be able to change volume of audio sources, “AudioSourceVolume API”

    Version 41 - July 13, 2018

    New

    • The simulator now shows instructions when script is running.
    • Introduced texture-level color encoding settings. In the image texture inspector, one can now mark the selected texture as using image data with sRGB or linear color encoding.
    • Introduced material-level color encoding settings. In the Inspector, you can now mark the selected material as producing colors with sRGB or linear color encoding.
    • You can now reveal the Asset Summary from the Inspector panel.
    • You can now reveal Global Compression Settings from the Inspector panel.
    • You can now search Key Binding preferences.
    • We've introduced a new physically-based material. This allows artists to create materials following the metallic/roughness PBR workflow which simulate more realistically the interaction between materials and lights.

    Improved

    • Effects now restart after updating a newly added script.
    • Fixed out of focus state of the Center and Global toolbar buttons.
    • We now validate the token input in the instruction patch when script is running.
    • Improved UX of External Textures.

    SDK Changelog

    • New setInterval and clearInterval APIs introduced to the TimeModule.
    • Enable reversing and resetting at the same time for animation.