Changelog

To find out what's new in Spark AR Studio, check our release notes below. New versions are released every 2 weeks.

We often launch new features and make some big changes, so make sure to read these notes before upgrading.

Version v50 - 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 v49 - 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 v48 - 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 v47 - 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 v46 - 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 v45 - 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 v44 - 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 v43- 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 v41 - 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.

Version v40 - Jun 29, 2018

New

  • The simulator window now shows the effect on textures of the target compression method of the selected device, to make it easier to iterate on compression settings without having test devices to hand. You can only use this feature when compression of imported textures has finished.
  • The new Devices preference pane can be used to add custom devices to the set of devices available in the simulator. Devices can be specified by their screen resolution and texture compression method.
  • You can now add instructions to your project, to give people hints when they're using your effect in the camera.

Improved

  • Import of duplicated textures is now supported. Identical files will be de-duplicated as part of the export flow, and the sizes in the export pane and the asset summary will reflect this.
  • The Asset Summary now contains a root Project node that indicates the full size of your packaged project. The sizes here are the sizes of the full export and the same as those given in the export panel. There's also an Other entry that contains the size of the data model, scripts, and any other files that contribute to your export sizes that aren't otherwise included in the asset summary. To fill-in the table with these sizes, you might need to to press the Compress All button.
  • Minor Asset Summary improvements:
    • The Asset Summary can be launched from the Project menu, rather than the View menu.
    • The ordering of download and unpacked (on-device) sizes has been swapped, to make them consistent with the Inspector.
    • The Compress All button is now disabled when the table is fully-populated.
  • An emission texture can now be specified for standard materials. It will be modulated with the existing emission color for rendering.
  • An alpha cutoff can now be specified for materials that support advanced options. This allows transparent areas with an alpha lower than the specified threshold (which was previously forced to be zero) to be masked out from rendering.
  • We've fixed alpha operations (blending, alpha test) that were incorrectly taking into account specular values for lit materials.

Patch Editor Improvements

  • Hand Tracking is now supported in the patch editor.

SDK Changelog

  • Introduces signal.delayBy({milliseconds: number}) to obtain a delayed version of a signal.

What's New - Version 39 (June 18, 2018)

  • The Hand Tracking capability is released to public.
  • Instead of using Flex and Anchor to position 2D objects, you can now use a combination of Alignment and Pinning. We've also added Flexibility, which scales objects objects proportionately to their parent.

Patch Editor improvements

  • Added support for Color type in If Then Else and Option Picker patches.
  • Added Option Sender patch.
  • Changed default type of Transition patch to Point 3D.

SDK Changelog

  • When mapped to a full-screen canvas, the extracted camera texture aligns correctly with the camera frame.
  • The layout algorithm has been refined, please check that your layout works as expected.
  • Introduce ReactiveHandModule: a module for hand tracking.
  • Expose position, scale and rotation properties as signals from object's transform. Now it's possible to bind object's properties to each other: a.transform.x = b.transform.x.add(5)

What's New - Version 38 (June 1, 2018)

Improved

  • When you've exported an effect, there will now be a link to the effect in the Publishing Hub.

Patch Editor improvements

New

  • Patches from the Patch Editor are now accessible from JS scripting.
  • The Patch Library will now filter compatible patches when double clicking on ports from a graph in Patch Editor. You can also drag from a port to an empty area.

Improved

  • The color picker control will be dimmed when the port is connected.

SDK Changelog

New

  • A parameter for skin smoothing is available for the retouching material via scripting.
  • Added read-only Face.isTracked() to expose whether a face is tracked in the current frame.

Improved

  • When a progress with start == end is instantiated, an exception will now be thrown.

What's New - Version 37 (May 18, 2018)

New

  • Links to the documentation from the Insert menu
  • Animations and materials are now imported from FBX and DAE (Collada)
  • Duplicated mesh vertices are being removed with reduction of 3D models size by more than 75% on average
  • Imported materials are now automatically applied to instantiated objects if they were imported from the same file

