Changelog#

The format is based on Keep a Changelog.

[2.35.1]#

Added#

  • Added optional USD property delegate callbacks for transferring authored property modifications to another layer.

Fixed#

  • Centered USD property modification menu images vertically.

[2.35.0]#

Added#

  • Added pre-open callbacks for USD curve and gradient editors

Fixed#

  • USD property value models now coalesce refresh notices across active edits, direct writes, relationships, gradient edits, and curve edits

  • Reloaded USD gradient values before opening editor popups after pre-open callbacks

  • Cleared edit-group references when resetting USD attribute items

  • Aligned USD curve editor buttons and gradient fields with standard property field insets

Removed#

  • Removed the public BoundsValue export in favor of shared scalar typing

[2.34.2]#

Fixed#

  • Made hardcoded light and Aperture PBR drag-field bounds explicit so soft ranges and typed clamps stay separate

[2.34.1]#

Fixed#

  • REMIX-4585: Fixed property copy/paste so multichannel transforms and unresolved asset paths (e.g. textures pending ingestion) round-trip to the target prim

[2.34.0]#

Added#

  • Added a shared conditional visibility orchestrator for safe enable-if parsing, binding, and value-model driven row updates

[2.33.2]#

Added#

  • Add missing tests/unit/__init__.py to expose unit test classes for extension test discovery

[2.33.1]#

Fixed#

  • Deferred viewport manipulator and camera property refreshes until release so property panels rebuild once after drag or navigation instead of every frame

[2.33.0]#

Fixed#

  • REMIX-5039: USD property input tooltips now include the field display name and vector channel when applicable

[2.32.1]#

Fixed#

  • Mixed USD value models now keep the last selected attribute as the displayed baseline while still marking differing selections as mixed

[2.32.0]#

Changed#

  • Reworked USD bounds metadata flow around a canonical adapter contract so USDAttributeItem consumes normalized bounds/step from one adapter source provided by particle, logic, generic USD, and materials producers

[2.31.1]#

Fixed#

  • Fixed property panel undo/redo by flushing drag edits on release and purging stale USD listeners so active panels refresh correctly

[2.31.0]#

Fixed#

  • REMIX-5210: Fixed significant viewport FPS drop when dragging float/int sliders in the property panel by throttling USD writes to at most once per application frame during a drag interaction

[2.30.1]#

Changed#

  • Default integer and float field builders now use USDIntDragField/USDFloatDragField so that ui_metadata bounds defined on USDAttributeItem (including hard limits) are wired to drag widgets; this affects all float/int USD attributes across all property panels — any attribute with customData.range or customData.limits in its schema will now have hard-bound clamping applied to typed input

[2.29.0]#

Changed#

  • REMIX-5117: Consolidated USDFloatField/USDIntField and USDFloatSliderField/USDIntSliderField into a single USDFloatDragField/USDIntDragField with unified bounds handling

  • REMIX-5117: Simplified OGN builder routing – removed fully-bounded vs. unbounded bifurcation; all float/int OGN attributes now use USDFloatDragField/USDIntDragField

  • REMIX-5117: Removed USDFloatField, USDIntField (internal-only, replaced by USDFloatDragField/USDIntDragField)

[2.28.0]#

Added#

  • UsdColorGradientWidget RAII subclass with automatic USD listener management on popup open/close

  • Per-curve bounds reading from USD schema customData.limits for curve editor

  • E2E tests for gradient command undo/redo with simulated UI interactions

  • Curve editor field builders now read per-attribute time and value bounds from USD schema

Fixed#

  • Gradient undo now produces a single undo entry per drag instead of duplicates

[2.27.0]#

Added#

  • Added color gradient field builder that wires ColorGradientField to USD :values/:times attribute pairs with undo grouping

[2.26.1]#

Changed#

  • Renamed override context menu labels from “Delete” to “Revert” for clearer user intent

[2.26.0]#

Changed#

  • REMIX-1088: Default float and int field builders now use ui.FloatDrag / ui.IntDrag, enabling drag-to-scrub on all numeric property fields including transforms

[2.25.0]#

Fixed#

  • REMIX-3411: Fixed FileTexturePicker accepting files with unsupported extensions; unsupported selections now show a prompt dialog listing valid texture formats

[2.24.1]#

Changed#

  • Applied new lint rules

[2.24.0]#

Added#

  • REMIX-5012: USD float/int field delegates for attributes with partial bounds (only min or only max)

Changed#

  • REMIX-5012: Bounds resolution now supports partial and hard bounds, routing fully-bounded attributes to sliders and partially-bounded attributes to input fields

[2.23.0]#

