# Changelog

> Asset Transformer Studio release notes and changelog

> **Note:**
>
> Asset Transformer Studio (previously Pixyz Studio) has been rebranded ([announcement](https://discussions.unity.com/t/pixyz-is-now-unity-asset-transformer/1659247)).

> **Warning:**
>
> Asset Transformer Studio still features a [Python API interface](./working-with-asset-transformer-studio/scripting-with-the-python-api.md), enabling developers to extend its out-of-the-box capabilities, but with the **following limitations compared to previous releases** (see What's New):
>
> * It is no longer possible to import and export using scripting (the `IO` module is removed from the API), nor to reset or load a `.pxz` scene.
> * Asset Transformer Studio [plugins](./working-with-asset-transformer-studio/plugins.md) are compatible with Asset Transformer Studio only, and cannot be run with [Asset Transformer SDK](https://www.pixyz-software.com/documentations/sdk/latest/).
> * The PyQt native support was discontinued, so plugins are limited to what the XML structure can offer. Users wishing to create advanced interfaces should use the full power of Asset Transformer SDK.
>
> Also, **a lot of changes have been made to the Python API** (functions signatures, behavior,...). Take a close look below to help you migrate your old Asset Transformer Studio scripts and plugins.
>
> For support, contact [Unity Asset Transformer (ex Pixyz) support](https://support.unity.com/hc/en-us/requests/new?ticket_form_id=1900000519467) or reach out to the community on the [Unity Asset Transformer Forum](https://discussions.unity.com/c/pixyz/51).

## \[2026.5.0.0] - 2026-08-26

### 🐛 FIXED

* Fixed the Alias API DLL path preference (`IO/Alias/AliasApiDllPath`) not persisting between sessions

### 📦 Asset Transformer SDK CHANGES

* 2026.4.0.0 → 2026.5.0.0

#### 💡 CHANGED

* `core.configureLicenseServer`: the `flexLM` boolean is replaced by `serverType` (`PIXYZ`, `FLEXLM` or `UNITY`), and a new optional `toolset` selects which license pool to draw from on a Unity server; scripts passing `true` or `false` must be updated to the enum
* `core.getLicenseServer` now returns `serverType` instead of `useFlexLM`, along with the configured `toolset`

#### 👾 FIXED

* Fixed Creo Family Table instance files (.xas, .xpr, .neu) rejected with "File extension not recognized"
* Fixed GLTF/GLB export ignoring the ExportHiddenParts flag
* Fixed crash when exporting a selection as a JT file
* Fixed wrong coordinate frames in JT import
* Fixed misalignment between vertices and vertex colors in JT import
* Fixed import hanging with certain .fbx files
* Fixed FBX import removing mesh skinning if there were no animations
* Fixed an issue importing SLDASM files where a prototype and its instances were incorrectly both added to the scene
* Fixed crash when importing PMI in certain files
* Fixed issue importing layer colors in .dwg files
* Fixed standalone annotations not being imported for .step files
* Fixed crash when importing .pxz file with a null material texture

## \[2026.4.0.0] - 2026-05-22

### 📦 Asset Transformer SDK CHANGES

* 2026.1.1.1 → 2026.4.0.0

#### ➕ ADDED

* Support of PMI Product Views in JT import
* Revit import: Added view metadata and project base point
* Updated CATIA V5 import support up to V5-6R2026
* Updated NX import support up to NX 2512
* Updated Solid Edge import support up to 2026
* Updated SolidWorks import support up to 2026
* Updated Revit import support up to 2026
* Updated ACIS import support up to 2025 (V35)
* Updated Parasolid import support up to 38.0
* DGN (MicroStation) reader is now officially supported
* [material.getImageAverageColor](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimageaveragecolor) *Get the average color of an image, as well as the per component standard deviation (returned as a colorAlpha)*

#### 💡 CHANGED

* Default JT export version changed from 8.1 to 10.0
* [material.getMaterialMainColor](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getmaterialmaincolor) *Now returns the average color if the material has a texture*

#### 👾 FIXED

* Fixed material loss during JTOpen export/import
* Improved point evaluation on periodic NURBS (Tessellation fix)
* Fixed USD export crash with instances
* Fixed partial loading mode in some CAD file imports
* Fixed PLMXML import of referenced files
* Fixed AO baking getting worse with dense meshes
* Fixed material loss during PDF import/export
* Fixed some SDK crashes during .pxz file import
* Fixed material issue after undoing explode functions
* Fixed crash in STEP file import with LoadPMI enabled
* Fixed removeSymmetryMatrices, sometimes symmetry were not detected
* Fixed BakeAO triggering weird Progress callback values when DestOcc and SourceOcc don't have the same size
* Fixed missing transforms in some JT file import
* Fixed some crashes in JT exporter
* Fixed a crash in STEP importer
* Fixed .stpz extension not recognized
* Fixed import of KHR\_materials\_specular extension in glTF
* Fixed invalid image loading
* Fixed .step loop creation leaving co-edges unlinked
* Fixed .dwg import bloating scene with geometric text
* Fixed 2025.x pxz file import

## \[2026.1.1.1] - 2025-12-12

### 🐛 FIXED

* force PYTHONPATH to be application path
* fix preference restore system
* material comparison fix
* fix resetSession + import crash
* prevent inspector from entirely refresh with multi selection
* Fix crash undoing a capping plane generation
* fix fast properties on metadata
* inspector over-refresh fix
* fix Desc's override values

### 📦 Asset Transformer SDK CHANGES

* 2025.7.3.1 → 2026.1.1.1

#### 👾 FIXED

* Fixed missing children in some USD files
* New primary JT interface solving a huge number of import and performance problems
* Fixed subpart materials handling in explode functions

#### 💡 API Changes

##### ➕ ADDED FUNCTIONS

* `algo.deleteAttribute` *Replaces the misspelt function `algo.deleteAttibute`*
* [material.getImagePixelInfo](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimagepixelinfo) *Recovers pixel info from an image*
* [material.getImagePixelInfoFromDefinition](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimagepixelinfofromdefinition) *Same but from an image definition*
* [material.getImagePixelInfoFromLayoutAndType](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimagepixelinfofromlayoutandtype) *Same but from a couple of image layout and component type*
* [material.getImageColorBilinear](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimagecolorbilinear) *Same as getImagePixelColor, except that it takes real coordinates as input and returns a bi-linearly interpolated color*
* [material.convertImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#convertimage) *Converts an image from one format to another*
* [material.flipImageY](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#flipimagey) *Applies a vertical flip to an image*
* [material.invertImageColor](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#invertimagecolor) *Inverts image pixel colors*
* [material.blurImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#blurimage) *Applies a blurring to an image*
* [material.getImageLayout](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimagelayout) *Gets the pixel layout (component definitions) of an image*
* [material.getImageComponentType](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimagecomponenttype) *Gets the component type of an image*
* [material.getImageComponentTypeName](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimagecomponenttypename) *Gets a readable name from an image component type*
* [material.fillImageWithColor](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#fillimagewithcolor) *Fills (a sub-part of) an image with a single color*
* [material.getImageColorRange](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimagecolorrange) *Gets the min and max bounds of each image color component*
* [material.extractImageComponents](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#extractimagecomponents) *Creates new images from individual components of an image*
* [material.extractImageChannels](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#extractimagechannels) *Creates new images from individual channels of an image*
* [material.getSubImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getsubimage) *Extracts a sub-part of an image*
* [material.setSubImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#setsubimage) *Replaces a sub-part of an image by another one*
* [material.setImageRoI](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#setimageroi) *Defines the region of interest of an image*
* [material.getImageRoI](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#getimageroi) *Gets the region of interest of an image*
* [material.clearImageRoI](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#clearimageroi) *Removes the region of interest from an image*
* [material.transformImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#transformimage) *Applies a transformation matrix to (the sub-part of) an image*
* [material.translateImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#translateimage) *Applies a translation to (the sub-part of) an image*
* [material.rotateImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#rotateimage) *Applies a rotation to (the sub-part of) an image*
* [material.stretchImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#stretchimage) *Applies a non-uniform scale to (the sub-part of) an image*
* [material.createCheckerboardImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#createcheckerboardimage) *Creates a new image representing a checkerboard using two specified colors*
* [material.overrideImageFormat](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#overrideimageformat) *Changes the way image channels are interpreted by assigning a new format without modifying the data*

##### ❌ REMOVED FUNCTIONS

* `algo.deleteAttibute` *Replaced by the correctly spelt function `algo.deleteAttribute`*

##### ➕ ADDED TYPES

* `material.ImageLayout`: *Describes the channel components of an image*
* `material.ImageComponentType`: *Describes the data type of an image component*
* `material.PixelInfo`: *Stores additional info about image pixels*
* `material.BlurFilter`: *Describes the type of filter to use for image blurring*
* `material.EdgeFilter`: *Describes how to manage pixels located out of an image*
* `algo.VertexWeightStrategy`: *Describes how to calculate vertex weights*
* `algo.AttributeType`: *Replace the misspelt type `algo.AttributType`*

##### ❌ REMOVED TYPES

* `algo.AttributType` *Replaced by the correctly spelt type `algo.AttributeType`*

##### 💡 TYPE CHANGE

* `material.ImageDefinition`: *Component size and count have been replaced by the pixel layout and type*

##### 💡 BEHAVIOR CHANGE

* [material.importImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#importimage) *Now able to manage new pixel data types, like uint16 or uint32 from TIFF, or half-float from EXR, for instance*
* [material.exportImage](/asset-transformer-studio/2026.5.0/api/python/material_functions.md#exportimage) *Now applies an implicit conversion when trying to export to a format that doesn't support the current image data type*
* [scene.deleteEmptyOccurrences](/asset-transformer-studio/2026.5.0/api/python/scene_functions.md#deleteemptyoccurrences): *Now consider an occurrence with a Camera attached as not empty.*
* PLY importer is now able to import point clouds.

## \[2025.4.2.1] - 2025-09-19

### 🐛 FIXED

* Fixed materials not exported with glTF, USD, FBX and JT exports when materials are assigned as subpart materials
* Fixed menus displayed with transparency on Windows 11
* Fixed `Isolate` behavior to match legacy behavior
* Fixed Studio not launched after installation depending on admin rights
* Fixed first file drag\&drop blocked after first software startup
* Fixed folding arrows in tree not refreshing correctly
* Fixed animations not saved when saving a .pxz scene
* Fixed `No Tessellate` error displayed when re-tessellating parts in some cases
* Fixed crash when opening UV Viewer with animated models
* Fixed `invalid entity identifier` error when opening UV Viewer with animated models
* Fixed Inspector view not refreshed when adding custom properties on occurrences
* Fixed Area selection behavior to match legacy behavior
* Fixed incorrect update in scene statistics panel
* Fixed Viewer background turning black when disabling some information from the statistics panel
* Fixed incorrect rendering with the `World Tangents` override material
* Fixed undo/redo failing with deleted BRep materials

### 📦 Asset Transformer SDK CHANGES

* 2025.1.2.3 → 2025.4.2.1

#### ➕ ADDED

* Added support for Autodesk Inventor 2026, CATIA V5 V5\_6R2025, Creo 12.4.0.0, NX-Unigraphics NX2506
* Wire: Added the import of `Selection sets` included in \*.wire files (Alias)
* Wire: Added a new `AliasImportSymmetries` import preference

#### 👾 FIXED

* JT: Fixed export up-axis/orientation issue and metadata export
* DWG: Fixed incorrect scale problem at import
* glTF: Fixed `LoadVariant` IO preference not working
* Revit: Fixed over-importing "Mass Floor" geometry and potential infinite loop at import
* Creo: Fixed error importing components with flexibility
* USD: Fixed visibility interpretation mismatch and crash with malformed UVs
* Fixed Baking API bug when baking feature component
* Fixed numerical precision issue in GPU Baking
* Fixed Shininess of Standard materials incorrectly rendered in the viewer
* Fixed retessellation of parts after singularization
* Fixed undo/redo of instance singularization

## \[2025.1.1.1] - 2025-05-12

### 🐛 FIXED

* Fixed materials not exported with glTF, USD, FBX and JT exports when materials are assigned as subpart materials
* Fixed inability to run software in administrator mode without UAC
* Fixed scene statistics not always updated correctly
* Fixed transform gizmo displayed even with no selection
* Fixed inability to create keyboard shortcut with some functions
* Fixed materials selectors not always emptied after resetting a session
* Fixed sizing issues with keyboard shortcuts window

### 📦 Asset Transformer SDK CHANGES

* 2025.1.0.4 → 2025.1.2.3

#### 🚀 FEATURES

* GLTF: Added materials `Alpha coverage`

#### 👾 FIXED

* 3DXML: Fixed import yielding inconsistent hierarchy randomly
* STEP: Fixed a memory leak during import
* Revit: fixed misoriented faces at import
* GLTF: Fixed PBR channels exception and variants not imported
* DGN: Fixed potential freeze in tessellation process and missing colors
* USD: Fixed incorrect occurrences naming at export
* Fixed a crash while baking from UV channel 0 to UV channel 1
* Fixed `algo.decimateTarget` inconsistencies
* Fixed `computeAABB` to include lines

## \[2025.1.0.5] - 2025-03-28

### ➕ ADDED

* Added `Combine Materials in Textures` action in the `Optimize Mesh` menu
* Added an `Ambient light` preference for the Standard lighting mode
* Added a spinner in the bottom taskbar indicating the app is still processing
* Added support for the `Windows 11` style

### 🐛 FIXED

* Fixed scripting error output shortening
* Fixed `Isolate` mode not working in the `No-Show` view
* Fixed the `FitView` not working in `Isolate` mode with nothing selected
* Fixed a crash when deleting materials while `SubpartInspector` is visible
* Fixed viewer not updating at the end of an in-depth selection
* Fixed `Select Instances` action no longer selecting instances
* Fixed material thumbnails being blank when Viewer is in isolate mode
* Fixed `Unselect` (clear selection) keyboard shortcut not working anymore
* Fixed a GPU memory leak when closing the app
* Fixed `Find in Tree` not always focusing at the correct tree location
* Fixed a crash when applying the rUV projection in the `UV Projection Tool`
* Fixed `Display Prototype Name` setting being ignored
* Fixed file drag\&drop blocked after very first app startup
* Fixed floating license server not found
* Fixed move occurrences position in the tree broken
* Fixed progress bar not showing with functions from the `Process` module
* Fixed viewer not updated when parts transform changed

### ❌ REMOVED

* Removed the Catia-like navigation mode
* Removed the `runGenericProcess` function

### 📦 Asset Transformer SDK CHANGES

* 2024.3.0.14 → 2025.1.0.4

#### ➕ ADDED FUNCTIONS

* [algo.hasOverlappingUV](/asset-transformer-studio/2026.5.0/api/python/algo_functions.md#hasoverlappinguv) *Function to check if a given mesh has some overlapping UVs*
* [polygonal.hasUVs](/asset-transformer-studio/2026.5.0/api/python/polygonal_functions.md#hasuvs): *Function to check if a given mesh has some valid UV channels*
* [polygonal.hasNormalizedUVs](/asset-transformer-studio/2026.5.0/api/python/polygonal_functions.md#hasnormalizeduvs): *Function to check if a given mesh has some normalized UVs*
* [core.getRemainingSecondsBeforeLicenseTimeout](/asset-transformer-studio/2026.5.0/api/python/core_functions.md#getremainingsecondsbeforelicensetimeout): *After the connection to a floating license server is lost, get the seconds remaining until the program quits*

#### 👾 FIXED

* Fixed `mergePartOccurrencesByMaterials` ignoring subpart materials
* Fixed `computeAABB` to include lines
* Fixed Utf-8 material name encoding issue
* GLTF: Fixed PBR channels exception and variants not imported
* USD: Fixed incorrect occurrences naming at export
* PARASOLID: Fixed surfaces created twice and overlapping
* Fixed viewer's auto-clipping planes issue with 2D objects
* Fixed a crash when calling undo on empty stack

***

## Previous releases

## \[2024.1.0.44 **BETA**] - 2025-02-07

### ➕ ADDED

* Added `Combine Materials in Textures` action in the `Optimize Mesh` menu
* Added API functions from the removed legacy `UI` module (`askYesNo`, `message`,...) into `Studio` module
* Added `Preferences` quick access button in the main toolbar

### 💡 CHANGED

* Improved hierarchy handling performance
* Updated scripts from the `Sample Scripts` directory
* Renamed the export preference `FbxUpAxis` with `UpAxis` (affects `FBX` and `JT` export formats only)

### 🐛 FIXED

* Fixed multiple crashes/bugs with material creation/deletion and the Material Editor interface
* Fixed Material Selector becoming blank
* Fixed transformation gizmo with multiselection now always aligned to world
* Fixed wrong rotation value applied with multiple occurrences selected
* Fixed manual scaling yielding incorrect result with large and small values
* Fixed gizmo disappearing in orthographic camera mode
* Fixed crash/freeze when manipulating the scale in `Move Pivot Only` mode
* Fixed viewer freeze with large selection with show/hide
* Fixed viewer not updating after `Select All`
* Fixed patch lines showing in the viewer with the `Outlines` button disabled
* Fixed emissive map not baked with `ProxyMesh+Bake` and `DecimateTarget+Bake`
* Fixed renaming occurrences with `Rename` (F2) not working
* Fixed potential crash when searching in the tree
* Fixed occurrences paste and duplicate without instance
* Fixed `Collapse` and `Expand` tree actions
* Fixed crash when deleting nodes in the tree
* Fixed crash with multiple `core.resetSession` in script execution
* Fixed `out of range` error when modifying a subpart material
* Fixed `Select By Material` failing to select parts with subpart materials
* Fixed missing context menu actions
* Fixed animation controls being disabled when reimporting a model
* Fixed crash when undoing an import
* Fixed crash when undoing any step which added a texture
* Fixed crash caused by the Inspector constantly updating during script execution
* Fixed crash if Material Selector was opened before `resetSession` is called
* Fixed shortcuts being disabled after closing dialogs
* Fixed license expiration dialog appearing with floating license
* Fixed a crash when performing some undo/redo on BReps manipulations
* Fixed a crash when using `Manual Scale` in `Guided Import`
* Fixed incorrect opacity texture baking rendered black with billboard generation
* Fixed billboard generated with abnormally large scale

### ❌ REMOVED

* Removed `Combine Meshes` action from the `Optimize` menu (use `Merge Parts By Materials` instead)
* Removed `IO` module from the API interface

### 📦 Asset Transformer SDK CHANGES

* 2024.2.0.52 → 2024.3.0.14

#### ➕ ADDED FUNCTIONS

* [scene.getChildrenCount](/asset-transformer-studio/2026.5.0/api/python/scene_functions.md#getchildrencount) *Get the children count of an occurrence*
* [scene.getFirstChild](/asset-transformer-studio/2026.5.0/api/python/scene_functions.md#getfirstchild) *Get the first child of an occurrence*
* [scene.getNextSibling](/asset-transformer-studio/2026.5.0/api/python/scene_functions.md#getnextsibling) *Get the next adjacent child*
* [core.getLicenseError](/asset-transformer-studio/2026.5.0/api/python/core_functions.md#getlicenseerror) *Give the reason of license check failure*
* [view.destroyContext](/asset-transformer-studio/2026.5.0/api/python/view_functions.md#destroycontext) *Destroy the Vulkan instance*
* [algo.hasOverlappingUV](/asset-transformer-studio/2026.5.0/api/python/algo_functions.md#hasoverlappinguv) *Check for UV overlapping*

#### 💡 BEHAVIOR CHANGE

* [scene.hide](/asset-transformer-studio/2026.5.0/api/python/scene_functions.md#hide) *Now accepts a list of occurrences instead of a single occurrence*
* [scene.show](/asset-transformer-studio/2026.5.0/api/python/scene_functions.md#show) *Now accepts a list of occurrences instead of a single occurrence*
* [scene.inverseVisibility](/asset-transformer-studio/2026.5.0/api/python/scene_functions.md#inversevisibility) *Now accepts a list of occurrences instead of a single occurrence*
* [scene.showOnly](/asset-transformer-studio/2026.5.0/api/python/scene_functions.md#showonly) *Now accepts a list of occurrences instead of a single occurrence*

#### ❌ REMOVED FUNCTIONS

* `view.captureNextFrame`
* `core.pushAnalytic`
* `core.isInteractiveMode`
* `core.setInteractiveMode`
* `core.message`
* `core.askYesNo`
* `core.choose`
* `core.askString`

#### 🚀 FEATURES

* CATIA: Added filepath metadata on the occurrences at import
* CreoView: Added new filters `LoadHidden` and `LoadConstructionsAndReferences` at import
* SolidWorks: Added support for `Configurations`, now imported as `Variants`
* Added missing features from CPU Baker to GPU Baker

#### 👾 FIXED

* Revit: fixed missing geometries and broken/missing faces
* DGN: fixed crash when importing 3d curves, precision issues, missing geometries
* GLTF: fixed exported files containing not valid data, crash at export with Draco enabled
* STEP: fixed PMI import crash and memory leaks
* JT: fixed import crash
* PDF: fixed missing PDF export
* Fixed missing transparent material at export with some formats
* Fixed multiple issues with `algo.explodeByMaterials`
* Fixed a crash in `scene.mergePartOccurrences` with vertexWeights attributes on meshes
* Fixed incorrect NormalMap Baking on object without material
* Fixed a crash with `algo.decimateTarget` when parameter processMeshIndependently=True
* Fixed crash in `algo.repairCAD` when CAD loops are not attached to a face
* Fixed a crash when overwriting an existing .pxz file
* Fixed systematic crash with `algo.removeOccludedGeometriesAdvanced`

### Known issues

* Potential frame rate loss on laptops with Dual GPUs
* Incomplete product documentation
* Incomplete API Reference
