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.