Added#

  • Added ui_metadata dict parameter to USDAttributeItem for passing OGN-sourced UI hints (hard_min, soft_min, hard_max, soft_max, ui_step) to slider and other UI delegates

  • Added has_bounds_data property on USDAttributeItem to indicate when min/max bounds are available (from ui_metadata or USD attribute customData)

  • Added get_min_max_bounds() and get_step_value() public methods on USDAttributeItem for reading bounds and step from ui_metadata with fallback to USD attribute customData

  • Added USDIntSliderField item delegate for bounded integer attributes (mirrors USDFloatSliderField)

  • Added OGN field builders for bounded float and bounded int attributes: OGN node attributes with min/max metadata now get float or int slider widgets automatically

  • Exposed FLOAT_TYPES and INT_TYPES in mapping module for type checks in field builders

Changed#

  • USDFloatSliderField and USDIntSliderField now delegate bounds and step resolution to USDAttributeItem via get_min_max_bounds() and get_step_value(), instead of reading USD customData directly

  • Bounds resolution checks ui_metadata (hard then soft) first, then falls back to USD attribute customData.range.min/max for backward compatibility

[2.22.3]#

Changed#

  • Modernize python style and enable more ruff checks

[2.22.2]#

Changed#

  • Switched to ruff for linting and formatting

[2.22.1]#

Fixed#

  • Fixed virtual attribute default values being overwritten during initialization

[2.22.0]#

Added#

  • Added default_value parameter to USDAttributeItem for external default value override

Changed#

  • Disabled override deletion menu for OmniGraph node attributes

Fixed#

  • Fixed is_default check to handle None attribute values

  • Fixed override detection to check for authored time samples

[2.21.2]#

Changed#

  • Configured inputs:configPath OGN field builder to use relative paths

[2.21.1]#

Changed#

  • Code formatting improvements

[2.21.0]#

Added#

  • Added USD relationship support with USDRelationshipItem and UsdRelationshipValueModel classes

  • Added utils for relationship detection and access (is_property_relationship, get_item_relationships)

[2.20.0]#

Added#

  • Added OGN field builders for OmniGraph node property widgets

Changed#

  • Improved type handling for value type names throughout property widget models

[2.19.5]#

Changed#

  • Use Flux Pip Archive instead of Kit Pip Archive

[2.19.4]#

Fixed#

  • REMIX-4288: Adding a check for uncaught TypeError when converting values to property panel attributes.

[2.19.3]#

Fixed#

  • REMIX-4246: Preventing vector property widgets trying to convert values to python native types like float and resetting the property to the default value by calling the correct method.

[2.19.2]#

Fixed#

  • REMIX-4253: Fixed crash when previewing normal maps (or any non-RGBA textures)

[2.19.1]#

Fixed#

  • Fixed Test assets too large to work without LFS

[2.19.0]#

Changed#

  • Update the documentation for Pydantic V2 compatibility

[2.18.1]#

Fixed#

  • Changed to using a ImageWithProvider to better display single channel textures

[2.18.0]#

Added#

  • Added the ability to left-align property names

[2.17.1]#

Fixed#

  • Virtual attr should display default until they are set

[2.17.0]#

Added#

  • Add support for non-xform stub attributes

  • Added slider widget for material attribute subsurface_radius_scale

[2.16.0]#

Changed#

  • Update to Kit 106.5

  • property widget tree: support virtual attribute items

  • simplified and refactored property tree items and value models

[2.15.0]#

Added#

  • Added slider widget for material attribute displace_out

[2.14.0]#

Added#

  • Added support for multi-edit and displaying “mixed” values

Changed#

  • Refactored value model classes to clarify and share more code

[2.13.1]#

Fixed#

  • Fixed material property builder string field tooltip and copy menus

[2.13.0]#

Added#

  • Added identifier for UI elements

[2.12.0]#

Changed#

  • Use centralized LayerTree widget

[2.11.7] - 2024-07-12#

Added#

  • Full file path hover tooltip for material string field properties

  • Copy file path menu for material string field properties

Fixed#

  • Now the fallback texture preview window title doesn’t break when there are multiple assets selected

[2.11.6] - 2024-06-26#

Fixed#

  • Texture preview windows sharing the same UI instance

[2.11.5]#

Fixed#

  • Fixed issue resetting color widget to default value

[2.11.4]#

Changed#

  • Updated default values for material attribute displace_in

[2.11.3]#

Changed#

  • Use updated SUPPORTED_TEXTURE_EXTENSIONS

[2.11.2]#

Changed#

  • Update deps

[2.11.1] - 2024-04-12#

Fixed#

  • Fix property editor crash for unknowns widget builders

[2.11.0] - 2024-04-02#

Added#

  • Rework how all the per-item UI building works with new FieldBuilder system

  • Implemented a USD specific FieldBuilderRegistry to simplify registering FieldBuilder for USDItem

  • Added USDFloatSliderField which can adjust min/max range of slider using USD metadata

Changed#

  • Updated Field widget builder objects to adopt updates from omni.flux.property_widget_builder.delegates-1.3.0

  • Updated many float attributes to use sliders

