Reference/Release Notes/3.5/Python API
Python API & Text Editor
- The users site-packages are now available by default without having to use
- The active catalog of Asset Browsers can be changed via
bpy.types.FileAssetSelectParams.catalog_id, it's no longer read-only. (rB80249ce6)
- Custom node tree now have a default name set to
object.modifiers.move()method for reordering modifiers without using operators. (rBf7dd7d54)
- The active and default (for render) color attributes are now stored as strings, making it easier to change them and access the correct attributes (rB6514bb05).
Internal Mesh Format
The mesh data structure refactoring from earlier releases has continued in 3.5.
- Mesh vertex positions are now accessible via the builtin
- UV layers are now stored as generic attributes (rB6c774feb)
- The sharp edge property is now stored as a generic attribute (rBdd9e1ede).
- TODO: Expand on naming, performance tradeoffs, 4.0 deprecation, etc.
Loose edge status is stored differently internally now (rB1ea169d9).
MeshEdge.is_looseproperty is no longer editable.
- Loose edge status can be recalculated with
Grease Pencil Auto-masking moved to Global setting.
Motion tracking optical center
The internal storage of the optical center (principal point) has been changed in 7dea18b3aa to a normalized space.
The normalized space refers to coordinate
(0, 0) corresponding to the frame center,
(-1, -1) the left bottom frame corner,
(1, 1) is the top right frame corner. This notation is available via
For some algorithms it is convenient to operate in the pixel space. For those usecases the new
clip.tracking.camera.principal_point_pixels property has been added.
clip.tracking.camera.principal has been removed to avoid ambiguous naming in the API.
Inverted the meaning of the armature modifier vertex group in some cases
Fixed an old bug where the effect of the Invert Vertex Group toggle of the Armature modifier was inverted when Multi-Modifier was active. (rBea1c31a2)
Scripts creating complex armature modifier setups need updating to check the exact blender version:
modifier.use_multi_modifier = True if bpy.app.version_file < (3, 5, 8): # Blender bug T103074 modifier.invert_vertex_group = True
Python bindings for the following libraries are now bundled with Blender, and available to use by add-ons.