Changelog#
The format is based on Keep a Changelog.
[2.36.2]#
Fixed#
Grouped related xform property specs into one layer modification entry in the USD property override menu.
Kept focus-only xform edits from authoring USD overrides and authored related xform specs only with value writes.
[2.36.1]#
Fixed#
Deferred curve editor popup cleanup until after UI event dispatch to prevent crashes when closing with Escape.
[2.36.0]#
Changed#
Routed USD property row indicators, reset, and override deletion through row-owned state and attribute ownership methods.
Added shared USD logical group definitions for gradient and standalone curve row state and ownership.
Made USD logical row pre-open and owned-value-model APIs explicit for curve and gradient editor rows.
Moved USD gradient persistence and edit-session behavior onto property rows and removed the duplicate legacy USD gradient builder.
Moved USD curve primvar persistence and property curve editor sessions into the USD property row model layer.
Removed stale logical-row compatibility method names in favor of row-owned USD property APIs.
Exposed row-item construction for USD gradient editors through
PropertyGroupedKeysModel.from_item.Renamed curve outlet rows to
USDLogicalGroupOutletItem.Shared USD curve and gradient property-editor edit lifecycle through
PropertyGroupedKeysModel.Centralized grouped-key primvar persistence and undo command handling in
PropertyGroupedKeysModel.Inferred grouped-key command logical definitions from payload shape for curve and gradient primvar writes.
Fixed#
Gradient and curve logical rows now evaluate mixed/default/reset state across their companion USD attributes for multi-selected particles.
Skipped redundant gradient writes for equivalent USD array payloads, skipped deleted gradient targets during undo restore, and avoided mixed-state curve rescans for unrelated USD notices.
Centralized USD logical row state, reset, and override deletion for scalar, gradient, and curve edit-group rows.
Aligned curve outlet reset/default and curve undo snapshot semantics with regular USD property rows.
Deferred grouped curve and gradient primvar writes consistently while preventing partial grouped writes when schema attrs are missing.
Kept transform vector fields editable when tabbing to the next channel after resetting a row modification.
[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
BoundsValueexport 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__.pyto 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
USDAttributeItemconsumes 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/USDFloatDragFieldso thatui_metadatabounds defined onUSDAttributeItem(including hard limits) are wired to drag widgets; this affects all float/int USD attributes across all property panels — any attribute withcustomData.rangeorcustomData.limitsin its schema will now have hard-bound clamping applied to typed input
[2.29.0]#
Changed#
REMIX-5117: Consolidated
USDFloatField/USDIntFieldandUSDFloatSliderField/USDIntSliderFieldinto a singleUSDFloatDragField/USDIntDragFieldwith unified bounds handlingREMIX-5117: Simplified OGN builder routing – removed fully-bounded vs. unbounded bifurcation; all float/int OGN attributes now use
USDFloatDragField/USDIntDragFieldREMIX-5117: Removed
USDFloatField,USDIntField(internal-only, replaced byUSDFloatDragField/USDIntDragField)
[2.28.0]#
Added#
UsdColorGradientWidgetRAII subclass with automatic USD listener management on popup open/closePer-curve bounds reading from USD schema
customData.limitsfor curve editorE2E 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
ColorGradientFieldto USD:values/:timesattribute 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
FileTexturePickeraccepting 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_metadatadict parameter toUSDAttributeItemfor passing OGN-sourced UI hints (hard_min, soft_min, hard_max, soft_max, ui_step) to slider and other UI delegatesAdded
has_bounds_dataproperty onUSDAttributeItemto indicate when min/max bounds are available (fromui_metadataor USD attributecustomData)Added
get_min_max_bounds()andget_step_value()public methods onUSDAttributeItemfor reading bounds and step fromui_metadatawith fallback to USD attributecustomDataAdded
USDIntSliderFielditem delegate for bounded integer attributes (mirrorsUSDFloatSliderField)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_TYPESandINT_TYPESinmappingmodule for type checks in field builders
Changed#
USDFloatSliderFieldandUSDIntSliderFieldnow delegate bounds and step resolution toUSDAttributeItemviaget_min_max_bounds()andget_step_value(), instead of reading USDcustomDatadirectlyBounds resolution checks
ui_metadata(hard then soft) first, then falls back to USD attributecustomData.range.min/maxfor 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_valueparameter toUSDAttributeItemfor external default value override
Changed#
Disabled override deletion menu for OmniGraph node attributes
Fixed#
Fixed
is_defaultcheck to handle None attribute valuesFixed override detection to check for authored time samples
[2.21.2]#
Changed#
Configured
inputs:configPathOGN 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
FieldBuildersystemImplemented a USD specific
FieldBuilderRegistryto simplify registeringFieldBuilderforUSDItemAdded
USDFloatSliderFieldwhich 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.0Updated 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_itemstoselected_items_changedImplemented abstract method
ItemModel.get_valueused for serialization in copy/pasteAdded 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_optionsproperty
[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
DefaultFielddelegate
[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_valuefor itemsExpose
utilsmodule
Changed#
centralize the default
build_branch()creation in the delegatefile_texture_pickerdelegate 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.delegatesadd_model_and_delegate()renamed toadd_model()(and it only takes a model as input)remove_model_and_delegate()renamed toremove_model()(and it only takes a model as input)USDAttributeItemtakes the context name as input (not the stage anymore)
Added#
set_display_attr_names()toUSDAttributeItemUSDMetadataListItemto be able to set USD metadata of an attributeUSDAttrListItemto be able to set USD attribute with multiple value choice (like enums)USDDelegateuses some delegates fromomni.flux.property_widget_builder.delegatesUsdListModelBaseValueModelto read and set a metedata of an USD attributeUsdListModelAttrValueModelto read the value of an attribute with multiple value choice (like enums)FileTexturePickerdelegate derived fromomni.flux.property_widget_builder.delegates, to show texture paths of USD attributesComboboxdelegate derived fromomni.flux.property_widget_builder.delegates, to show multiple value choice (like enums) of USD attributes
[1.0.0] - 2022-07-08#
Added#
Init commit.