# Changelog

### 1.1.8

* Fixed `GraphFormat` error when creating models.
* Fixed build errors when building for WebGL.
* NatML now requires Unity 2022.3+.

### 1.1.7

* Fixed `JsonException` when creating some models (#58).
* Fixed crash when building on Unity Cloud Build with macOS worker (#56).

### 1.1.6

* Fixed `DllNotFoundException` when building on Linux (#54).
* Fixed `Illegal byte sequence encountered in the input` error when building on macOS and Windows (#55).
* Refactored `PredictionSession` class to `EndpointPrediction`.
* Refactored `NatML.PredictionSessions` field to `EndpointPredictions`.
* Removed `MLAudioFeature.FromStreamingAssets` method. Use `MLUnityExtensions.StreamingAssetsToAbsolutePath` to get a path and create an audio feature.
* Deprecated `PredictorSession` class.
* Deprecated `NatML.PredictorSessions` field.

### 1.1.5

* Added support for Safari 16.4, bringing NatML to 88% of browsers.
* Added `MLArrayFeature.CopyTo` method overload that accepts a `Texture2D`.
* Added `MLEdgeModel.Create` method overload that accepts a `NatMLClient` instance in place of an `accessKey`.
* Added `MLCloudModel.Create` method overload that accepts a `NatMLClient` instance in place of an `accessKey`.
* Added `Feature.dictValue` field for working with dictionary features.
* Refactored `Dtype.List` enumeration member to `Dtype.List`.
* Refactored `Dtype.Dictionary` enumeration member to `Dtype.Dict`.
* Removed `MLCloudModel.Predict` method overload that accepts a `Dictionary<string, MLFeature>`.
* Removed `MLImageFeature.RegionOfInterest` method.

### 1.1.4

* Added `NatML.API` namespace for accessing the full NatML web API from .NET.
* Fixed [`MLEdgeModel.Create`](/unity/api/mlmodel/mledgemodel.md#creating-the-model) method blocking for a long time on Android and Windows (#49).
* Fixed [`MLEdgeModel.Create`](/unity/api/mlmodel/mledgemodel.md#creating-the-model) method throwing error when called from non-Unity threads.
* Updated default edge prediction configuration to use the CPU and neural processor (and not the GPU) on Android ([#49](https://github.com/natmlx/natml/issues/49)).
* Refactored `MLDepthFeature.ViewportToWorldPoint` method to [`Unproject`](/unity/api/mlfeature/mldepthfeature.md#projecting-to-3d-space).
* Removed `MLEdgeModel.AudioFormat` struct. Use `NatML.API.Types.AudioFormat` class instead.
* Removed `MLEdgeModel.Normalization` struct. Use `NatML.API.Types.Normalization` class instead.
* Removed `MLImageFeature.AspectMode` enumeration. Use `NatML.API.Types.AspectMode` enumeration instead.
* Removed `MLAudioType.FromAudioClip` utility method.
* Removed `MLAudioType.FromVideoClip` utility method.
* Removed `MLVideoType.FromVideoClip` utility method.

### 1.1.3

* Added support for making edge predictions on the GPU on Android with [`MLEdgeModel.ComputeTarget.GPU`](/unity/api/mlmodel/mledgemodel/configuration.md#compute-target).
* Fixed [`MLEdgeModel.Predict`](/unity/api/mlmodel/mledgemodel.md#making-predictions) sporadically crashing on Android.

### 1.1.2

* Added support for CoreML models that consume pixel buffers (`CVPixelBufferRef`) instead of multi-arrays.
* Fixed [`MLEdgeModel.Create`](/unity/api/mlmodel/mledgemodel.md#creating-the-model) ignoring `configuration` argument when model is fetched from NatML Hub.
* Fixed [`MLAsyncPredictor`](/unity/api/mlpredictorextensions.md#async-predictions) accumulating massive amounts of memory on iOS and macOS.
* Refactored `MLTextFeature` class to [`MLStringFeature`](/unity/api/mlfeature/mltextfeature.md).
* Refactored `MLTextType` class to [`MLStringType`](/unity/api/mlfeaturetype/mlstringtype.md).
* Refactored `MLModelDataEmbed` attribute to [`MLEdgeModel.Embed`](/unity/api/mlmodel/mledgemodel.md#embedding-the-model).

### 1.1.1

* Added model embedding support for encrypted models.

### 1.1.0

* Added [`MLCloudModel`](/unity/api/mlmodel/mlcloudmodel.md) class for making predictions with predictor endpoints.
* Added [`MLEdgeModel.Create`](/unity/api/mlmodel/mledgemodel.md#creating-the-model) methods for creating an edge model from a predictor tag or an `MLModelData` instance.
* Added [`MLEdgeModel.ComputeTarget`](/unity/api/mlmodel/mledgemodel/configuration.md#compute-target) enumeration for specifying the compute target for model predictions.
* Added [`MLEdgeModel.Configuration`](/unity/api/mlmodel/mledgemodel/configuration.md) data class for configuring the edge model creation process.
* Added [`MLEdgeModel.labels`](/unity/api/mlmodel/mledgemodel.md#inspecting-classification-labels) property for inspecting classification labels required by the model.
* Added [`MLEdgeModel.aspectMode`](/unity/api/mlmodel/mledgemodel.md#inspecting-the-aspect-mode) property for inspecting the aspect mode required in image data consumed by the model.
* Added [`MLEdgeModel.audioFormat`](/unity/api/mlmodel/mledgemodel.md#inspecting-the-audio-format) property for inspecting the audio format required in audio data consumed by the model.
* Added support for model encryption, protecting your valuable intellectual property.
* Added support for pinning [`MLArrayFeature`](/unity/api/mlfeature/mlarrayfeature.md#pinning) instances with `fixed` statements.
* Added support for pinning `MLImageFeature` instances with `fixed` statements.
* Added [`MLArrayFeature`](/unity/api/mlfeature/mlarrayfeature.md#from-a-cloud-feature) constructor from an `MLCloudFeature` for making predictions with predictor endpoints.
* Added `MLImageFeature` constructor from an `MLCloudFeature` for making predictions with predictor endpoints.
* Added `MLTextFeature` constructor from an `MLCloudFeature` for making predictions with predictor endpoints.
* Added [`MLArrayFeature.CopyTo(MLArrayFeature)`](/unity/api/mlfeature/mlarrayfeature.md#copying) method for copying image data from one image feature to another.
* Added `MLImageFeature.CopyTo(MLImageFeature)` method for copying image data from one image feature to another.
* Added implicit conversion from `float` to [`MLFeature`](/unity/api/mlfeature.md).
* Added implicit conversion from `int` to [`MLFeature`](/unity/api/mlfeature.md).
* Added implicit conversion from `bool` to [`MLFeature`](/unity/api/mlfeature.md).
* Added implicit conversion from `int[]` to [`MLFeature`](/unity/api/mlfeature.md).
* Updated [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md) class to be `sealed` thus preventing inheritance.
* Updated `float[]` implicit conversion to [`MLArrayFeature`](/unity/api/mlfeature/mlarrayfeature.md) to have a 1D shape instead of a `null` shape.
* Refactored `MLModelData.ComputeTarget` enumeration to [`MLEdgeModel.ComputeTarget`](/unity/api/mlmodel/mledgemodel/configuration.md#compute-target).
* Refactored `MLModelData.Normalization` enumeration to [`MLEdgeModel.Normalization`](/unity/api/mlmodel/mledgemodel.md#inspecting-feature-normalization).
* Refactored `MLModelData.AudioFormat` enumeration to [`MLEdgeModel.AudioFormat`](/unity/api/mlmodel/mledgemodel.md#inspecting-the-audio-format).
* Deprecated `MLImageFeature.RegionOfInterest` method. Use `MLImageFeature.CopyTo` method instead.
* Deprecated `MLModelData.ComputeTarget.CPUOnly` enumeration member. Use [`ComputeTarget.CPU`](/unity/api/mlmodel/mledgemodel/configuration.md#compute-target) instead.
* Removed `MLEdgeModel` constructor. Use [`MLEdgeModel.Create`](/unity/api/mlmodel/mledgemodel.md#creating-the-model) method instead.
* Removed `MLModelData.Deserialize` method. Use [`MLEdgeModel.Create`](/unity/api/mlmodel/mledgemodel.md#from-natml-hub) method instead.
* Removed `MLModelData.FromHub` method. Use [`MLEdgeModel.Create`](/unity/api/mlmodel/mledgemodel.md#creating-the-model) method instead.
* Removed `MLModelData.FromFile` method. Use [`MLEdgeModel.Create`](/unity/api/mlmodel/mledgemodel.md#creating-the-model) method instead.
* Removed `MLModelData.tag` property.
* Removed `MLModelData.computeTarget` property. Use [`MLEdgeModel.Configuration.computeTarget`](/unity/api/mlmodel/mledgemodel/configuration.md#specifying-the-compute-target) property instead.
* Removed `MLModelData.computeDevice` property. Use [`MLEdgeModel.Configuration.computeDevice`](/unity/api/mlmodel/mledgemodel/configuration.md#specifying-the-compute-device) property instead.
* Removed `MLModelData.labels` property. Use [`MLEdgeModel.labels`](/unity/api/mlmodel/mledgemodel.md#inspecting-classification-labels) property instead.
* Removed `MLModelData.normalization` property. Use [`MLEdgeModel.normalization`](/unity/api/mlmodel/mledgemodel.md#inspecting-feature-normalization) property instead.
* Removed `MLModelData.audioFormat` property. Use [`MLEdgeModel.audioFormat`](/unity/api/mlmodel/mledgemodel.md#inspecting-the-audio-format) property instead.
* Removed `MLModelData.ComputeTarget` enumeration.
* Removed `MLArrayFeature.CopyTo(T[])` method overload.
* Removed `MLArrayFeature.CopyTo(NativeArray<T>)` method overload.
* Removed `MLArrayFeature.CopyTo(T*)` method overload.
* Removed `MLImageFeature.CopyTo(T[])` method overload.
* Removed `MLImageFeature.CopyTo(NativeArray<T>)` method overload.
* Removed `MLImageFeature.CopyTo(T*)` method overload.
* NatML now requires iOS 14+.

### 1.0.19

* Added [`MLEdgeModel`](/unity/api/mlmodel/mledgemodel.md) public constructor and moved the class to the top-level `NatML` namespace.
* Fixed app storage size increasing every time that [`MLModelData.Deserialize`](broken://pages/-MZnPzKHyob8xevJ4VcU#creating-the-model) was invoked on iOS.
* Deprecated [`MLModelData.Deserialize`](broken://pages/-MZnPzKHyob8xevJ4VcU#creating-the-model) method. Use `MLEdgeModel` constructor instead.

### 1.0.18

* NatML now defaults to accelerating predictions on Windows by using the GPU. This results in much better performance and lower CPU usage for many models.
* Added [`MLModelData.computeTarget`](broken://pages/-MZnPzKHyob8xevJ4VcU#specifying-the-compute-target) property for specifying the compute target used for prediction.
* Added [`MLModelData.computeDevice`](broken://pages/-MZnPzKHyob8xevJ4VcU#specifying-the-compute-device) property for specifying the compute device used for prediction.
* Added [`MLImageFeature.CopyTo`](/unity/api/mlfeature/mlimagefeature.md#copying-the-feature-data) overloads that accepted pixel buffers in managed and unmanaged memory.
* Fixed [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md) producing incorrect prediction results on WebGL.
* Fixed rare crash when calling [`MLModelData.Deserialize`](broken://pages/-MZnPzKHyob8xevJ4VcU#creating-a-model) on low-end Android devices.

### 1.0.17

* Upgraded to Hub 1.0.12.

### 1.0.16

* Refactored `MLDepthFeature.TransformPoint` method to [`ViewportToWorldPoint`](/unity/api/mlfeature/mldepthfeature.md#projecting-to-3d-space).
* Removed `MLImageFeature.CopyTo` overloads that accepted pixel buffers. Use `Texture2D` overload instead.
* Removed `MLImageFeature.ToTexture` method. Use [`MLImageFeature.CopyTo`](/unity/api/mlfeature/mlimagefeature.md#copying-the-feature-data) method instead.

### 1.0.15

* Added initial support for WebGL! NatML can now be used in the browser.
* Improved `MLImageFeature` texture constructor to avoid copying pixel buffers when possible.
* Improved performance of `MLImageFeature.NonMaxSuppression` for large number of candidate boxes.
* Changed `MLEdgeFeature.dataType` property type from `System.Type` to `NatML.DataType`.

### 1.0.13

* Added support for rotated ROI in [`MLImageFeature.RegionOfInterest`](/unity/api/mlfeature/mlimagefeature.md#region-of-interest) method.
* Added [`MLModelData.FromFile`](broken://pages/-MZnPzKHyob8xevJ4VcU#from-file) method to load ML model data from model files.
* Added [`MLImageFeature.TransformPoint`](/unity/api/mlfeature/mlimagefeature.md#transforming-points) method for transforming detection points from feature space to image space.
* Added [`MLDepthFeature.TransformPoint`](/unity/api/mlfeature/mldepthfeature.md#projecting-to-3d-space) method for projecting 2D points into 3D space using depth.
* Added `MLEdgeFeature.dataType` property for inspecting the data type of Edge features.
* Added [`MLAsyncPredictor`](/unity/api/mlpredictorextensions.md#async-predictions) class for making predictions on a background thread.
* Added [`MLPredictorExtensions.ToAsync`](/unity/api/mlpredictorextensions.md#async-predictions) extension method for converting predictor to an async predictor.
* Improved prediction performance on Android devices with dedicated neural processing units.
* Changed `MLEdgeFeature` class to `readonly struct` to prevent GC pressure.
* Fixed [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md) not respecting [`AspectMode.AspectFit`](/unity/api/mlfeature/mlimagefeature.md#aspect-mode) when making predictions.
* Fixed sporadic `NullReferenceException` when [`MLModelData.FromHub`](broken://pages/-MZnPzKHyob8xevJ4VcU#fetching-model-data) is called on some Android devices.
* Updated [`MLDepthFeature.Sample`](/unity/api/mlfeature/mldepthfeature.md#sampling-pixel-depth) method to accept a `Vector2` point instead of individual coordinates.
* Removed `IMLCloudFeature` interface as it is no longer supported by the NatML Hub API.
* Removed `MLCloudFeature` class as it is no longer supported by the NatML Hub API.
* Removed `MLCloudModel` class as it is no longer supported by the NatML Hub API.
* Removed `IMLAsyncPredictor` interface.
* Removed `MLFeature.CloudType` utility method as it is no longer supported by the NatML Hub API.
* Removed `MLArrayFeature` constructor that accepted an `MLCloudFeature`.
* Removed `MLAudioFeature` constructor that accepted an `MLCloudFeature`.
* Removed `MLImageFeature` constructor that accepted an `MLCloudFeature`.
* Removed `MLImageFeature` constructor that accepted an encoded image `byte[]`.
* Removed `MLImageFeature.Contiguous` method.
* Removed `MLTextFeature` constructor that accepted an `MLCloudFeature`.
* Removed `MLEdgeFeature.ReleaseFeature` method as it has long been deprecated.

### 1.0.12

* Upgraded to Hub 1.0.8.

### 1.0.11

* Added [`MLModelDataEmbed`](broken://pages/zw50rfNYNYbPyHiWIU9h) attribute for embedding model data at build time, making models immediately available in builds without downloads.
* Added [`MLImageFeature.NonMaxSuppression`](/unity/api/mlfeature/mlimagefeature.md#non-maximum-suppression) method for performing non-maximum suppression on detection proposals.
* Added [`MLImageFeature.TransformRect`](/unity/api/mlfeature/mlimagefeature.md#transforming-rectangles) method for transforming detection rectangles from feature space to image space.
* Added custom icon for identifying ML model files imported by NatML.
* Migrated [`MLPredictorExtensions.ToAsync`](/unity/api/mlpredictorextensions.md#async-predictions) extension method and [`MLAsyncPredictor`](/unity/api/mlpredictorextensions.md#async-predictions) class to NatMLX.
* Removed `MLPredictorExtensions.RectifyAspect` method. Use `MLImageFeature.TransformRect` method instead.
* Removed `MLPredictorExtensions.NonMaxSuppression` method. Use `MLImageFeature.NonMaxSuppression` method instead.
* Refactored top-level namespace from `NatSuite.ML` to `NatML` for parity with our other API's.

### 1.0.10

* Improved prediction performance on Windows systems with dedicated GPU's.
* Added [`MLArrayFeature`](/unity/api/mlfeature/mlarrayfeature.md#from-a-native-array) constructors that accept [`NativeArray<T>`](https://docs.unity3d.com/ScriptReference/Unity.Collections.NativeArray_1.html) native arrays to minimize memory copies.
* Added setter accessors to [`MLArrayFeature`](/unity/api/mlfeature/mlarrayfeature.md#multi-indexing) indexers allowing for writing values to feature data.
* Added `MLAudioFeature.Contiguous` method for decoding encoded audio feature into memory.
* Added support for creating greyscale image [`MLEdgeFeature`](broken://pages/mo1Gyyq5MDIsRH4aoaYJ#creating-edge-features) features from [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md#creating-edge-features) features.
* Added [`MLImageFeature.RegionOfInterest`](/unity/api/mlfeature/mlimagefeature.md#region-of-interest) method for extracting an ROI from an image.
* Added `MLImageFeature.Contiguous` method for decoding encoded image feature into memory.
* Added [`MLDepthFeature.width`](/unity/api/mlfeature/mldepthfeature.md#depth-map-width) convenience property for getting width of depth features.
* Added [`MLDepthFeature.height`](/unity/api/mlfeature/mldepthfeature.md#depth-map-height) convenience property for getting height of depth features.
* Added [`MLImageType.interleaved`](/unity/api/mlfeaturetype/mlimagetype.md#pixel-layout) property for checking whether image feature is interleaved or planar.
* Added [`IMLCloudFeature`](broken://pages/qCzi4pBQSxVuIV5q47yA) interface to create cloud ML features for making cloud predictions.
* Added "Clear Predictor Cache" menu item for clearing predictor cache in the editor.
* Added `NatMLHub.Subscribe` method for making subscription requests to the NatML API.
* Fixed memory leak when using certain vision predictors like Robust Video Matting.
* Refactored `MLHubModel` class to [`MLCloudModel`](broken://pages/UPP68b3ajMw2Mk8Hqqar).
* Refactored `MLHubFeature` class to [`MLCloudFeature`](broken://pages/qCzi4pBQSxVuIV5q47yA#creating-cloud-features).
* Refactored `HubDataType` class to `DataType`.
* Deprecated `IMLHubFeature` interface.
* Removed `MLAudioFeature.ReadToEnd` method. Use `MLAudioFeature.Contiguous` method instead.

### 1.0.9

* Added exclusive support for running CoreML graphs on iOS and macOS.
* Added exclusive support for running TensorFlow Lite graphs on Android.
* Added support for working with CoreML `.mlmodel` files in Unity projects.
* Added support for working with TensorFlow Lite `.tflite` files in Unity projects.
* Added support for Apple Silicon on macOS.
* Added [`MLVideoFeature`](/unity/api/mlfeature/mlvideofeature.md) class for making ML predictions on video files.
* Added [`MLVideoType`](/unity/api/mlfeaturetype/mlvideotype.md) feature type for inspecting video features.
* Added [`MLDepthFeature`](/unity/api/mlfeature/mldepthfeature.md) abstract class for working with predictors that use depth data.
* Added support for audio feature resampling in [`MLAudioFeature`](/unity/api/mlfeature/mlaudiofeature.md) with [`sampleRate`](/unity/api/mlfeature/mlaudiofeature.md#sample-rate) and [`channelCount`](/unity/api/mlfeature/mlaudiofeature.md#channel-count) fields.
* Added [`MLEdgeFeature`](broken://pages/mo1Gyyq5MDIsRH4aoaYJ#creating-edge-features) type for added type safety when authoring edge predictors.
* Added [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md#from-a-native-array) constructor which accepts a [`NativeArray<byte>`](https://docs.unity3d.com/ScriptReference/Unity.Collections.NativeArray_1.html) pixel buffer.
* Added [`MLImageFeature.width`](/unity/api/mlfeature/mlimagefeature.md#image-width) convenience property for getting width of image feature.
* Added [`MLImageFeature.height`](/unity/api/mlfeature/mlimagefeature.md#image-height) convenience property for getting height of image feature.
* Added [`MLImageFeature.CopyTo`](/unity/api/mlfeature/mlimagefeature.md#copying) methods for copying pixel data from image feature.
* Added [`MLAudioFeature`](/unity/api/mlfeature/mlaudiofeature.md#from-a-native-array) constructor that accepts a [`NativeArray<float>`](https://docs.unity3d.com/ScriptReference/Unity.Collections.NativeArray_1.html) to minimize memory copies.
* Added `MLAudioFeature` path constructor for reading audio features from audio and video files.
* Added `MLAudioFeature.CopyTo` methods for copying audio data from audio feature.
* Added `MLAudioFeature.FromStreamingAssets` method for creating an audio feature from an audio file in the `StreamingAssets` folder.
* Added `MLAudioFeature.ToAudioClip` method for converting audio feature to an `AudioClip`.
* Added `MLAudioFeature.ReadToEnd` method to read audio data into memory for audio features backed by an audio file.
* Added [`MLAudioType.FromFile`](/unity/api/mlfeaturetype/mlaudiotype.md#from-an-audio-file) method for inspecting the audio type of a video or audio file.
* Added [`MLAudioType.FromAudioClip`](/unity/api/mlfeaturetype/mlaudiotype.md#from-an-audioclip) method for inspecting the audio type of an audio clip.
* Added [`MLAudioType.FromVideoClip`](/unity/api/mlfeaturetype/mlaudiotype.md#from-a-videoclip) method for inspecting the audio type of a video clip.
* Added [`MLAudioType.FromStreamingAssets`](/unity/api/mlfeaturetype/mlaudiotype.md#from-streaming-assets) method for inspecting the audio type of a video file in the `StreamingAssets` folder.
* Added [`MLImageType`](/unity/api/mlfeaturetype/mlimagetype.md#from-image-info) constructor that accepts image `channels`.
* Fixed [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md#creating-the-feature) type incorrectly reporting 3 channels instead of 4.
* Fixed [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md#normalization) default normalization standard deviation having `0` for alpha channel.
* Removed `IMLModel` interface as it has long been deprecated.
* Removed `IMLFeature` interface as it has long been deprecated.

### 1.0.8

* Fixed `Cannot deserialize graph` exception when deserializing cached predictors.
* Fixed [`MLModelData`](broken://pages/-MZnPzKHyob8xevJ4VcU) being cached for `DRAFT` predictors.

### 1.0.7

* Added [`MLArrayFeature`](/unity/api/mlfeature/mlarrayfeature.md#from-a-hub-feature) constructor that accepts an [`MLHubFeature`](broken://pages/qCzi4pBQSxVuIV5q47yA#creating-cloud-features) for working with Hub predictors.
* Added [`MLAudioFeature`](/unity/api/mlfeature/mlaudiofeature.md#from-a-hub-feature) constructor that accepts an [`MLHubFeature`](broken://pages/qCzi4pBQSxVuIV5q47yA#creating-cloud-features) for working with Hub predictors.
* Added [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md#from-a-hub-feature) constructor that accepts an [`MLHubFeature`](broken://pages/qCzi4pBQSxVuIV5q47yA#creating-cloud-features) for working with Hub predictors.
* Added [`MLTextFeature`](/unity/api/mlfeature/mltextfeature.md#from-a-hub-feature) constructor that accepts an [`MLHubFeature`](broken://pages/qCzi4pBQSxVuIV5q47yA#creating-cloud-features) for working with Hub predictors.
* Fixed `DirectoryNotFoundException` when loading cached [`MLModelData`](broken://pages/-MZnPzKHyob8xevJ4VcU) on iOS.
* Removed prediction analytics reporting to NatML Hub, relieving network bandwidth pressure.
* Removed `cache` flag in [`MLModelData.FromHub`](broken://pages/-MZnPzKHyob8xevJ4VcU#fetching-model-data) method.

### 1.0.6

* Introduced Hub Predictors, which make predictions using server-side processing on [NatML Hub](https://hub.natml.ai).
* Added [`MLHubModel`](broken://pages/UPP68b3ajMw2Mk8Hqqar) class for authoring predictors that make cloud-based predictions using NatML Hub.
* Added [`MLEdgeModel`](/unity/api/mlmodel/mledgemodel.md) class for authoring predictors that make edge (on-device) predictions.
* Added [`IMLHubFeature`](broken://pages/qCzi4pBQSxVuIV5q47yA) interface for creating server-side features when making predictions with NatML Hub.
* Added [`IMLEdgeFeature`](broken://pages/mo1Gyyq5MDIsRH4aoaYJ) interface for creating native features when making edge (on-device) predictions.
* Added [`MLTextType`](/unity/api/mlfeaturetype/mlstringtype.md) feature type for inspecting [`MLTextFeature`](/unity/api/mlfeature/mltextfeature.md) instances.
* Added [`MLModelData.tag`](broken://pages/-MZnPzKHyob8xevJ4VcU#inspecting-model-data) property to identify the predictor tag from [NatML Hub](https://hub.natml.ai).
* Added [`MLModel.metadata`](/unity/api/mlmodel.md#inspecting-metadata) dictionary for inspecting model metadata.
* Added `MLArrayFeature.Squeeze` to remove singleton dimensions from an array feature.
* Added `MLArrayFeature.Flatten` to flatten an array feature into one-dimensional array feature.
* Added [`MLArrayFeature.ToArray`](/unity/api/mlfeature/mlarrayfeature.md#converting-to-array) to convert an array feature into a flattened primitive array.
* Added [`MLImageFeature.ToTexture`](/unity/api/mlfeature/mlimagefeature.md#converting-to-texture) to convert an image feature into a [`Texture2D`](https://docs.unity3d.com/ScriptReference/Texture2D.html).
* Added [`MLImageType.FromType`](/unity/api/mlfeaturetype/mlimagetype.md#from-a-feature-type) static method for converting arbitrary feature types to image types.
* Added implicit conversion from [`MLFeatureType`](/unity/api/mlfeaturetype.md) to `bool` indicating if the type is non-`null`.
* Added implicit conversion from [`MLTextFeature`](/unity/api/mlfeature/mltextfeature.md) to `string`.
* Fixed [`MLImageType`](/unity/api/mlfeaturetype/mlimagetype.md) image resolution constructor assuming planar format instead of interleaved format.
* Moved [`IMLPredictor`](/unity/api/imlpredictor.md) interface to the top-level `NatSuite.ML` namespace.
* Moved [`IMLAsyncPredictor`](broken://pages/-Mk8pvLokfCB5AxIJjo9) interface to the top-level `NatSuite.ML` namespace.
* Deprecated `IMLModel` interface. Cast model to [`MLEdgeModel`](/unity/api/mlmodel/mledgemodel.md) class instead.
* Deprecated `IMLFeature` interface. Cast feature to [`IMLEdgeFeature`](broken://pages/mo1Gyyq5MDIsRH4aoaYJ) interface instead.
* Deprecated `MLPredictorExtensions.GetImageSize` static method. Use [`MLImageType.FromType`](/unity/api/mlfeaturetype/mlimagetype.md#from-a-feature-type) instead.
* Removed `MLModelData.FromFile` method. Use [NatML Hub](https://hub.natml.ai) instead.
* Removed `MLModelData.FromStreamingAssets` method. Use [NatML Hub](https://hub.natml.ai) instead.
* Removed `MLPredictorExtensions.SerializeAudio` method.
* Removed `MLPredictorExtensions.SerializeImage` method.
* Removed [`MLModel`](/unity/api/mlmodel.md) dictionary indexers. Use [`MLModel.metadata`](/unity/api/mlmodel.md#inspecting-metadata) property instead.

### 1.0.5

* Changed [`MLImageFeature.mean`](/unity/api/mlfeature/mlimagefeature.md#mean) and [`std`](/unity/api/mlfeature/mlimagefeature.md#standard-deviation) types to [`Vector4`](https://docs.unity3d.com/ScriptReference/Vector4.html) to support normalization for alpha channel.
* Fixed bitcode not being generated for iOS `NatML.framework`.
* Removed metadata accessors from `IMLModel` interface. Cast to [`MLModel`](/unity/api/mlmodel.md) instead.

### 1.0.4

* Added [`IMLAsyncPredictor`](broken://pages/-Mk8pvLokfCB5AxIJjo9) interface for making server-side ML predictions with NatML Hub.
* Added [`MLArrayFeature<T>`](/unity/api/mlfeature/mlarrayfeature.md#from-a-native-feature) constructor which accepts a native array feature for easy interop.
* Added multi-indexing support to [`MLArrayFeature<T>`](/unity/api/mlfeature/mlarrayfeature.md#multi-indexing) for post-processing native array features.
* Added [`MLArrayType.elementCount`](/unity/api/mlfeaturetype/mlarraytype.md#element-count) property to get the total number of elements for an array type.
* Added [`MLArrayFeature<T>.shape`](/unity/api/mlfeature/mlarrayfeature.md#feature-shape) property which returns the feature type's shape for convenience.
* Added [`MLArrayFeature<T>.elementCount`](/unity/api/mlfeature/mlarrayfeature.md#element-count) property which returns the feature type's element count for convenience.
* Added [`MLArrayFeature<T>.CopyTo`](/unity/api/mlfeature/mlarrayfeature.md#copying) method to copy feature data into an array.
* Added `MLArrayFeature<T>.Permute` method to create a shallow array view with permuted dimensions.
* Added `MLArrayFeature<T>.View` method to create a shallow array view with a different shape.
* Added [`MLPredictorExtensions.NonMaxSuppression`](/unity/api/mlpredictorextensions.md#non-maximum-suppression) method for working with detection models.
* Added `MLPredictorExtensions.GetImageSize` method for making predictions with image features.
* Added `MLPredictorExtensions.SerializeAudio` method for making Hub predictions with audio features.
* Added `MLPredictorExtensions.SerializeImage` method for making Hub predictions with image features.
* Fixed [`MLAsyncPredictor`](broken://pages/-MZnQIsGHofi0magWYLW) predictions never completing if backing predictor encountered exception.

### 1.0.3

* Greatly improved performance and memory pressure when performing multi-indexing with [`MLArrayFeature<T>`](/unity/api/mlfeature/mlarrayfeature.md).
* Added [`MLPredictorExtensions.RectifyAspect`](/unity/api/mlpredictorextensions.md#aspect-ratio-rectification) extension method for correcting detection rects from aspect-scaled images.
* Fixed crash when making predictions with recurrent models on previous state features.
* Fixed crash when getting native array feature shape for [`MLArrayFeature<T>`](/unity/api/mlfeature/mlarrayfeature.md).
* Fixed memory leak when making predictions with image features on iOS and macOS.

### 1.0.2

* Added `MLModelData.audioFormat` property for working with audio and speech ML models.
* Added [`MLTextFeature`](/unity/api/mlfeature/mltextfeature.md) for working with natural language processing models.
* Exposed `mean` and `std` arrays in [`MLModelData.Normalization`](broken://pages/-MZnPzKHyob8xevJ4VcU#feature-normalization) struct for models that require arbitrary normalization.
* Removed generic `MLClassificationPredictor` and `MLDenseClassificationPredictor` predictors.
* Removed ability to specify class labels for local `.onnx` file in project. Use NatML Hub instead.

### 1.0.0

* First release.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.natml.ai/unity/insiders/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