Improved

  • The Mirror button in the toolbar now triggers mirroring for all connected devices when opening the popover
  • Projects are automatically upgraded to use a high fidelity face mesh. Face deformation blendshapes must be re-made using the new face reference meshes
  • Texture compression jobs are now less aggressive with lower impact on the interactive performance of AR Studio
  • Sidebar icons that indicate materials now respect the diffuse and emission colors

PATCH EDITOR IMPROVEMENTS

New

  • Light Source support in Patch Editor
    • Ambient, Directional, Point, and Spotlight light sources
  • Instantiated 3D objects can now be animated in the Patch Editor
  • Create Patch action in asset context menu
  • Generic Patches: some patches now support different input/output types
    • Transition, Value, Delay, If Then Else, Option Picker, all comparison patches and 4 math patches now support multiple types
    • Right-click a patch that supports generics to change its type, e.g. change Delay patch type to String

Improved

  • Patches migration to new version
  • Saved patches in patch library are bound to corresponding patches in specific project
  • More interactive error handling

SDK Changelog

  • ScalarSignal.schmittTrigger and Reactive.schmittTrigger in the Reactive module

What's New - Version 36 (May 4th, 2018)

New

  • Filtering of image textures can now be set to none or bilinear (default: bilinear).
  • Wrapping modes of image textures can now be set to repeat, clamp or mirror (default: clamp).
  • Tiling scale and offset for material textures can now be specified.
  • When using the plane tracker, you can choose to target specific textures in the world from the Inspector panel.

Improved

  • Adds some more tooltips to the texture inspector.

PATCH EDITOR IMPROVEMENTS

New

  • Cheek, Eye, Eyebrow, Nose & Chin landmark patches
  • Added support for cmd+c/v/x shortcut to copy/paste/cut patches on Patch Editor, also support controls on Edit menu in toolbar.

Improved

  • Fixed undo in patch editor.
  • Fixed the issue when connection line might stay visible in patch editor when it shouldn’t.

SDK CHANGELOG

New

  • Exposed texture transform of the diffuse and multiply textures of the base material to scripting.
  • Added rotation to texture transform and expose texture transform rotation to scripting.

Improved

  • Fixed face landmarks side selection : left eye is always on the left side of the screen

Version 35 - April 20, 2018

New

  • When opening projects saved in an older version (v31 or later), AR Studio will let you open the project in that version if it is on your Mac.
  • When opening projects saved in a newer version, AR Studio will let you open the project in that version if it is on your Mac.

Improved

  • The Spin property was returned to the particle system’s Inspector panel
  • 3D objects in the Assets panel are now grouped by the file in which they were imported rather than being grouped together under “Objects”.

Patch Editor Changelog

New

  • Audio patches
  • Forehead and Chin face landmark patches
  • Particle system patches

Improved

  • The Duration ports on both the Animation and the Loop Animation patches can be connected
  • The Start and End ports on Transition patches can be connected
  • The Start Value and End Value ports on the Progress patch can be connected

JS API Changelog

  • You can monitor many scalar signals simultaneously (e.g. Reactive.monitorMany)
  • The new ScaleSignal data type allows you to assign scale simultaneously (e.g. obj.transform.scale = Reactive.scale(1, 2, 3) )

Version 34 - April 6, 2018

New

  • Simple per-texture size limiting in inspector. Limit texture sizes without needing to apply an override for each target
  • Value patch for Visual Programming
  • New gestures are supported in Visual Programming: Pan, Pinch, Rotate

Improved

  • Sidebar items are not expanding after adding new root item
  • Keep play/pause state when switch cameras
  • Support of binary FBX files
  • Now you can import any amount of bones within a file but there is a limit of maximum 20 bones influences on a mesh
  • Now you can load blendshapes with Collada files or load them with separate files and assign as deformations

Patch Editor Improvements

  • Advanced Face Tracking
  • Values on connected input ports are now hidden
  • Reverse option for Animation patch

