Blender 5.3 is UNFAIR - Blender Today #288
Blender Today #288
Announcements
What's new in Blender?
August 04-25, 2026, at 12:00 Amsterdam CEST+0200 515 commits in total, of which 215 are fixes, 70 cleanup, and 52 refactors.
Animation
- 🔸 Anim: use camera lens parameters in Fix to Camera operator - Sybren A. Stüvel
- 🔸 Anim: Rigify add max=32 to shared B-Bone Segments parameter - Antônio Froz
- 🔸 Anim: Optional wrapping for timeline navigation - Cyloci
- 🔸 Anim: Add missing default values - Wayne Dixon
- 🔸 Anim: Dynamically determine motion path update range - Christoph Lendenfeld
- 🔸 Anim: Make more used of FCurve pre-parsed RNA path - Hans Goudey
Assets
- 🔸 Asset Library: Authentication token support - Dalai Felinto
- 🔸 Assets: Hide "Unassigned" catalog when showing Essentials library - Julian Eisel
- Asset Library: Support Auth Tokens upon creation - Dalai Felinto
- 🔸 Assets: Add Webpage meta-data field - Guillermo Venegas
Audio
- Audaspace: port ffmpeg 9 support from upstream. - Jörg Müller
Build
- extern: update wcwidth combining character table to Unicode 17.0 - Campbell Barton
- Build: Fix build when using WITH_CYCLES_OSL=OFF - Jesse Yurkovich
- Build: Fix use of non-standard __has_feature test macro - Jesse Yurkovich
- Buildbot: Use CUDA 12.9.1 instead of 12.8.0 - Bart van der Braak
- Deps: Update LZMA / XZ license info - Thomas Dinges
- Deps: Update copyright info for ffmpeg and fribidi - Thomas Dinges
- Release: Regenerate license.md - Thomas Dinges
- Build: macOS: Use O3 optimization flag instead of O2 for Release builds - Jonas Holzman
- CMake: Replace deprecated usage of TestBigEndian by CMAKE_CXX_BYTE_ORDER - Jonas Holzman
- CMake: Remove build_files/cmake/platform from global CMAKE_MODULE_PATH - Jonas Holzman
- CMake: include missing headers - Campbell Barton
Camera
- 🔸 Camera: Unify render border handling across engines - Brecht Van Lommel
- 🔸 Camera: Clip unused parts of rotated render border with camera roll - Brecht Van Lommel
Cleanup
- Cleanup: Formating - Sebastian Herholz
- make format - Bastien Montagne
- Cleanup: Fix typo in GHOST function name - Hans Goudey
- Cleanup: Warning from USD macro using deprecated atomic shared ptr - Brecht Van Lommel
- Cleanup: Make legacy add-on support property static - Damien Picard
- Cleanup: Geometry Nodes: Tweak image texture node - Hans Goudey
- Cleanup: remove unused compiler attribute - Jacques Lucke
- Cleanup: Update docstring comment for imbuf dimensions - Sean Kim
-
Cleanup: VSE: Use
seq::Sideenum class - il4n -
Cleanup: Various non-functional changes for
paint_intern.hh- Sean Kim -
Cleanup: Move
ED_paint_cursor_starttoED_paint.hh- Sean Kim - Cleanup: Fix compilation warnings - Jeroen Bakker
-
Cleanup: Rename
mesh_stroke_common.hh/.cc- Sean Kim - Cleanup: Icons: remove color id in status_warning - Pablo Vazquez
- Cleanup: PointCache: Use different source of truth for data size print - Hans Goudey
- Cleanup: Use Array for explode modifier cache - Hans Goudey
- Cleanup: resolve unused pymeth_RemoveProperty warning - Campbell Barton
-
Cleanup: Make BLO filename and
do_versionsmatchshortnumbering - Sean Kim - Cleanup: Remove dead texpaint code - Sean Kim
- Cleanup: Remove depsgraph tag of 0 for mesh color functions - Sean Kim
- Cleanup: pass const RenderData to functions which only read it - Campbell Barton
- Cleanup: VSE: Remove class and function names from bpy error messages - il4n
- Cleanup: BLI: extract forward declaration header for dot export - Jacques Lucke
- Cleanup: Geometry Nodes: extract utility to create variable socket names - Jacques Lucke
- Cleanup: VSE: Rename/reorganize some multiview functions - John Kiril Swenson
- Cleanup: missing-declarations warning - Campbell Barton
- Cleanup: enable WITH_INSTALL_PORTABLE for CMake on macOS & WIN32 - Campbell Barton
- Cleanup: remove unused variable - Sybren A. Stüvel
- Cleanup: Tests: use anonymous namespaces to fix duplicate symbols - Jacques Lucke
- Cleanup: Outliner: Remove dead freestyle/linestyle code - Julian Eisel
- Cleanup: Compiler warning, unused parameter - Sergey Sharybin
- Cleanup: Cycles: Simplify float3x3 and Transform on Metal - Sergey Sharybin
- Cleanup: Ghost: use function instead of macro for ARRAY_SIZE - Jacques Lucke
- Cleanup: Cycles: Redundant point_intersect() in Metal-RT - Sergey Sharybin
-
Cleanup: XR: Remove unused Python
platformimport in VR Info panel - Jonas Holzman -
Cleanup: WM: Use
titlebar_context_theme_setto obtain initial window background color - Jonas Holzman - Cleanup: avoid duplicate BezierCurve type name - Jacques Lucke
- Cleanup: prevent potential compile issue due to duplicate namespace name - Jacques Lucke
- Cleanup: avoid potential error due to conflicting Image type definitions - Jacques Lucke
- Cleanup: remove unused UniformBuffer forward declaration - Jacques Lucke
- Cleanup: avoid duplicate CurveRuntimeProperties type - Jacques Lucke
- Cleanup: avoid possible ambiguity between two Strip types - Jacques Lucke
- Cleanup: fix potential compile error when including ED_geometry.hh - Jacques Lucke
- Cleanup: fix potential compile error when including ED_geometry.hh - Jacques Lucke
- Cleanup: Remove unused variables from filter & expand cache - Sean Kim
- Cleanup: Use recently added StripData array size value - Hans Goudey
- Cleanup: duplicate StrokeType enum - Jacques Lucke
- Cleanup: fix potential compilation issue with ED_geometry.hh - Jacques Lucke
- Cleanup: move BM_iter_parallel so that BLI_task_c.hh can use normal pragma once - Jacques Lucke
- Cleanup: duplicate MeshTests type - Jacques Lucke
- Cleanup: avoid duplicate definitions of property name constant - Jacques Lucke
- Cleanup: Formatting: Remove extraneous space in CMake if() condition - Jonas Holzman
- Cleanup: Compilation warnings - Jeroen Bakker
- Cleanup: Add missing nullptr check to before accessing id - Martijn Versteegh
- Cleanup: Anim: Add runtime struct for bPose - Hans Goudey
- Cleanup: Use C++ types for bPose runtime data structures - Hans Goudey
- Cleanup: typo in RNA function name FileSelectPrams >> FileSelectParams - Philipp Oeser
- Cleanup: remove bpy.ops.file.refresh() call - Campbell Barton
- Cleanup: more explicit namespace to avoid conflicts with other include - Jacques Lucke
- Cleanup: install glTF add-on libraries beside their dependencies - Campbell Barton
- Cleanup: Remove invalid CustomData versioning check with MEM_allocN_len - Hans Goudey
- Cleanup: Multires: Use face mask when switching faces - Hans Goudey
- Cleanup: GHOST: Misc formatting changes - Jonas Holzman
- Cleanup: BLI: Remove MEM_allocN_len array store testing check - Hans Goudey
- Cleanup: various non-functional changes for C++ - Campbell Barton
- Cleanup: spelling in comments and strings (make check_spelling_*) - Campbell Barton
- Cleanup: sort CMake file lists - Campbell Barton
- Cleanup: wrap long lines in CMake files - Campbell Barton
- Cleanup: EEVEE: clarify coat tinting lower layers in Principled BSDF - Weizhen Huang
- Cleanup: EEVEE: make principled BSDF weight float3 - Weizhen Huang
Color Management
- 🔸 Color Management: Write ICC profile for sRGB images - Brecht Van Lommel
- 🔸 Color Management: Improve display color interop IDs - Brecht Van Lommel
Compositor
- 🔸 Compositor: Layered Compositor - Omar Emara
- 🔸 Compositor: Port Is Viewport node - Criss-Ivana
- 🔸 Compositor: Add support for Bundles - Omar Emara
- Compositor: Add shortcuts for manipulating effects stack - Omar Emara
- Compositor: Draw warnings in scene compositor effect - Omar Emara
- 🔸 Compositor: Port Import Text node - Criss-Ivana
- 🔸 Compositor: Port Bone Info node - Criss-Ivana
- Compositor: Track parent of SceneCompositorEffect.properties - Omar Emara
Core
- 🔸 BLI: Delaunay triangulation: Optimize computation for original IDs - Howard Trickey
- Core: Add more early return in invalid case in liblinking part of blendfile reading. - Bastien Montagne
- Core: Do not consider embedded IDs as overridable. - Bastien Montagne
- Core: Fix invalid packed IDs handling on read. - Bastien Montagne
- Core: Link/append: Move (in)direct status check after instantiation. - Bastien Montagne
- BLI: Add threading utility to limit the number of threads - Brecht Van Lommel
- 🔸 BLI: Optimize indices grouping with parallel counting sort - Brecht Van Lommel
- BLI: More reverse_indices_in_groups, build_groups_from_indices variations - Hans Goudey
- RNA: Add path type with UString for string path parsing result - Jacques Lucke
- RNA: Use UString for identifier storage - Hans Goudey
- 🔸 Core: support for mixing global undo with other undo systems - Campbell Barton
- Core: simplify PointerRNA null states - Jacques Lucke
- Core: Add schema version to Blender Project config - Nathan Vegdahl
- RNA: Avoid some UString construction when resolving RNA paths - Hans Goudey
- BLI: Set SIMD flush denormals to zero state for all threads - Hans Goudey
- BLI: integrate with hash_value function to avoid custom template specializations - Jacques Lucke
- RNA: set never-null for UILayout sub-layout returns - Campbell Barton
- RNA: set never-null for ID returns - Campbell Barton
- RNA: set never-null for Object.to_curve & Object.shape_key_add - Campbell Barton
- RNA: set never-null for bpy.data collection returns - Campbell Barton
- RNA: set never-null for animation & annotation returns - Campbell Barton
- RNA: set never-null for object & geometry data returns - Campbell Barton
- RNA: set never-null for scene, sequencer & node returns - Campbell Barton
- RNA: set never-null for window-manager & preferences returns - Campbell Barton
- 🔸 Core: Project Variables - Nathan Vegdahl
Cycles
- Cycles: Bump version to 5.3.0 - Brecht Van Lommel
- Cycles: Making Cycles work with older NanoVDB versions - Christopher Hosken
- Cycles: Making Cycles build against a older OIIO and OpenColorIO versions - Sebastian Herholz
- Cycles: Fix Windows guarded_allocator error in debug build - Christos Pappas
- Cycles: Refactor: Use enum for OptiX hit kind - Sergey Sharybin
- Cycles: Bump minimum driver version in UI from 570 to 575 - Brecht Van Lommel
- Cycles: Implement float3x3 type - Sergey Sharybin
- Cycles: Use metal::float3x3 for implementation - Sergey Sharybin
- 🔸 Cycles: Add dispersion to Principled BSDF - Weizhen Huang
- Cycles: Fix orthographic camera viewport motion vectors - Christoph Neuhauser
Docs
EEVEE
- 🔸 EEVEE: Add render time limit option - Christoph Neuhauser
- EEVEE: Fix time limit segfault and GCC warning - Christoph Neuhauser
- EEVEE: Shader: Improve error line for generated resources - Clément Foucault
Fixes
- Fix: Core: ammend asserts on linked status of unlinkable ID types. - Bastien Montagne
- Fix #129533: EEVEE: Dither film accumulation to avoid shadow banding - Le Gia Bao
- Fix: Empty bone name could still crash Blender on file load - Christoph Lendenfeld
- Fix: GPU context ID generation race condition - Miguel Pozo
- Fix: Draw: Disable handle ranges optimizations for Grease Pencil - Miguel Pozo
- Fix: BLI: improve correctness of value_is_zero check - Jacques Lucke
- Fix: UI: Multi-line labels displace other elements in split layouts - Guillermo Venegas
- Fix: GPU: Texture Views regressions and missing cases - Miguel Pozo
- Fix #160064: Assert in Grease Pencil "Stroke Simplify" - Hans Goudey
- Fix #162043: Preserve aligned handles for coincident points - Tibo Stans
- Fix #161602: Avoid early gas fluid reallocation - Tibo Stans
- Fix #161987: Avoid compositor modifier UI crash with one input - Tibo Stans
- Fix #161933: Remove Attribute node Grease Pencil support - Hans Goudey
- Fix #162159: Point Cloud Geometry Proximity incorrectly deduplicated - Hans Goudey
- Fix #162036: zero-width spacing glyphs treated as combining characters - Campbell Barton
- Fix #157619: Unable to Pack newly generated image - shokuyansh
- Fix #162328: Shape key crash with pose markers - Pratik Borhade
- Fix: Core: ID created in libraries not properly tagged. - Bastien Montagne
- Fix: Readfile: issues with linked status, and external packed data. - Bastien Montagne
- Fix: Core: Add way to force-fix/ensure link status of IDs. - Bastien Montagne
- Fix: Collection Import: Incomplete 'make linked' on imported data. - Bastien Montagne
- Fix: 'all ids' new iterator was using the wrong IDtypes order. - Bastien Montagne
- Fix: Cycles disabled TBB usages for NanoVDB - Sebastian Herholz
- Fix: UI: Clipped text when using button function with embossed button - Julian Eisel
- Fix: UI: Multiline labels don't respect red-alert - Julian Eisel
- Fix: VSE text strips interfering with burned in stamp data - Sebastian Parborg
- Fix: Sequencer: Attempt to workaround UI test failures with Sequencer - Julian Eisel
- Fix #161044: Crash dragging and dropping assets in compositor while playing animation - Guillermo Venegas
- Fix #161234: Cycles caustics blurred out after ray differential widening - Brecht Van Lommel
- Fix #161898: Color management memory leak with curves enabled - Brecht Van Lommel
- Fix #162183: Cycles texture cache broken for textures larger than 2^31 px - Brecht Van Lommel
- Fix #162097: Crash when displaying loose edges after Sculpt hide - Sean Kim
- Fix #162376: Link modifiers operators disabled for empty objects - Noah Ivarsson
- Fix #87494: Cycles named attribute not found when matching a standard name - Brecht Van Lommel
- Fix #161953: Avoid copying edit mesh wrapper for shape keys - Tibo Stans
- Fix #161905: External Multires data cleared when exiting Edit Mode - Sean Kim
- Fix: Remove threaded mutable access to ImBuf data pointers - Hans Goudey
- Fix #162075: Domain size node crash with empty component - Tibo Stans
- Fix #162305: Multires unsubdivide regression restoring multi-res data - Campbell Barton
- Fix #162395: Multires unsubdivide hangs with non-manifold vertex - Campbell Barton
- Fix: Multi-function procedure operation references freed data - Omar Emara
- Fix: Actually enable link test for io_collection. - Bastien Montagne
-
Fix: Core: Also run
BKE_main_id_indirect_linked_updateafter linking. - Bastien Montagne - Fix #162101: Geometry Nodes: missing relationship update after changing input from Python API - Jacques Lucke
- Fix: Avoid crash with incomplete Viewer path - Tibo Stans
- Fix #161887: Socket menu missing in N-panel for some nodes - Starz099
- Fix: Vulkan synchronization issue VkTexturePool - Jeroen Bakker
- Fix: EEVEE: Clamp surface check - Miguel Pozo
- Fix: Vulkan: BLAS sync correctness - Miguel Pozo
- Fix: blendfile/linking related tests after recent changes. - Bastien Montagne
-
Fix: Sculpt UI
primitive_tool_addtest broken after recent change - Sean Kim - Fix #162023: Socket View operator allow viewing virtual sockets - Omar Emara
- Fix #161665: UV sync select face mode mismatch - Campbell Barton
- Fix #162350: Correct documentation type-hints for pointer type returns - robberyman
- Fix #162370: Wrong translation context for the Project menu - Damien Picard
- Fix: Cycles: GPU alignment issue reading pixel jitter offset - Brecht Van Lommel
- Fix: Cycles: Mistakes in backwards compatibility for OpenColorIO 2.2 - Brecht Van Lommel
- Fix: Cycles: Potential missing update for specular motion pass - Brecht Van Lommel
- Fix: Cycles: Adaptive linear subdivision potential issue with corner normals - Brecht Van Lommel
- Fix: Cycles: Conservative bake rasterization inconsistent epsilons - Brecht Van Lommel
- Fix: Freestyle: Inconsistent FEdge/Stroke constructor error message - Brecht Van Lommel
- Fix: UI: Node panel fully grayed out by node buttons at root level - Brecht Van Lommel
- Fix: Render: Final render from Python renders stale sculpt geometry - Brecht Van Lommel
- Fix #161039: UI: Use theme for navigation gizmo group - Pratik Borhade
- Fix: Ensure brush automasking settings are properly initialized - Sean Kim
- Fix: Incorrect versioning number for recent change - Sean Kim
- Fix #160264: Projected falloff causes weird rake rotation for cube tips - Jerry Wei
- Fix: Bokeh Blur assumes kernel input is always an image - Omar Emara
- Fix: Vector Blur assumes inputs are always an image - Omar Emara
-
Fix: Undoing across mode boundaries can leave invalid
SculptSession- Sean Kim - Fix: Incorrect mask size calculation in #view2d_scale_get_inverse - il4n
- Fix: VSE: Prevent content trim start/end from ability to create 0-length strips - John Kiril Swenson
- Fix: JPEG 2000 out of bounds read with subsampled images - Aras Pranckevicius
- Fix: avoid 'Unsupported channel type (0)' error in Dope Sheet - Sybren A. Stüvel
- Fix: VSE: Hold strip background rendering when using strip thumbnails - Falk David
- Fix #161785: Multires modifier toggle deletes sculpt deformation - Hans Goudey
- Fix: conflict between two recent commits - Jacques Lucke
- Fix #161564: Node tools: Mesh edit mode crash with active attribute - Leon Zandman
- Fix #161355: Clicking material type socket from Geometry Nodes crashes - Julian Eisel
- Fix: A few issues with skin modifier data generic attributes - Hans Goudey
- Fix #162377: GPU: Clear all OpenGL texture mipmap levels - Christoph Neuhauser
- Fix #162541: Node group assets not placed under cursor - Falk David
- Fix: Render: Pause issue with quad view and blocking renders - Brecht Van Lommel
- Fix: VSE: Locked state was not considered in snapping and retiming transform - John Kiril Swenson
- Fix: mixing decorator/non-decorator buttons flicker on drag toggle - Campbell Barton
- Fix #162316: Grease Pencil: Transfer defgroup names when pasting - YimingWu
- Fix #162409: Make all fcurve 'slider' based operators behave the same using continuous grab - Martijn Versteegh
- Fix: Geometry Nodes: missing dependency relation to empty with modifier - Jacques Lucke
- Fix: Set the DNA default for attributes_active_index to -1 - Martijn Versteegh
- Fix: UI: Multi-line labels vertical padding is not properly scaled - Guillermo Venegas
- Fix: VSE: Make input validation translatable - il4n
- Fix: Reassign Inputs works with incorrect input count - il4n
- Fix: drag-toggle for tree-view expand/collapse icons - Campbell Barton
- Fix #162259: Outliner "Instance to Scene" ignores empty size preference - Rainer Trummer
- Fix crash with asset authentication token - Dalai Felinto
- Fix #162523: GPU: Add mipmap workaround for Intel Arc Windows OpenGL - Christoph Neuhauser
- Fix: missing sycl8.dll when compiling without Cycles on Windows - youle31
- Fix: VSE: Stereoscopy rendering in VSE preview is broken - John Kiril Swenson
- Fix: VSE: Images show multi-view even when "Use Multi-View" is unset - John Kiril Swenson
- Fix: VSE: Cache was not cleared when updating Stereo 3D mode - John Kiril Swenson
- Fix: VSE: Can't snap to locked strips that are selected - John Kiril Swenson
- Fix #162498: Modal operator with MODAL_PRIORITY crashes color picker - Starz099
- Fix #126358: SSL authentication failure on MS-Windows - Campbell Barton
- Fix: Nodes: NodeTreeInterface does not guard against root panel - quackarooni
- Fix: BKE_image_walk_all_users static cast bugs - Sybren A. Stüvel
- Fix #154170: Improve EEVEE error message when image fails to load - Raimund58
- Fix: bad pointer cast in rna_Node_view_layer_itemf() - Sybren A. Stüvel
- Fix #160125: Texture size limit does not work correctly - Richard Antalik
- Fix #161631: Sculpt Mode gesture tools do not respect the Clip Border region - Yaakoub Khoudrouf
- Fix: BLI: duplicate StackChunk identifier - Jacques Lucke
- Fix: Nodes: Format String node doesn't handle unescaped closing brace correctly - Jacques Lucke
- Fix: VSE retiming keys on locked strips limit movement of other keys - John Kiril Swenson
- Fix #162724: Assert when selecting the Scripting Workspace - Pratik Borhade
- Fix #162667: VSE GPU compositor crash when strip with compositor modifier uses strip with compositor modifier as a mask - Aras Pranckevicius
- Fix: Nodes: Wrong results for Compare node in drag and drop search menu - Iliya Katushenock
- Fix: VSE: Retiming movement jumps back and forth for different FPS media - John Kiril Swenson
- Fix: VSE: Use-after-free when realizing fake retiming keys - John Kiril Swenson
- Fix: VSE: Retiming could not be toggled back and forth more than once - John Kiril Swenson
- Fix: VSE: Force drawing of keys after they are newly added - John Kiril Swenson
- Fix #162728: EEVEE: division by zero for coat at grazing angles - Weizhen Huang
- Fix #162629: VSE image strip custom length ignored when Move Strips is enabled - Starz099
- Fix: Images: Make compressed GPU textures writable when painting - Brecht Van Lommel
- Fix: Metal vertex buffer read writes past the end of the destination - Brecht Van Lommel
- Fix: Mistake in recent RNA property access commit - Hans Goudey
- Fix #161422: Images opened in Geometry nodes Texture node converted to float format - shokuyansh
- Fix: Remove invalid MEM_allocN_len from CustomData debug info - Hans Goudey
-
Fix: Missing RNA path for
MeshAutomaskingSettings- Sean Kim -
Fix: Incorrect
index_offunction called for multires UV draw - Sean Kim - Fix #162667: VSE GPU compositor crash when strip with compositor modifier uses strip with compositor modifier as a mask - Aras Pranckevicius
- Fix: FBX: Handle the CastShadow[s] property correctly - Jesse Yurkovich
- Fix: Outliner: Enable Expand on Focus for new areas - Pratik Borhade
- Fix: GPU: Mixups with compressed sRGB textures in recent changes - Brecht Van Lommel
- Fix: Missing redraw when clearing compositor effects - Omar Emara
- Fix #162716: Custom normals lost with motion blur from velocity attribute - Brecht Van Lommel
- Fix: VSE modifier duplicate operator uses active modifier - Omar Emara
- Fix: Compositor effect properties not animateable - Omar Emara
- Fix: Typo in compositor duplicate operator macro - Omar Emara
- Fix: Missing user count decrement in compositor_effects.clear() - Omar Emara
- Fix: Compositor effect loses values if node group is missing - Omar Emara
- Fix: Bokeh node asserts for single value bokeh kernel - Omar Emara
- Fix #162582: Cycles crash vith small render on multiple devices - Brecht Van Lommel
- Fix: Potential crash when calling BKE_paint_use_unified methods - Sean Kim
- Fix: Incorrect versioning in recent commit - Sean Kim
-
Fix: Newly created brushes have
BRUSH_USE_UNIFIED_PAINT_WEIGHTenabled - Sean Kim - Fix: Combine Bundle node realizes inputs on operation domain - Omar Emara
- Fix: Outliner: Don't affect collection in hide unselected operator - Pratik Borhade
- Fix: Compositor assumes node group always exists - Omar Emara
- Fix: VSE effect/modifier loses values if node group is missing - Omar Emara
- Fix: Bokeh Blur mask input ignores extend boundary - Omar Emara
- Fix: Bokeh Blur node crashes for single value kernel - Omar Emara
- Fix: Outliner: Rename button isn't set for new collections inside collapsed collection - Pratik Borhade
- Fix: Outliner: Wrong coordinates during scroll - Pratik Borhade
- Fix: Add continuous grab to decimate modifier operator - Martijn Versteegh
- Fix: Missing depsgraph relations update after effect removal - Omar Emara
- Fix: Missing user count decrement for effect ID properties - Omar Emara
- Fix: Warning propagation for compositor is incorrect - Omar Emara
- Fix: Nodes: Camera Info reports an error when no object is assigned - quackarooni
- Fix #162256: Grease pencil: Draw on Back corrupts stroke data when trimming thin trailing points - Aleš Jelovčan
- Fix #161886: Blender stencil sometimes scales constrained - Richard Antalik
- Fix: IME underline not following text in right-aligned text buttons - W_Cloud
- Fix: Possible zero division in Dilate/Erode node - Omar Emara
- Fix: Integer images wrap wrongly in the compositor - Omar Emara
- Fix #162603: Loop select asserts on non-manifold geometry - Tariq-Sulley
- Fix #162319: Invalid face normals after clipping with the mirror modifier and insetting - Tariq-Sulley
- Fix #161506: Flatten operator doesn't work with vertices and edges without faces attached - Tariq-Sulley
- Fix: Potential infinite recursion on pixel operations - Omar Emara
- Fix: compositor string inputs in modifiers do not support relative paths - Kévin Dietrich
- Fix: GPU: UBSan error about unaligned load - Clément Foucault
- Fix #162608: Action Editor Box, Circle & Lasso wrong if clip is Reversed - Philipp Oeser
- Fix: File Browser is not restoring panels expand state - Guillermo Venegas
- Fix: forward declaration for GPUContext in global instead of blender namespace - Jacques Lucke
- Fix #162605: LineArt: Add deps to objects that have animated visibility - YimingWu
- Fix #162664: VSE compositor Set Alpha incorrect result - Aras Pranckevicius
- Fix #162909: Missing Viewer Image when adding Viewer node - Omar Emara
- Fix: Compositor frame cache fails for animated masks - Omar Emara
- Fix #162356: Install STUDIO light breaks filter_glob for MATCAP/WORLD - Philipp Oeser
- Fix: Inconsistent alpha threshold in Inpaint node - Omar Emara
- Fix: Assert when connecting a single value to a pixel node - Omar Emara
- Fix #160113: Prevent Curve to Tube from merging uncapped endpoints - Tibo Stans
- Fix: Install Light throws error when no file is selected - Philipp Oeser
- Fix #162318: avoid geometry evaluation for collection empties - Tibo Stans
- Fix: EEVEE: wrong normal used for principled coat tint - Weizhen Huang
- Fix: IME receives key presses meant for popups - Campbell Barton
- Fix: error where Mesh.vertex_colors.new() returned the wrong layer - Campbell Barton
- Fix: out-of-bounds read adding a vertex color layer in edit-mode - Campbell Barton
- Fix: UV circle & lasso select can select hidden faces - Campbell Barton
- Fix: Get Bundle Item node can't find tested bundles - Omar Emara
- Fix #162744: Resolve mutex deadlock condition in the VSE text code - Sebastian Parborg
- Fix: changing "filter_glob" didn't refresh the file-selector - Campbell Barton
- Fix: Alembic: missing animation detection for points and curves - Kévin Dietrich
- Fix #162496: non-null RNA argument type hints - Aadidev Soni
- Fix #162355: Installing lights does not update filter when changing type - Philipp Oeser
-
Fix: Outliner's
Add/Clear Fake UserID operations allowed on linked ID - Philipp Oeser - Fix #162475 glTF: Fix nonmesh export - Julien Duroure
- Fix #161678: Cycles: Correct background lighting for mixed volume phases - Cielluloid
- Fix: EEVEE image texture node crash with invalid blend file - Brecht Van Lommel
- Fix: Passes are computed after compositor is disabled - Omar Emara
- Fix #162065: Grease pencil depth pass contains a triangle - Omar Emara
- Fix: EEVEE: Sheen was counted both in subsurface and diffuse - Weizhen Huang
- Fix #94573: Bake: Incorrect denoising near unrendered pixels - rmn20
- Fix: VSE: Update media presence and clear caches for "Find Missing Files" - John Kiril Swenson
- Fix: Shader Nodes: Attribute & UV map lookup broken on pinned materials - quackarooni
- Fix #51231: EXR lossy DWA compression applies to data passes - Brecht Van Lommel
- Fix #162943: Crash loading Mesh to BMesh when attribute exists with a different domain - Tariq-Sulley
- Fix #161843: Missing "Generic Tool: Annotate" in the key map editor - Starz099
- Fix: crashes passing None arguments into ActionChannelbag methods - Campbell Barton
- Fix: Scene compositor effects ignore animations - Omar Emara
- Fix: Mask is always considered animated - Omar Emara
- Fix: Assert if Remove input in Get Bundle Item is connected to image - Omar Emara
- Fix: Possible crash when adding viewer node - Omar Emara
- Fix: Negative frames asserts in compositor frame cache - Omar Emara
- Fix #163086: GPU: Broken compilation on MSVC - Clément Foucault
- Fix #163057: Vulkan crash selecting objects on Intel GPUs - Brecht Van Lommel
- Fix #162823: Inconsistent warning beside viewlayers in Render layer node - Pratik Borhade
Geometry Nodes
- Geometry Nodes: Avoid point cloud for empty Mesh to Points selection - Tibo Stans
- Geometry Nodes: Reuse audio readers for sound frequency sampling - Tibo Stans
- Geometry Nodes: Benchmark simulations - Iliya Katushenock
- 🔸 Geometry Nodes: Add Preserve Normals option to Realize Instances - Tibo Stans
GHOST
- 🔸 GHOST/Wayland: Rounded window corners - Hans Goudey
- 🔸 SDL: Add Vulkan GPU backend support - Jonas Holzman
Git
- CODEOWNERS: add an Animation & Rigging section - Sybren A. Stüvel
-
Tools: fix
use_elem_macrocleanup hanging code_clean.py - Campbell Barton - Tools: update cmake checker to ignore INTERFACE in file listings - Campbell Barton
GPU
-
GPU: Workaround for
update_subassert by temporarily disablingMTLTexturePool- Mark van de Ruit - GPU: Add vertex buffer copy_sub - Jeroen Bakker
- GPU: Enable texture view tests on all backends - Miguel Pozo
- GPU: Replace mipmap workaround for Intel Arc with multiple dispatches - Brecht Van Lommel
- GPU: Mipmaps: Write sRGB texture in place on Apple GPUs - Brecht Van Lommel
- 🔸 GPU: Mipmaps: Generate sRGB texture though non-sRGB view on OpenGL - Brecht Van Lommel
- 🔸 GPU: Mipmaps: Generate sRGB texture through a non-sRGB view on Vulkan - Brecht Van Lommel
- 🔸 GPU: Mipmaps: Partial update for mipmaps - Brecht Van Lommel
- GPU: Mipmaps: Create texture views once for all UDIMs, for full regenerate - Brecht Van Lommel
- GPU: Remove deprecated logicOp and replace with INVERT blending - rajaryan-2
-
GPU: Shader Tool: Allow
static_assertin shared headers - Clément Foucault - GPU: Add IndexBuf::copy_sub - Jeroen Bakker
- GPU: Shader Tool: Add debug type for AST nodes - Clément Foucault
- GPU: Prefer the use of gpu_InstanceIndex - Jeroen Bakker
- GPU: Shader: Avoid double includes of generated sources - Clément Foucault
- GPU: Shader Tool: BSL 5.3 compiler - Clément Foucault
Image
- Images: Remove temporarily disabling of mipmaps for paint - Brecht Van Lommel
- Images: Use partial update for paint undo - Brecht Van Lommel
I/O
- 🔸 IO: Add option how to eval (Viewport vs. Render) during PLY export - Matej Kotas
- 🔸 Alembic: support exporting PointCloud objects - Kévin Dietrich
- 🔸 Alembic: import and export of curves velocities - Kévin Dietrich
- glTF: Set minimum Blender version to 5.3.0 after recent changes - Julien Duroure
Modeling
- 🔸 Shape Keys: Duplicate all selected shape keys - Nika Kutsniashvili
- 🔸 Mesh: Store skin modifier data as generic attributes - Hans Goudey
- 🔸 Mesh: Use Embree for triangles BVH tree - Hans Goudey
- Mesh: remove object geometry tag when reading edit-mesh undo data - Campbell Barton
Nodes
- 🔸 Nodes: new Get Vector Component node - Jacques Lucke
- 🔸 Nodes: Only create compositor viewer for supported types - Omar Emara
-
🔸
Nodes: Show error in
Camera Infoif given object is not a camera - quackarooni
Outliner
- 🔸 Outliner: Expand hierarchy on focus - Pratik Borhade
- 🔸 Outliner: Rename ID context menu to Data Block - Pratik Borhade
Paint
- Texture Paint: Prevent multi-threaded acquisition to mutable ImBuf data - Sean Kim
- 🔸 Paint: Remove Front-Face Falloff option - Sean Kim
- Paint: Migrate unified paint flag from scene / mode level to brush level - Jerry Wei
Python
- PyAPI: Add useful exceptions to CollectionProperty.move() - Oxicid
- PyAPI: enable bpy.app.portable on all portable installations - Campbell Barton
Refactor
- Refactor: Anim: Rename FCurve.rna_path to rna_path_ptr - Hans Goudey
- Refactor: Anim: Wrap FCurve.rna_path_ptr with a get/set API - Hans Goudey
- Refactor: Remove Sculpt mode default setting ensure - Sean Kim
- Refactor: Playhead drawing code - Christoph Lendenfeld
- Refactor: Add ID::id_type() accessor function - Hans Goudey
- Refactor: Cycles: Store attribute once when requested by both name and std - Brecht Van Lommel
- Refactor: Cycles: Centralize attribute name and standard mapping - Brecht Van Lommel
- Refactor: Layers: move ViewLayer runtime data to separate struct - Jacques Lucke
- Refactor: use caching for ViewLayer object_bases_array - Jacques Lucke
- Refactor: remove unused function from ActionFCurveMoveTest - Sybren A. Stüvel
- Refactor: Nodes: use common api to create/copy/free socket values - Jacques Lucke
- Refactor: Texture Paint: Remove ImageBufferAccessor abstraction - Hans Goudey
- Refractor: VKVertexAttribueObject bindings - rajaryan-2
- Refactor: Texture Paint: Make rasterization more robust to NaN - Brecht Van Lommel
- Refactor: Cycles: Match Filter Glossy internal default to Blender - Brecht Van Lommel
- Refactor: Geometry: Replace custom indices grouping with BLI utilities - Brecht Van Lommel
- Refactor: BLI: Add BLI_rctf_rotate_expand_around - Brecht Van Lommel
- Refactor: Skip logging external single values - Omar Emara
- Refactor: Skip max velocity computation for single values - Omar Emara
- Refactor: Paint: Unify mode enter / exit logic - Sean Kim
- Refactor: UI: Rename #view2d_pixel_size_get, add functions to get x, y - il4n
- Refactor: VSE: Use #view2d_pixel_size_get_* for pixelx and pixely - il4n
- Refactor: move pose library code out of kernel - Christoph Lendenfeld
- Refactor: Use C++ Array in editmesh_rip.cc - Hans Goudey
- Refactor: Use C++ Array and Vector in editmesh_kife.cc - Hans Goudey
- Refactor: Use Vector for bone edit transform data - Hans Goudey
- Refactor: PointCache: Use length variable rather than MEM_allocN_len - Hans Goudey
- Refactor: Mask: Introduce runtime struct for MaskSpline - Hans Goudey
- Refactor: Mask: Store runtime spline points in Vector - Hans Goudey
- Refactor: BLI_kdopbvh: Replace MEM_allocN_len with stored capacity - Hans Goudey
-
Refactor: Texture Paint: Simplify
execprocessing - Sean Kim - Refactor: remove drag toggle support for 3+ states - Campbell Barton
- Refactor: de-duplicate view horizon leveling - Campbell Barton
- Refactor: BLO: Explicitly track pointer allocation size - Hans Goudey
- Refactor: Outliner: Port TSE_ID_BASE to AbstractTreeElement - Pratik Borhade
- Refactor: Lazily allocate single value image fallbacks - Omar Emara
- Refactor: Cycles: Add struct to encompass both reflectance and transmittance - Weizhen Huang
- Refactor: Nodes: use common NodeWarning struct - Jacques Lucke
- Refactor: Shader Nodes: support different warning types - Jacques Lucke
- Refactor: Images: Centralize some GPU texture setup logic - Brecht Van Lommel
- Refactor: Replace MEM_allocN_len in BLI_memarena - Hans Goudey
- Refactor: Cycles: Don't pull an entire Metal namespace - Sergey Sharybin
- Refactor: Cycles: Make kernel_features 64bit - Sergey Sharybin
- Refactor: Cycles: Access prim_offset via array for Embree - Sergey Sharybin
- Refactor: Cycles: Setup local octree for null scattering - Weizhen Huang
- Refactor: Cycles: Simplify transparent shadow and volume integration - Weizhen Huang
- Refactor: Cycles: Change multi-device buffer split from foreach to function - Brecht Van Lommel
- Refactor: Sequencer: Replace MEM_allocN_len for stripdata - Hans Goudey
- Refactor: Replace BLI_memiter with C++ types, remove - Hans Goudey
-
Refactor: Simplify
r_matconstruction in bmo_circularize - Tariq-Sulley - Refactor: UV: Use proper array instead of pointers - Iliya Katushenock
- Refactor: EEVEE: Simplify principled BSDF setup - Weizhen Huang
Render
- 🔸 Render: Make pause/resume a native RenderEngine feature - Brecht Van Lommel
Sculpt
- 🔸 Sculpt: Add rounded-box-shaped 3D cursor support for brushes with cube tip - Jerry Wei
- 🔸 Sculpt: Support displaying textures for multires mesh while sculpting - Sean Kim
-
Sculpt: Add profiling markers for
draw_pbvh.cc- Sean Kim - Multires: Use existing mesh arrays for grid index lookups - Hans Goudey
- Multires: Parallelize assigning reshape coordinates from grids - Hans Goudey
- Multires: Avoid duplicating displacement grids when reshaping top level - Hans Goudey
Shading
- 🔸 Shader Nodes: support Index Switch node - Jacques Lucke
- 🔸 Shader Nodes: support Switch node - Jacques Lucke
- Shader Nodes: improve error reporting during inlining - Jacques Lucke
- 🔸 Shader Nodes: add better string socket support and string nodes - Jacques Lucke
Tests
- Tests: Disable texture_view_mip_layer_test on Linux-Intel again - Miguel Pozo
- Tests: Support cold Geometry Nodes modifier benchmarks - Tibo Stans
- Tests: EEVEE: Blocklist volume_instance test for Intel Windows - Christoph Neuhauser
- Tests: Add performance test for grouping indices - Brecht Van Lommel
- Tests: fix bl_keymap_completeness.py test for keymap_hierarchy.py - Campbell Barton
Tool System
- Tool System: rely on keymap_hierarchy.py for generic tool key-maps - Campbell Barton
Translations
- I18N: Fix another batch of issues with LTR and formatting tokens handling - Bastien Montagne
-
I18N tools: fix wrong handling of the
}}format escape sequence. - Bastien Montagne - I18N: Updated UI translations from git/weblate repository (783c381a118a). - Bastien Montagne
- I18n: Translate color management using a new translation context - Damien Picard
- I18N: Updated UI translations from git/weblate repository (3d1c2991cb7ab71f). - Bastien Montagne
User Interface
- UI: Add workspace tool activation regression tests - phantomsoldierking
- UI: Remove "Add Primitive" menu from Sculpt - Nika Kutsniashvili
- 🔸 UI: Make gizmos and overlays follow side-bar animation - Hans Goudey
- 🔸 UI: Shorten template expressions in text fields when text is too long - Nathan Vegdahl
- UI: Extensions: Move secret token to inside the Advanced panel - Dalai Felinto
- UI: use multiline label in Fix to Camera operator UI - Sybren A. Stüvel
- 🔸 UI: Use multi-line labels for longer warnings and descriptions - Ruben Messerschmidt
- UI: Add tests for menu search and item execution - phantomsoldierking
- 🔸 UI: Add new icon for Collection Import and Export - Pablo Vazquez
- 🔸 Themes: UI: Compact grid layout for Bone Color Sets - quackarooni
- 🔸 UI: IME preview composition text while editing - Campbell Barton
- 🔸 UI: expose all keymaps in the preferences - Campbell Barton
- 🔸 UI: Fine adjusting values with arrows on number button - Pratik Borhade
- UI: Bring back ctrl middle mouse wheel for search buttons - Julian Eisel
- 🔸 UI: Add View Roll Reset operator - Campbell Barton
- UI: Add UI tests for opening editors - phantomsoldierking
- 🔸 UI: Add "Shape" panel to brush settings - Jerry Wei
- 🔸 UI: Align multi-line label icon to the first line - Docheru Florin-Andrei
- 🔸 UI: Nodes: Draw hover highlight for renamable sockets - W_Cloud
- 🔸 UI: TOML File for Saving UI State Settings - Hans Goudey
- 🔸 UI: Vertically center buttons in the 3d Viewport Header - Guillermo Venegas
- UI: Add tests for drag in editors - phantom
- 🔸 UI: Add multiline textbox for metadata stamp note - John Kiril Swenson
- 🔸 UI: Collection Importer: Poll message when Collection not empty - Eitan Traurig
- 🔸 UI: Collection Importer: Check for filepath field non-empty - Eitan Traurig
Video Sequencer
- 🔸 VSE: Disable strip clamp by default for flexibility, add user preference - John Kiril Swenson
- 🔸 VSE: Always keep transition inputs in chronological order - il4n
- 🔸 VSE: Expose compositor node group inputs to compositor effect UI - Aras Pranckevicius
- VSE: UI: Use filled error icon to show missing media strip content - Guillermo Venegas
- 🔸 VSE: Support "Reset to Default Value" for handles and strip duration - John Kiril Swenson
- 🔸 VSE: Movie reader cache to avoid expensive work / frame drops around video cuts (#118155) - Aras Pranckevicius
- VSE: Fixes for realtime preview feedback of animated strip properties - Aras Pranckevicius
Vulkan
- Vulkan: Remove unneeded lock - Jeroen Bakker
- Vulkan: Add alignment support to VKBuffer::create - Miguel Pozo
-
Vulkan: Add
VKIndexBuffer::update_sub- Jeroen Bakker - Vulkan: Inform about ASAN - Nvidia incompatibilities on device creation error - Miguel Pozo
- Vulkan: Make multiDrawIndirect an optional GPU feature - Jeroen Bakker
- Vulkan: Make vertexPipelineStoresAndAtomics optional - Jeroen Bakker
- Vulkan: Make VK_EXT_provoking_vertex optional - Jeroen Bakker
9 Comments
Hello Pablo, how u doing, the last time i asked for quad remesh in sculpt mode, now, recently i find this, github.com/huxingyi/autoremesher , is free and open source maybe u can reach out the owner and see if u can work together and implemented in blender. that would be really helpfull implement
hello pablo, i just have one question, would belnder ever support RTL languages, such as arabic and such?
Hello Pablo, I saw recently that there are plans to bring dlss to blender, are there any similar plans with FSR for the people who own AMD GPUs ?
Hi Pablo, I switched to Blender for video editing since 5.0. However, masking for VSE needs some love. we can control mask with gizmo on image_editor\viewer_node for render, but we cannot do that for videos in VSE preview. I would love those controls there. Maybe I'm not aware of how to do this. Also, we really need pen masking, shape masking is too limiting.
And, I want to request an option for quad view of render images for slots. It's really handy for compositing render images. let's say I render frame 1 on slot 1, 20 on 2, 30 on 3 and 40 on 4. And the shot has moving camera. with this option I can see what's happening on multiple frame when compositing. I'm willing to trade performance for this feature.
another thing I want to ask is, why Lights in eevee and cycles have different settings, like custom distance being exclusive to eevee and spread being exclusive to cycles. I wish we had both settings for both render engine.
Thank you.
Hey Pablo, quick question: why does autosave not work if you're not in object mode? Would be nice to at least have an option to customize autosave behavior this way. Cheers!
Hey Pablo! As always I hope you're doing well, I am super excited for what 5.3 already has in store for us! :D
Next to the showcased Layered Compositing the currently tested Light Accumulation branch might possibly be my favourite Blender feature in many, many years because it completely opens up a new type of shading, so I am heavily crossing my fingers it can make it into the next version.
But these two features being worked on makes me wonder if a design proposal or maybe even some pull request for the proposed "Per-Object-compositing" exists so far and if there is any news on it in general. Layered Compositing feels like a solid first step in that direction!
A small question I also have is for texture painting. Last Version added real Sphere falloff to brushes to Vertex and Weight painting but I haven't found a PR for this feature in Texture Painting. Is that feature in development somewhere?
All in all I am very glad the NPR project is finally really kicking off with concepts from the first prototype being worked on now and am excited to see what's next!
Pablo, I'm 😡, I missed the stream! I made a UI request, Can you please look: blender.community/c/rightclickselect/kBmx/ Please Thank You Bye
Ello Pablo, nice to always see more blender progress, hope your day is going well. I had a few questions. First, I wanted to know is there any development for path guiding (specifically more realistic caustics rendering) for gpu rendering rather than cpu rendering? Second, I always love seeing the blender open movies projects especially with the upcoming over grown. Its just I have been alittle confused with past projects, are cosmos laundromat and agent 327 still being worked on, or have those projects been abandoned? And lastly for those using gpu rendering does system ram still matter or is rendering entirely dependant on vram? (Ex gpu has 24gb vram, but system has 64gb)
Hi Pablo, can we get a button to Set Attribute where the attributes are in Object Data Properties? Currently it's only placed inconveniently in Mesh>Set Attribute.
Reading object custom properties in geonodes would be great too like we can already do in material nodes. Please and thank you.