[2.10.5]#

Changed#

  • Set Apache 2 license headers

[2.10.4] - 2024-03-25#

Changed#

  • Update color types to use a single value model to hold the Gf.Vec* value

  • Add clipboard serializer for Gf.Vec* types

[2.10.3] - 2024-02-21#

Fixed#

  • Reverted a change which made file texture widgets update before editing was complete

[2.10.2] - 2024-02-09#

Changed#

  • Renamed Delegate set_selected_items to selected_items_changed

  • Implemented abstract method ItemModel.get_value used for serialization in copy/paste

  • Added serializer hooks to handle serialization of Sdf.AssetPath

[2.10.1] - 2024-01-19#

Changed#

  • Keep widget focus when editing a value

  • Modify how “virtual” attributes are presented

[2.10.0] - 2024-01-13#

Changed#

  • Allow setting asset path items’ file_extension_options property

[2.9.3] - 2023-12-01#

Fixed#

  • Fixed a bug when previewing single channel textures

[2.9.2] - 2023-11-15#

Fixed#

  • “reset_default_value” should always set a value and ignore block_set_value

[2.9.1] - 2023-11-14#

Fixed#

  • Fix undo that was still “open” when the delegate was refreshing

[2.9.0] - 2023-10-26#

Added#

  • Added display_attr_names_tooltip

[2.8.0] - 2023-10-05#

Changed#

  • Use renamed DefaultField delegate

[2.7.0] - 2023-09-05#

Changed#

  • Don’t allow deleting overrides on locked layers

[2.6.2] - 2023-08-02#

Fixed#

  • Optimization

[2.6.1] - 2023-07-24#

Fixed#

  • Check for a valid stage before using it

[2.6.0] - 2023-06-01#

Added#

  • Pre and post callback during set_value for items

  • Expose utils module

Changed#

  • centralize the default build_branch() creation in the delegate

  • file_texture_picker delegate set the texture only at the end of the field edit

[2.5.2] - 2023-05-10#

Fixed#

  • Fix for 105

[2.5.1] - 2023-05-02#

Changed#

  • Close button on the texture preview window

[2.5.0] - 2023-03-13#

Changed#

  • The property tree will only update the delegates after the values stop changing for 0.25s. This greatly reduces the number of UI update calls and makes the UI a lot smoother.

Fixed#

  • Fixed nullref exception on destroy

[2.4.2] - 2023-03-10#

Fixed#

  • Fixed xform attribute undo grouping

  • Fixed xform attribute refreshing when ending edit with default value

[2.4.1] - 2023-01-13#

Fixed#

  • Fixed material target layer for undo (new SDK)

[2.4.0] - 2022-12-05#

Added#

  • Added the ability for Virtual Attributes to be created

[2.3.5] - 2023-01-10#

Fixed#

  • Remove fixed material target layer for undo (because Kit team said it was merged, but it wasn’t)

[2.3.4] - 2023-01-09#

Fixed#

  • Fixed material target layer for undo

[2.3.3] - 2022-11-28#

Changed#

  • Added a callback for layer events in the base widget

[2.3.2] - 2022-11-22#

Fixed#

  • Fix the default value for scale

[2.3.1] - 2022-11-04#

Fixed#

  • Fix empty paths for textures

[2.3.0] - 2022-11-02#

Changed#

  • Added layer override indicators

[2.2.1] - 2022-11-02#

Fixed#

  • Added missing extension dependency

[2.2.0] - 2022-10-28#

Fixed#

  • Hierarchy attribute items didn’t call supress_usd_events_during_widget_edit

[2.1.0] - 2022-10-07#

Changed#

  • Improved texture picker delegate to preview the images + show file attributes

[2.0.0] - 2022-09-19#

Changed#

  • Use context name

  • Use omni.flux.property_widget_builder.delegates

  • add_model_and_delegate() renamed to add_model() (and it only takes a model as input)

  • remove_model_and_delegate() renamed to remove_model() (and it only takes a model as input)

  • USDAttributeItem takes the context name as input (not the stage anymore)

Added#

  • set_display_attr_names() to USDAttributeItem

  • USDMetadataListItem to be able to set USD metadata of an attribute

  • USDAttrListItem to be able to set USD attribute with multiple value choice (like enums)

  • USDDelegate uses some delegates from omni.flux.property_widget_builder.delegates

  • UsdListModelBaseValueModel to read and set a metedata of an USD attribute

  • UsdListModelAttrValueModel to read the value of an attribute with multiple value choice (like enums)

  • FileTexturePicker delegate derived from omni.flux.property_widget_builder.delegates, to show texture paths of USD attributes

  • Combobox delegate derived from omni.flux.property_widget_builder.delegates, to show multiple value choice (like enums) of USD attributes

[1.0.0] - 2022-07-08#

Added#

  • Init commit.