JS API Changelog

  • New
    • Introduced array functions in the Reactive module (ReactiveModule.sumList, mulList, etc.)
    • Introduced new function ScalarSignal.pow and ReactiveModule.pow in the Reactive module
    • Introduced timeDriver.reverse() function to reverse the animation
  • Improvement
    • Fixed bug in JS API for Meshes. Material setter was not changing visual appearence of mesh
    • Added a support for more bones per importing scene. Now mesh will contain a list of joints that it needs to be rendered with. This list defines order which is referenced by joints index attribute
    • Changed the direction of depth in unprojectWithDepth function, so when positive depth is given, it's unprojected in front of the camera

Version 33 - March 23, 2018

New

  • Automatic texture compression options. These new options are the default:
    • PNG /JPEG: Recompresses any imported JPEG or PNG without any loss of quality
    • ETC2: Chooses between the 3 ETC2 formats depending on the use of alpha within the original image
    • PVRTC_V1: Chooses between PVRTC_V1_4_RGB and PVRTC_V1_4_RGBA depending on the use of alpha within the original image

Improved

  • In effects with multiple faces, each face will keep the same mask as long as it is continually tracked
  • Unused assets are checked for in the export window
  • PVRTC_V1: Chooses between PVRTC_V1_4_RGB and PVRTC_V1_4_RGBA depending on the use of alpha within the original image

Patch Editor Improvements

  • New patches
    • Round/Ceiling/Floor operator with decimals
    • Exponential Smoothing
    • Offset
    • Random
    • Long Press Gesture
  • Improved
    • Screen Tap patch
    • Object Tap patch
    • Added Publish Port action popover when you click on a port inside a group patch
    • Only ports that can be published will show popover menu
    • The color of input and output patches is now orange

JS API Changelog

  • New
    • The CameraInfo module exposes information about the preview size, which camera is active, and whether a video or a picture is being captured or not
  • Improvement
    • It is now possible to assign point signal to object.transform
    • It is now possible to assign a PointSignal to object.transform.position
    • It is now possible to assign a RotationSignal to object.transform.rotation
    • Continuously-tracked faces get a stable FaceTracking id for scripting

What's New - Version 32 (March 9, 2018)

Improved

  • Enhanced mirroring feedback
  • 3D Objects are now represented by a file object in the Assets panel
  • AR Studio now displays the application version number in the title of each document window
  • AR Studio will not prompt you for updates if a newer version is already installed on your Mac
  • AR Studio will prompt you to save a copy of the project file when upgrading to a new major version
  • Texture compression inspector improvements:
    • Showing all compression override settings without tabs
    • Showing the size of a texture both uncompressed (on a mobile device) and compressed for download, once compression has finished
  • The “Eyes” and “Mouth” options in the face mesh inspector have been simplified

Patch Editor Improvements

  • Patches can now be grouped
  • New patches:
    • Option Picker patch
    • Camera Info patch
      • Drag camera to the canvas to create one
    • Device Info patch
      • Drag device to the canvas to create one
    • Runtime patch
    • 2D Point Unpack patch
    • Insets Unpack patch
    • Visibility patch for Canvas, Flex, Ambient Light, 2D Text and Rectangle
  • Improved Switch patch (Turn On & Turn Off ports)
  • Added the ability to comment around patches

SDK Changelog

  • New
    • FontsModule, it can be used to find fonts by name to use with PlanarText::font
    • Volume control of audio source dependent on it’s proximity to viewport
    • Various functions of the Reactive module
    • VectorSignal.dot and VectorSignal.cross in the Reactive module
    • CameraControlModule which allows you to control camera from script
  • Improved
    • Audio play()/stopAll() methods move from Audio module to individual audio source instances

Version 31 - February 23, 2018

New

  • Application version archival. This allows you to continue work on existing effects without upgrading project files. Previous AR Studio versions will be stored in your Applications folder. You can opt in to application archival when updating AR Studio from within the app. This can be configured in Preferences.

