All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- BREAKING: Added OpenCL shader caching to Android GPU models. Because of this
createVideoTracker
andcreateImageTracker
now requires an activity context to access cache directories. - Updated Kotlin to 1.7.20 which brings performance and memory improvements
- Memory leaks on iOS
- New structure of flat3d for faster loading time
- Designer logic more robust
- Better fit in ViewportFitAvatarController
- Performance improvements for iOS and Javascript platforms
- Prefer front-facing cameras on JS when frontFacing is set to true in CameraWrapper
- Better conflict resolution in avatar designer logic
- Transparent background not working properly on iOS
- Crash when CameraWrapper was used from multiple threads on iOS
- deviceId parameter in CameraWrapper.start being ignored on JS
- Cached files getting occasionally corrupted on iOS
- Updated default data URL to a new version
- Wrong paths in Swift PM dependencies
- CameraTrackerController that connects CameraWrapper and TrackerAvatarController in one convenient object
- ViewportFitAvatarController that makes sure the avatar always fits in the given viewport
- AnimatingAvatarController that allows driving the avatar from a keyframe animation
- RecordingAvatarController that allows recording a keyframe animation for AnimatingAvatarController
- pause/resumeRendering is available on AvatarView on all platforms
- Inconsistencies in designer logic
- Unnecessary test code and resources being included in the production build
- Javascript APIs not properly accepting JS Maps/objects as parameters
- CameraWrapper methods on iOS do not require named parameters anymore (in line with the rest of the API)
- SerializingTrackerAvatarController and DeserializingTrackerAvatarController to support a simple integration of the face tracker result serialization
- Optional avatar data versioning to
avatarDataUrlFromKey
- Added APIs for creating custom avatar designers (
AvatarLogic
andConfigurableAvatarLogic
)
- Updated face tracker result serialization to work around a Protocol buffers serializer bug, previous serialization version is deprecated and will become unsupported in time
- Overload resolution bugs on Javascript
- Memory leaks and excessive memory usage, especially on iOS
- Fixed a regression from 0.11.0 that caused a crash in video recording on iOS
- Protocol-buffers-based face tracker result serialization
- Replaces deprecated functions FaceTrackerResult.serialize() and deserializeResult()
- Memory leaks when loading multiple avatars
- Stuttering on iOS
- Screenshot not working on Javascript
- FallbackAvatarController not transitioning smoothly between primary and fallback phase
- Swift package manager not working with Xcode 13.3
- Avatar loading getting stuck on older iOS devices
- New classes for accessing camera on iOS and Javascript
- Changing name from Facemoji to Alter
- The SDK is now publicly available
- (iOS) Multiple memory leaks on iOS
- (iOS) Multiple thread synchronization issues on iOS
- Accessory collisions for avatars
- Assets not properly updated from Alter servers
- (JS) NN loading performance
- (JS) Avatar loading performance
- Javascript implementation is now up to 3x faster
- Improve error messages for avatar loading
- New simplified Avatar API to avoid the need to create contexts and multiple helper objects
- Re-worked Javascript API to be on-par with Android and iOS
- Fix face tracker limiting rendering performance
- (iOS) Workaround for device crash on Apple A8 chipsets (iPad Air 2, iPad Mini 4, iPhone 6)
- (iOS) Reduce peak memory usage
- (iOS) Cache compiled neural net models to speed up startup and reduce disk usage
- (iOS) Improve neural net loading to avoid hiccups in first few frames
- (JS) Removed co.facemoji* prefix from API classes
- (JS) Improve Typescript typings
- (JS) API now allows to limit avatar tracking only to rotation
- (JS) Fix JS overload renames being applied to external definitions
- Redesign boneblender computation to be more predictable
- (JS) NN data path respects base data location configuration