Improved

  • Autoupdating from within AR Studio has been turned off. You must now actively agree to install an update.

Patch Editor Improvements

  • Consumer patches for multiple selected objects can be added at the same time.
  • Option Switch patch now available. Control up to 5 states using an index input (0, 1, 2…). This is useful for tracking a state that is one of many options.
  • Blink patch now available. You can use this patch to trigger animations or effects when the user blinks.
  • Left and right eye closed patches now available. You can use these patches to trigger animations or effects when the user closes left or right eye.

JS API Changelog

  • New
    • Reactive.mix(x, y, alpha) method that allows you to interpolate two signals.
    • .material getter on all scene objects.
  • Improvement
    • Default value for Face.point() and related methods.
    • Polybezier sampler issue fixed.

Version 30 - February 8, 2018

New

  • New patches are available in the Patch Editor
    • Eyebrows raised
    • Eyebrows lowered
    • Smile gesture

Improved

  • 3D Objects
    • Dropping a 3D object on the Scene tab instantiates it and adds it to the Assets panel
    • Dropping a 3D object on the Assets panel doesn't instantiate a 3D object
  • Mock data visualization in project properties

JS API Changelog

  • Added an opportunity to control a volume of audio instances

Version 29 - January 31, 2018

New

  • A Counter patch is now available in the Patch Editor

Improved

  • Texture previews
  • Default project and version naming
  • Legacy projects are upgraded to a new directory-based file format
  • Stricter naming rules for Asset Library and objects in the Scene tab
  • Dynamic time strings support lowercase and uppercase

JS API Changelog

  • New
    • Ability to get normalized touch gesture coordinates
    • Shader picking for touch gesture hit testing
  • Improved
    • Skin smoothing on low-res images
    • Tracked face mesh adjustments
  • Removed
    • fetch() method in Networking module that expects JSON response

Version 28 - December 8, 2017

New

  • Visual programming:
    • Frame Transition & Texture Sequence Current Frame patches let you create frame-based animations for materials using texture sequences
    • Certain patches are inserted automatically if AR Studio detects that they are needed
    • Use the Equals patch to compare values with custom tolerance value
  • The plane tracker, which tracks an infinite, horizontal plane and lets you place 3D objects in the world, interact with them and animate them
  • Exporting projects produces one file that includes all of the information required for uploading effects to Facebook
  • Specular map support for standard materials
  • Pane in the project export dialog to show whether the exported bundles will meet Facebook's size requirements and a progress bar
  • Texture preview for compression settings

Improved

  • The face mesh has been upgraded to make painting face textures more natural and improve the quality of dynamic lighting:
    • The vertex count has been increased from approximately 350 to 500
    • The topology has been refined
    • The accuracy of facial feature tracking has been improved
  • Project export dialog is smaller and contains more focused information
  • Unit related scaling when importing 3D models
  • Materials without diffuse textures are white, not checkerboard
  • Diffuse textures can have both texture and color inputs, which are multiplied during rendering
  • The name of the Multiply section has changed to Alpha

Removed

  • The multiply mode selector for materials

JS API Changelog

  • Added a visual scripting component to set the current frame of a sequence texture
  • Introduced Reactive.antiderivative
  • Introduced new face mesh
  • Extracted 2D face textures as a sprite with transparent background
  • Networking.fetch() is now closer to standard fetch and is meant to be called as Networking.fetch(url).then(function(r){return r.json();}).then(function(jsonResponse){ /* profit */ })

Known Issues

  • Specular maps don't work with particle systems

Version 27 - December 4, 2017

New

  • Asset Summary Breakdown view available via View → Show Asset Summary. Shows asset sizes using different compression types.
  • Visual programming patch editor available via View → Show Patch Editor. Allows you to add animation, logic and interactivity to your project without scripting.
  • Added support for pan, pinch, rotate and long press gestures.
  • Support for external assets that are stored outside of the project. Now, you're notified when an external asset is missing.
  • New project format to replace the .fbfxproj format: a project folder and a .arproj file.
  • Support for 'Save New Version' for the new project format, which saves a copy of your project file without duplicating external assets.
  • A standalone .arprojpkg file generated at export, which should be uploaded to Facebook using the effect upload tool along with the exported .arfx files.
  • Support for generating a standalone .arprojpkg file from the File → Package Project menu which allows you to share a project with someone else in such a way that they can open the project and re-save it themselves.
  • New toolbar button for reporting a problem.
  • Focus on multiple selected objects with F key.

Improved

  • Default viewport configuration and viewport perspectives.
  • Possibility to select a different video for front and back camera.
  • Added ability to exclude layers affected by a light source.
  • Infinite object rotation.

Removed

  • Checkboxes from the Export panel. All of the required files for uploading a project to Facebook are now generated automatically when the project is exported.

JS API Changelog

  • Removed short names for transform signal properties:
    • Removed FaceTracking.face(X).transform in favor of FaceTracking.face(X).cameraTransform.
    • Removed DeviceTracking.transform in favor of DeviceTracking.worldTransform.
  • Introduced Rotation class and some related methods.
  • Deprecated timeDriver(number), loopTimeDriver(number), and yoyoTimeDriver(number) in favor of timeDriver(objParams).
    • Replace timeDriver(number) with timeDriver({durationMilliseconds: number}).
    • Replace loopTimeDriver(number) with timeDriver({durationMilliseconds: number, loopCount: Infinity}).
    • Replace yoyoTimeDriver(number) with timeDriver({durationMilliseconds: number, loopCount: Infinity, mirror: true}).
  • Camera & Screen aspect ratios now should match.

Known Issues

  • Multiple instances of the app running simultaneously are not supported. It might result in rendering issues and other undefined behavior.

Version 25 - November 10, 2017

New

  • Support for using real-world units (https://developers.facebook.com/docs/camera-effects/faq#realworldunits)
  • Support for normal map texture in default materials
  • Option to use premultiplied alpha for textures

Improved

  • List of devices in the Aspect Resolution toolbar menu
  • Behavior of contextual menus with multiple selected items
  • Texture compression: textures can now be targeted as passthrough, PNG, or JPEG, with optional size conversion and lossy or lossless recompression

JS API Changelog

  • Added muteMicrophone and unmuteMicrophone in Audio module
  • Added support for generic time drivers
  • Introduce UnitsModule: a set of helper functions for units conversion

Known Issues

  • When you import 3D objects, they are assumed to be using the unit that your AR Studio project is using (defined in project properties, cm by default). To get the correct sizing, you need to match the imported file to your project. Any scripts or shaders that specify a unit value may also require fixing as these values will now be different. We are working to improve this process by reading the exported units from the import file.
  • If you import a facemesh for distortion and it looks unexpected, check that the scale of the facemesh is correct.
  • Opening one of the sample projects, selecting the script object, and clicking either the "Edit" or "Reveal Script" button in the Inspector results in a message that the script is missing.

Version 24 - October 13, 2017

Improved

  • Export compressed and uncompressed sizes for Uncompressed export targets are now shown in the export sheet

JS API Changelog

  • New
    • Added focalPlane property to Camera scene object
    • Added methods in FaceGestures JS module for closed eyes
    • Added scalar signals for eye opening

AR Studio Player

  • Please don't forget to update the AR Studio Player to the latest version to be able to mirror effects.

Version 23.2 - October 9, 2017

Improved

  • No longer crashes when running a script with errors
  • No longer shows false positive warning message about deprecated immediate mode API

Version 23.1 - October 4, 2017

Improved

  • The uncompressed export bundle now contains the original PNG/JPEG files, unless an override is applied

Version 23 - September 29, 2017

Added

  • Support for light sources in the scene and new materials that are influenced by lighting
  • Ability to extract the input from the camera node as a texture
  • JS Autocomplete with built-in documentation

Improved

  • Selection persists when script is toggled
  • Texture compression inspector UI
  • Picker UI

JS API Changelog

  • New
    • Scripting API for SVG
    • TouchGestures module exposed onPan, onPinch, onRotate and onLongPress events
    • Added material property in ParticleSystem
    • Allow changing fraction of emission particles of each type
    • CustomMaterial added method setTexture(name, texture) to change texture parameter
    • Added option to remove the expression components from tracked face
    • Added Analytics module to log analytics events
    • Multiplication of vector signals by scalar signals
  • Changed
    • The non-reactive immediate-mode API is not available anymore, but your effect still requests immediate-mode in the Manifest. Please remove it from the Manifest. This will cause the following things to not be available anymore:
      • Global objects like 'textures', 'scene', 'materials', 'layers', 'faces'. Please use the reactive modules instead.
      • functions like 'init()', 'update()' or 'updateFaces()' won't work anymore. Please take a look at examples for reactive effects.
    • Changed focal distance (and plane size) to use meters. Basically scaled the values to more natural range: focal length: ~0.5m. All objects will look smaller in new effects.

AR Studio Player

  • Please don't forget to update the AR Studio Player to the latest version to be able to mirror effects.

Version 22 - September 15, 2017

Added

  • Bones
  • Texture extraction
  • In-app survey
  • New Face Tracker algorithm

Improved

  • Face Mesh UI
  • Performance when changing scene object properties

JS API Changelog

  • New
    • Scripting API for light sources.
    • Reactive.derivative
    • layer support for light sources.
    • Docstrings for classes, properties and methods have been added
    • Reactive.sign and ScalarSignal.sign methods that are reactive equivalents for Math.sign
    • More arithmetic methods for vectors and points
    • FocalDistance model to be used instead of the previous anonymous node added by editor.
  • Changed
    • Ambient, diffuse and specular colors are now modeled by a single object.
    • The non-reactive immediate-mode API is deprecated
    • Redesigned CustomMaterial: Shader definition
    • The config property on particle systems has been moved to the top level property.

AR Studio Player

  • Please don't forget to update the AR Studio Player to the latest version to be able to mirror effects.

Version 21 (September 1, 2017)

Added

  • New texture sequences flow
    • Texture sequences now have their own section in asset library, called “Animations”
    • Similar to how materials work, you can select which texture to attach to an animation
    • Sub-Textures were moved from sidebar tree to inspector
  • 3D Objects as Assets
    • Import your 3D Objects once and reuse them from the asset library
    • Reload 3D Objects

Improved

  • New tabbed inspector for texture compression information
  • Better performance

JS API Changelog

  • New face gesture recognizer for smiling
    • FaceGesturesModule.isSmiling
  • Introduce lip curvature signals
    • Mouth.lowerLipCurvature
    • Mouth.upperLipCurvature

AR Studio Player

  • Please don't forget to update the AR Studio Player to the latest version to be able to mirror effects.

Version 20 (August 18, 2017)

Added

  • New Capabilities system that automatically detects capabilities in use based on the state of the scene as well as the required script modules

Improved

  • UI for adding new objects to the scene
  • UI of the scene objects to have icons for all types

JS API Changelog

  • Eyebrow gestures API:
    • FaceGesturesModule.hasEyebrowsRaised
    • FaceGesturesModule.hasEyebrowsFrowned
  • World-space option for particle systems API:
    • ParticleSystem.worldSpace
  • Planar object API shims that were deprecated in the previous version are now removed. The APIs won't be available in *.arfx files created in AR Studio v20 or higher (*.arfx files created with previous versions will keep working as is). List of removed API:
    • Plane.planarFind
    • Plane.planarChild
    • PlanarObject.planarFind
    • PlanarObject.planarChild
    • ScreenPlane.planarFind
    • ScreenPlane.planarChild
    • Transform.rotation

AR Studio Player

  • Please don't forget to update the AR Studio Player to the latest version to be able to mirror effects.

Version 19 (August 4, 2017)

Added

  • Axes indicator and navigation cube
  • Welcome window
  • Multipack support for importing texture sequences

Improved

  • Texture compression progress indication in sidebar

JS API Changelog

  • Planar objects are now a particular case of regular 3D objects. Compatibility shims were introduced everywhere (e.g. planarChild now is the same as child) but side-effects still can be encountered.
  • More Particle System APIs.
    • ParticleSystem.gravity, ParticleSystem.position, ParticleSystem.positionDelta, ParticleSystem.hsvaColorModulationModifier, ParticleSystem.colorModulationHSVA, ParticleSystem.colorModulationHSVADelta.
  • Vector signal type is introduced. Similar to the existing Point signal type but behaves differently when being applied a transformation (only rotation is applied). The type-string point-vector operations were introduced (e.g. point + vector = point, vector + vector = vector, point + point = error).
    • ReactiveModule.vector, VectorSignal.sub, VectorSignal.sum, VectorSignal.add, VectorSignal.magnitude, VectorSignal.expSmooth, PointSignal.sub, PointSignal.sum, PointSignal.add, VectorSignal.z, VectorSignal.y, VectorSignal.x

Version 18 (July 21, 2017)

Added

  • Scene tree search filters

Improved

  • Better textures import panel
  • Altitude support for dynamic text
  • Editing particle system properties for multiple selected objects
  • The ability to give objects in a scene the same name, as long as they don't share a parent

JS API Changelog

  • New properties for particle system: ParticleSystem.positionModifier, ParticleSystem.velocityModifier, ParticleSystem.sizeModifier
  • New method: Diagnostics.watch(string, signal). Adds the specified signal to the watch view in AR Studio

Version 17 (July 7, 2017)

Added

  • Custom shortcuts
  • Etc2Comp for ETC2 texture compression
  • Manipulation of multiple objects

Improved

  • Interaction with objects in scene tree
  • Selecting a material for multiple 3d objects

JS API Changelog

  • Sequence Sampler API changes: Animation.samplers.sequence().addSegment(...) method is deprecated and replaced with new method Animation.samplers.sequence({samplers: [...]})
  • Particle Systems API exposes bunch of new properties to JS API: lifetime, scaling, initial velocity, rotation and damping
  • New utility functions for Scalar Signals: 'ScalarSignal.floor', 'ScalarSignal.ceil'
  • New utility functions in Reactive Module: 'ReactiveModule.log', 'ReactiveModule.floor', 'ReactiveModule.exp', 'ReactiveModule.ceil'

Version 16 (June 23, 2017)

Added

  • Support for safe areas in 2D canvases
  • Overlay with instructions on how to enable mirroring in AR Studio Player for Android
  • Downloaded and mirrored effects are shown in a single list in AR Studio Player for Android

Improved

  • Texture conversion system
  • Audio source volume stepper behavior
  • Closing behavior of material picker menu
  • Width and height fields validation
  • Disabled UI when running a script

JS API Changelog

  • TimeDriver in `Animation` module now starts and stops the animation in the next frame.
  • Sequence sampler now correctly ignores zero-weight segments.
  • Sensitivity of mouth openness has been increased.
  • New property `id` for class `Face` in `FaceTracking` module.
  • New method `onTap` in `TouchGestures` module.
  • New methods `onOn` and `onOff` for class `BoolSignal` in `Reactive` module.
  • New method `round` for classes `ScalarSignal` and `ReactiveModule` in `Reactive` module.
  • New methods `getModuleNames` and `getTypeDescriptions` in `Diagnostics` module.
  • Enum values for `State` in `LiveStreaming` module were renamed.
  • Property `transform` in module `FaceTracking` was renamed to `cameraTransform` and the old name is now deprecated.
  • Property `transform` in module `DeviceMotion` was renamed to `worldTransform` and the old name is now deprecated.
  • Methods `gesture` and `gestureOn` in `TouchGestures` module are now deprecated.