Blender on iPhone - Blender Today LIVE #263
Changelog between July 22, 2025 - August 05, 2025 at 12h
454 commits in total, of which 104 are fixes and 94 cleanup.
Anim
- Anim: fix printf format string - Sybren A. Stüvel
Audaspace
- Audaspace: porting changes from upstream. - Jörg Müller
BLF
- BLF: Increase FreeType Cache Values - Harley Acheson
- BLF: Correct the Showing of VFont Not Found Character - Harley Acheson
BLI_convexhull_2d
- BLI_convexhull_2d: enable USE_ANGLE_ITER_ORDER_ASSERT - Campbell Barton
- BLI_convexhull_2d: ensure stable order, correct doc-strings - Campbell Barton
Build
- Build: Ignore old macOS x64 submodule directory - Jonas Holzman
-
Build: Add macOS x64 deprecation warning to
make update- Jonas Holzman - Build: unbreak WITH_INTERNATIONAL=ON - Campbell Barton
- Build: Change make update to always do git lfs pull - Brecht Van Lommel
- Build: unbreak WITH_PYTHON_MODULE=ON - Campbell Barton
- Builds: Remove macos_x64 submodule from git - Thomas Dinges
Cleanup
- Cleanup: tests: Factorize some common processing in linking tests utils. - Bastien Montagne
-
Cleanup: Allow
ED_screen_temp_space_open()to take a nulltitleargument - Jonas Holzman - Cleanup: Unittests: use TestCase own assert system. - Bastien Montagne
- Cleanup: Remove unused variable - Hans Goudey
- Cleanup: GPU: Avoid warning in switch statement - Clément Foucault
- Cleanup: VSE: Move strip flags to StripRuntime - John Kiril Swenson
- Cleanup: remove unused variables from VSE Editing struct - Aras Pranckevicius
- Cleanup: quiet switch warnings - Campbell Barton
- Cleanup: use colon after the doxygen params argument & doxygen comments - Campbell Barton
- Cleanup: use size-comments checked by "make check_size_comments" - Campbell Barton
- Cleanup: Remove confusing statement from Alpha Over tooltip - Omar Emara
- Cleanup: Use tabs for indentation in ,gitmodules - Sergey Sharybin
- Cleanup: consistent use of back-ticks in code-comments - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: use '*' prefixed multi-line comment blocks - Campbell Barton
- Cleanup: quiet unused warnings - Campbell Barton
- Cleanup: simplify OBJ export_frame() into separate functions - Mattias Fredriksson
- Cleanup: fix compile warning - Aras Pranckevicius
- Cleanup: remove manually-ran IMB_performance_test - Aras Pranckevicius
- Cleanup: minor clarifications for View2D struct members - Campbell Barton
- Cleanup: use UNLIKELY(..) for integer overflow checks - Campbell Barton
- Cleanup: use UTF8 string copy for bActionGroup::name - Campbell Barton
- Cleanup: use define for action group name size - Campbell Barton
- Cleanup: No longer require VSE Strip struct memory layout to never change - Aras Pranckevicius
- Cleanup: fix compiler warning about memset on C++ type - Sybren A. Stüvel
- Cleanup: Remove debug code accidentally included in previous commit - Hans Goudey
- Cleanup: Follow style guide & conventions in mesh_tangent.cc - Hans Goudey
- Cleanup: remove redundant calls to strlen - Campbell Barton
- Cleanup: ensure the output of BLI_path_to_display_name is valid UTF8 - Campbell Barton
- Cleanup: ensure UTF8 string copy for DNA & screen data - Campbell Barton
-
Cleanup: replace
*_max_lengthwith_maxncpyfor null inclusive size - Campbell Barton - Cleanup: back-tick quote literal strings in code comments - Campbell Barton
- Cleanup: remove commented code - Campbell Barton
- Cleanup: use UTF8 string functions in source/blender/python - Campbell Barton
- Cleanup: UTF8 string functions for color-space & imbuf strings - Campbell Barton
- Cleanup: use UTF8 string functions for tracking members - Campbell Barton
- Cleanup: use UTF8 string functions in editors & related logic - Campbell Barton
- Cleanup: use dash for bullet points in generated docs - Campbell Barton
- Cleanup: remove unnecessary name prefix in DrawCache::text_id - Campbell Barton
- Cleanup: avoid casting away 'const' - Campbell Barton
- Cleanup: don't pass an Array by value in mesh_intersect.cc - Campbell Barton
- Cleanup: quiet unused warnings for Python scripts - Campbell Barton
- Cleanup: USD: Various C++ cleanups for point instancing export support - Jesse Yurkovich
- Cleanup: Adds missing static casts - Benjamin Beilharz
- Cleanup: UI: Remove unnecessary button arguments - Hans Goudey
- Cleanup: UI: Remove unused min/max arguments to uiDefIconTextBut - Hans Goudey
- Cleanup: Cycles: Deduplication svm bump functions - Weizhen Huang
- Cleanup: Cycles: simplify computation of dPdx and dPdy - Weizhen Huang
- Cleanup: Cycles: add more float3 util functions - Weizhen Huang
-
Cleanup: use
version_node_add_emptyto add nodes in versioning - Habib Gahbiche - Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: various minor changes to convexhull_2d - Campbell Barton
- Cleanup: Silence warning on buildbot windows - Habib Gahbiche
-
Cleanup: Rename internal Paint BVH
node_treestruct - Sean Kim - Cleanup: Use enum class for PlaneAABBIsect - Sean Kim
- Cleanup: quiet compiler warnings - Campbell Barton
- Cleanup: rename locked interface setting functions - Campbell Barton
- Cleanup: replace "enabled" with "active" in the NDOF UI - Campbell Barton
- Cleanup: header grouping - Campbell Barton
- Cleanup: UI: Remove public access to uiItem::type_ - Guillermo Venegas
- Cleanup: Add enum types around various VSE DNA enums - Aras Pranckevicius
- Cleanup: add get_render_scale_factor helper to use across VSE, proxy size type safety - Aras Pranckevicius
- Cleanup: Remove redundant comments - Sean Kim
-
Cleanup: Use C++ math types and functions for
sculpt.set_pivot- Sean Kim - Cleanup: Use switch instead of if / else for set_pivot cases - Sean Kim
- Cleanup: pass const arguments in GHOST/Wayland implementation - Campbell Barton
- Cleanup: replace back-ticks with docygen symbol references - Campbell Barton
- Cleanup: typos in code comments - Campbell Barton
- Cleanup: pass const arguments to sort, use C++ radian conversion - Campbell Barton
- Cleanup: Geometry Nodes: add comment - Jacques Lucke
- Cleanup: BLF FontFlags enum type safety, move enums to separate header - Aras Pranckevicius
- Cleanup: Cycles: Use gtest header instead of Blender test header - Brecht Van Lommel
-
Cleanup: Rename sculpt_undo.cc
NodeGeometryvariables - Sean Kim - Cleanup: quiet warning in GCC - Campbell Barton
- Cleanup: use doxygen comments for BLF headers - Campbell Barton
- Cleanup: redundant check for shader type - Habib Gahbiche
- Cleanup: grammar corrections, minor improvements to wording - Campbell Barton
-
Cleanup: Cycles: use
constexprin kernel - Weizhen Huang - Cleanup: Remove unused and outdated render test files - Brecht Van Lommel
- Cleanup: use version_node_* for Map Value - Habib Gahbiche
- Cleanup: Remove unused variable - Miguel Pozo
- Cleanup: minor corrections to library loading logic, improve docs - Campbell Barton
- Cleanup: naming & reduce declaration scope in the PyAPI for lib loading - Campbell Barton
- Cleanup: use full sentences in text editor code-comments - Campbell Barton
- Cleanup: rename KM_CLICK_DRAG to KM_PRESS_DRAG for clarity - Campbell Barton
- Cleanup: rename click_drag to press_drag functions, variables - Campbell Barton
- Cleanup: only handle selection when BM_mesh_esubdivide uses selection - Campbell Barton
- Cleanup: quiet unused variable warning - Jacques Lucke
- Cleanup: avoid indenting entire geometry nodes modifier blend-write function - Jacques Lucke
- Cleanup: Use consistent parameter name, remove const in declaration - Hans Goudey
- Cleanup: Confusing and varied naming of 'last_control_point_index' - Mattias Fredriksson
- Cleanup: Silent unused parameter - Jeroen Bakker
- Cleanup: Use BitVector for mesh mapping function - Hans Goudey
Compositor
- 🔸 Compositor: Replace Composite node with Group Output node - Omar Emara
- 🔸 Compositor: Add Glare Sun Beams gizmos - Mohamed Hassan
- 🔸 Compositor: Improve Fog Glow glare realism - Mohamed Hassan
- 🔸 Compositor: Improve File Output node UI - Kace
- 🔸 Compositor: add asset shelf - Habib Gahbiche
- 🔸 Compositor: Add extension modes for rotate node - Benjamin Beilharz
- 🔸 Compositor: Add extension modes to displacement node - Benjamin Beilharz
- 🔸 Compositor: Add extension modes to map UV node - Benjamin Beilharz
- 🔸 Compositor: Add Extension modes for corner pin mode - Benjamin Beilharz
- 🔸 Compositor: Use frame for Map Value node versioning - Habib Gahbiche
-
Compositor: Remove
scene.use_nodesfrom Python API - Habib Gahbiche -
Compositor: remove
scene.node_treefrom Python API - Habib Gahbiche
Core
- 🔸 Core: Sanitize ID/struct names when used in path templates - Nathan Vegdahl
- Core: Add-ons: Display Maintainer as "Blender Foundation" - Aaron Carlisle
- Core: Rename ID name and plural_name for annotations - Pratik Borhade
Curves
- 🔸 Curves: Treat curve as selected when any handle is selected - Casey Bianco-Davis
Cycles
- 🔸 Cycles: Add linear curve shape - Patrick Mours
- 🔸 Cycles: Add Portal Depth light pass information - Sergey Sharybin
- 🔸 Cycles: Change default material to match Blender and EEVEE - Brecht Van Lommel
- 🔸 Cycles: Improve parameter packing for the Principled BSDF - Lukas Stockner
- 🔸 Cycles: Improve parameter packing for BSDFs and emission - Lukas Stockner
- 🔸 Cycles: Disable lossless MTLTexture compression & render up to 2% faster - Michael Jones
- 🔸 Cycles: Add polarized Fresnel function for conductors - Amogh Shivaram
- Cycles: MetalRT: Only use extended limits if needed (revisited) - Michael Jones
- Cycles: introduce dual types - Weizhen Huang
- Cycles: Explicitly setting SYCL device for Embree - Stefan Werner
- Cycles: Fixed typo in my last commit - Stefan Werner
Deps
- Deps: fastjsonschema 2.21.1 + cattrs 25.1.1 - Ray Molenkamp
- Deps: macOS arm64: Fix Python blake2 wrongly linking to system libb2 - Jonas Holzman
- Deps: Windows ARM64: fastjsonschema 2.21.1 and cattrs 25.1.1 - Anthony Roberts
Docs
-
Docs: document
prepare_fnparameter - Campbell Barton - Docs: include a note on when key-map versioning runs - Campbell Barton
EEVEE
- 🔸 EEVEE: Add correct volumetric support for point clouds - Clément Foucault
Edit Mesh
- Edit Mesh: add EditMeshSymmetryHelper utility class - tariqsulley
Extensions
- Extensions: clarify the identifiers must "Python" id's in the error - Campbell Barton
Fix
- Fix: Link dragging Falloff Size doesn't work - Tenkai Raiko
- Fix: match RenderPass::chan_id size with EXR_PASS_MAXCHAN - Campbell Barton
- Fix: BKE_collection_new_name_get potentially creating non UTF8 strings - Campbell Barton
- Fix: Crash when group node has no Group Output node - Omar Emara
- Fix: UI Use title case for property text - Aaron Carlisle
- Fix: assert in image Luma vectorscope - Aras Pranckevicius
- Fix: Nodes: memory leak in extra info tooltips - Jacques Lucke
- Fix: Crash when versioning Translate node - Omar Emara
- Fix: Set Mesh Normal "Tangent" mode fails with free normals - Hans Goudey
- Fix: GPU shader error logging doesn't show shader name or stage - Brecht Van Lommel
- Fix: VSE: Copy to selected would interfere with dual handles - John Kiril Swenson
- Fix: Weekly report error when a user has a commit to a parent repo - Alaska
- Fix: VSE: Cannot ignore connected strips' handles with alt if already selected - John Kiril Swenson
- Fix: Nodes: use correct structure types in switch nodes - Jacques Lucke
- Fix: Delete basis removes all shape key - Pratik Borhade
- Fix: OSL: Attribute "generated" not available for World and Point Cloud - Weizhen Huang
- Fix: VSE: Strip label jumping when resizing vertically - John Kiril Swenson
- Fix: armature "Auto-Name by Axis" creating invalid UTF8 names - Campbell Barton
- Fix: incorrect sizes of fixed size buffers, ensure valid UTF8 - Campbell Barton
- Fix: off by one error escaping node names - Campbell Barton
- Fix: Vector.to_tuple didn't accept precision of -1 - Andrej730
- Fix: Operator, app template and benchmarking script errors after media type - Brecht Van Lommel
- Fix: Nodes: support choosing list socket shape for supported types - Jacques Lucke
- Fix: Some enum item buttons don't function after recent cleanup - Hans Goudey
- Fix: Potential null pointer dereference in attribute accessors - Hans Goudey
- Fix: warning template-id-cdtor on gcc - Weizhen Huang
- Fix: Deleting instances fails assert on index range - Lukas Tönne
- Fix: wrong user count for compositing node tree - Habib Gahbiche
-
Fix: Grease Pencil: Remove fill guide attribute in
remove_fill_guides- Falk David - Fix: missing main invariants update after append - Jacques Lucke
- Fix: Cycles: Division by zero in Oren-Nayar shader - Weizhen Huang
- Fix: Nodes: single value types sometimes shown as dynamic - Jacques Lucke
- Fix: VSE gaussian blur size was incorrect in proxies / render scale - Aras Pranckevicius
-
Fix:
SculptSession#last_active_vertuses incorrect value - Sean Kim - Fix: missing pragma once - Jacques Lucke
- Fix: Glass node missing buttons after adding thin film panel - Weizhen Huang
- Fix: Grease Pencil: Missing versioning for default Anti-Aliasing settings - Jonas Holzman
- Fix: Ensure world nodes have topology cache for Hydra - илья _
- Fix: Python API: bpy.app.is_job_running('SHADER_COMPILATION') - Miguel Pozo
- Fix: UI: Fuzzy Search: incorrect max acceptable edit distance for deletions in short words - Jean-Silas
- Fix: Geometry Nodes: handle linking bundle/closure node to incompatible socket - Jacques Lucke
- Fix: Geometry Nodes: crash when linking closure/bundle to group in/output extent socket - Jacques Lucke
-
Fix: Avoid
CLG_Levelwarning when -1 is used as CLI parameter - Sean Kim -
Fix: Rigify: Wrong type in
create_object_datafor Grease Pencil - Falk David - Fix: OpenGL: Invalid GL info on GPUSecondaryContexts - Miguel Pozo
- Fix: Geometry Nodes: wrong socket syncing for nested bundles - Jacques Lucke
- Fix: GPU: Shader cache clearing on subprocess crash - Miguel Pozo
- Fix: Tests: Two-stage shader compilation in EEVEE performance tests - Christoph Neuhauser
- Fix: Nodes: shader socket missing in some places - Jacques Lucke
- Fix: Nodes: copied node not always added to nodes_by_id - Jacques Lucke
- Fix: Nodes: restore active node after copy-pasting nodes - Jacques Lucke
- Fix: Tests: Avoid RecursionError in EEVEE performance tests - Christoph Neuhauser
-
Fix: Grease Pencil: Hide
Bezierhandles overlay inCurveselection mode - Casey Bianco-Davis - Fix: Grease Pencil: Sculpt Smooth Tool Bezier Handles - Casey Bianco-Davis
- Fix: Cycles: Show correct minimum OptiX GPU driver in preferences - Alaska
- Fix: Build error with USD/Hydra with some build systems - Brecht Van Lommel
- Fix: crash due to wrong duplicate node name handling - Jacques Lucke
-
Fix: Grease Pencil Vertex Paint uses old path for
unified_paint_settings- Sean Kim - Fix: Map UV node does not work with single values - Tenkai Raiko
- Fix: Poll function for asset screenshot operator - Christoph Lendenfeld
- Fix: AssetShelfSettings memory management issues (assignment & destructor) - Sybren A. Stüvel
- Fix: VSE: Wrong context used when dropping audio files - Falk David
- Fix #104074: Cloth simulation presets missing internal springs and pressure - Bartosz Kosiorek
- Fix #107021: Knife cursor lost after status bar pan - Campbell Barton
- Fix #107679: Smoke simulation adaptive domain shrinks too much - Bartosz Kosiorek
- Fix #110334: int overflow in rna_iterator_array_begin - Jesse Yurkovich
- Fix #120885: Ensure EXR view_format selection in stereo - YimingWu
- Fix #134231: Allow Use of Shortcuts to External Operation Items - Harley Acheson
- Fix #135908: Extrude Individual Faces "Offset Even" does nothing - tariqsulley
- Fix #138191: EEVEE: Bump is incorrect with pixel size greater than 1x - Clément Foucault
- Fix #139183: Stuck in Draw Mode after converting Grease Pencil to Mesh - Pratik Borhade
- Fix #139530: Modeling: Allow adding snap points in increment/grid modes - YimingWu
- Fix #140406: Inset Scroll Bars for Left-Aligned Panels - Harley Acheson
- Fix #140548: Shift to extend fails in the "Hide Other Collection" menu - tariqsulley
- Fix #140892: Cycles: equiangular sampling numerical issue - Weizhen Huang
- Fix #141095: VSE thumbnails drift horizontally when resizing the timeline vertically - Aras Pranckevicius
- Fix #141173: Inpaint node inconsistent on GPU - Omar Emara
- Fix #141313: Clear Screen active_region for Area swap - Harley Acheson
- Fix #141436: Dilate node Feather mode has artifacts - Christoph Neuhauser
- Fix #141442: Ensure Panel Text Colors Are Opaque - Harley Acheson
- Fix #141469: Geometry Nodes: use safer approach to modifying each instance geometry - Jacques Lucke
- Fix #141732: Asset Screenshot does not capture for Cycles - Christoph Lendenfeld
- Fix #141741: Combed particles are affected by occlusion of other particles - Germano Cavalcante
- Fix #141806: Crash with certain layers enabled - Jeroen Bakker
- Fix #141853: Enum values aren't quoted in API doc function signatures - Campbell Barton
- Fix #142006: Grease Pencil color jitter settings not transferred - Sean Kim
- Fix #142022: Cycles undisplaced normal not available - Brecht Van Lommel
- Fix #142087: Use true normals in solidify modifier - Hans Goudey
- Fix #142151: Scrape brush 'Plane Offset' not versioned correctly - Sean Kim
- Fix #142186: Mask Filter smoothing produces artifacts - Sean Kim
- Fix #142202: missing anonymous attribute propagation when using some field nodes - Jacques Lucke
- Fix #142290: crash pasting linked ID in its source library - Jacques Lucke
- Fix #142325: Grease Pencil: Join Selection removes wrong points - Lukas Tönne
- Fix #142399: Object dimensions with GPU subdivision off are inaccurate - Brecht Van Lommel
- Fix #142485: Shading artifacts with free custom normals and scale transform - Hans Goudey
- Fix #142603: Cycles slow updates in camera view with adaptive subdivision - Brecht Van Lommel
- Fix #142633: Crash calling bmesh.ops.split from Python - Campbell Barton
- Fix #142706: Batch Rename doesn't work - Sean Kim
- Fix #142724: Mesh used by boolean modifier missing subdivision in edit mode - Brecht Van Lommel
- Fix #142738, #136688: Workbench: Inconsistent matcap rendering - Miguel Pozo
- Fix #142785: Sculpt mode multires fast navigate artifacts - Hans Goudey
- Fix #142800: Broken selection with Clipping Regions - Miguel Pozo
- Fix #142811: UV edit cage no longer has corner scale points - Habib Gahbiche
- Fix #142814: Incorrect object mode UV overlay with GPU subdivision - Hans Goudey
- Fix #142828: broken socket usage inference for some nodes - Jacques Lucke
- Fix #142839: Asset Browser: Copy to Selected on MetaData broken - Philipp Oeser
- Fix #142853: adding a VSE effect displays stale frame - Aras Pranckevicius
- Fix #142876: Cycles crash with OSL and interactive updates - Brecht Van Lommel
- Fix #142909: SystemError when collections contain non UTF8 names - Campbell Barton
- Fix #142953: Cycles renders world lightgroup wrong - Brecht Van Lommel
- Fix #142954: Crash when opening file with undefined Translate node - Omar Emara
- Fix #142963: Crash when using Texture Paint sample color - Sean Kim
- Fix #142972: FBX/USD import crash filling shape key data on empty mesh - Jesse Yurkovich
- Fix #142982: Grease Pencil: Assert when overriding keyframes in dopesheet - Pratik Borhade
- Fix #143014: make the rip operator's error message more user-friendly - Loïc DAUTRY
- Fix #143087: OpenGL: Startup crash on old AMD drivers - Miguel Pozo
- Fix #143127: UI: Shading UI shows inactive settings in Matcap mode - Miguel Pozo
- Fix #143128: Cycles crash or artifacts with multi device rendering and denoising - Brecht Van Lommel
- Fix #143142: Displace modifier Custom Normal direction broken - Hans Goudey
- Fix #143148: Attribute shader node no longer finds custom property - Brecht Van Lommel
- Fix #143154: Crash when scrubbing in action editor with no action - Christoph Lendenfeld
- Fix #143156: "RGB to BW" node not found in link drag search - Habib Gahbiche
- Fix #143161: Armature select crashes with over 65k objects - Campbell Barton
- Fix #143182: Inconsistency in Menu order in Texture Painting Workspace - Philipp Oeser
- Fix #143191: 10/12 bit videos import much too dark - Sergey Sharybin
- Fix #143218: Uninitialized VBO data using multiple UV tangents - Hans Goudey
- Fix #143238: Weight & Vertex Paint crash when applying deform modifier - Sean Kim
- Fix #143291: USD: World uses wrong output node - Habib Gahbiche
- Fix #143294: Blended surface not receiving volume properly - Clément Foucault
- Fix #143304: Convert Vulkan backend preference to Metal on macOS - Jonas Holzman
- Fix #143323: Material with "frame_current" attribute is not updated on frame change - Miguel Pozo
- Fix #143333: Custom bone shape does not include subdivision surface - Hans Goudey
- Fix #143360: Vertex Weight Proximity sets Normalize Weights checkbox to default state after options switch. - Bastien Montagne
- Fix #143368: Prefer tangent space custom normals when joining meshes - Hans Goudey
- Fix #143390: Incorrect results from BLI_convexhull_aabb_fit_points_2d - Campbell Barton
- Fix #143420: Grease Pencil: Handle empty result in dash modifier - YimingWu
- Fix #143421: python error using freestyle.utilities.get_strokes() - Philipp Oeser
- Fix #143439: Explicit Properties for Knife Tool - Harley Acheson
- Fix #143450: Bevel modifier crash with free normals - Hans Goudey
- Fix #143455: crash in Grease Pencil Shrinkwrap modifier when there is a dependency cycle - Jacques Lucke
- Fix #143490: Missing uniform for POLYLINE_UNIFORM_COLOR gpu python API - youle31
- Fix #143542: Missing Media Type when in saving operator - Omar Emara
- Fix #143600: Library overrides on custom properties are broken. - Bastien Montagne
- Fix #143629: Tool gizmo disappears when resizing areas & regions - Campbell Barton
- Fix #143630: Pivot to Active Vertex moves 3D cursor to infinity - Sean Kim
- Fix #143648: Cannot add collection instances to light linking - Philipp Oeser
- Fix #143685: Use correct shader for points for vertex slide - YimingWu
-
Fix #143715: Grease Pencil: Replace uses of legacy
BlendDatatype - Falk David - Fix #143722: Set a default exposure for Hydra dome/world light - Jesse Yurkovich
- Fix #143738: Broken lines overlay in curve overlay - Iliya Katushenock
- Fix #143780: Bounds overlay ignores edit mesh - Hans Goudey
- Fix #143844: Assert when loading an image in Image Editor (debug build). - Bastien Montagne
- Fix #143856: Data race in curves/point cloud selection - Hans Goudey
- Fix #143857: View3D smooth interpolation produces invalid rv3d.dist values - Clément Foucault
- Fix #143870: Grease Pencil: Fix typo in dash modifier - YimingWu
- Fix #143888: Repeated deletion & Ctrl+Z on a linked data crashes. - Bastien Montagne
- Fix #143892: Crash inside node group in viewport compositor - Omar Emara
- Fix #143907: Cycles: Crash when custom camera shader is not found - Lukas Stockner
- Fix #143939: Fix Win32 External Ops, Open Folder/CMD for Files - Harley Acheson
- Fix #86512: Fire simulation without smoke not affected by force field - Bartosz Kosiorek
- Fix #98089: Improved Alignment of Playhead and Keyframes - Harley Acheson
- Fix (unreported): Compositor Cryptomate could crash in some cases. - Bastien Montagne
- Fix assert when assigning active material of an object through RNA. - Bastien Montagne
- Fix building (missing include). - Bastien Montagne
- Fix compilation in BSDF glass shader code (missing includes). - Bastien Montagne
- Fix memory leak when loading libraries fails from Python - Campbell Barton
GHOST
- GHOST: ignore GHOST_ASSERT in release builds - Campbell Barton
-
GHOST: Rename Metal Context from
ContextCGLtoContextMTL- Jonas Holzman - 🔸 GHOST/Wayland: add basic touch-screen support - Felipe Choi
GPU
- GPU: Add procedural drawcall in gpu::Batch - Clément Foucault
- GPU: Rever mass renaming removing GPUTexture type from python - Clément Foucault
- GPU: Remove mip render workaround and recursive downsample - Clément Foucault
Geometry Nodes
- Geometry Nodes: improve internal bundle api - Jacques Lucke
- 🔸 Geometry Nodes: Initial very basic list support - Hans Goudey
- 🔸 Geometry Nodes: add inline socket for missing nodes - W_Cloud
- 🔸 Geometry Nodes: Change socket name based on node category and support component type. - W_Cloud
- 🔸 Geometry Nodes: move more menu inputs to sockets - Jacques Lucke
- 🔸 Geometry Nodes: Increase parallelism in Geometry Proximity node - Hans Goudey
- Geometry Nodes: change closure socket/zone and repeat zone color - Jacques Lucke
- Geometry Nodes: add conversion warnings for closures and bundles - Jacques Lucke
- Geometry Nodes: show sync button on bundle and closure nodes if syncing is possible - Jacques Lucke
- Geometry Nodes: move sync out of subpanel for bundle/closure nodes - Jacques Lucke
- Geometry Nodes: improve info/error messages for mismatching data types - Jacques Lucke
- Geometry Nodes: sync bundle/closure nodes on first link - Jacques Lucke
- Geometry Nodes: move closure and bundle nodes to their own menu - Jacques Lucke
- Geometry Nodes: disallow leading or trailing whitespace in bundle item names - Jacques Lucke
- Geometry Nodes: change idnames of experimental bundle and closure nodes - Jacques Lucke
- Geometry Nodes: improve link-drag-search for bundle and closure nodes - Jacques Lucke
- Geometry Nodes: trace bundles/closures through repeat zone, simulation zone and bake node - Jacques Lucke
- Geometry Nodes: put closure sockets in panel - Jacques Lucke
- 🔸 Geometry Nodes: Use standard node width for face neighbors node - Hans Goudey
Grease Pencil
- 🔸 Grease Pencil: Use Curve overlay for Bezier handles - Casey Bianco-Davis
Hydra
- Hydra: Forward camera custom properties of type double to render delegate - Dawid Kurek
- 🔸 Hydra: Handle dome light rotation - Dawid Kurek
I18N
- I18N: Updated UI translations from git/weblate repository (73c4fe27024aa0bb7). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (942b7e0e2cea7d). - Bastien Montagne
- I18N: Add Malayalam language to UI translations. - Bastien Montagne
IO
- 🔸 IO: OBJ improvements for NURBS curves - Mattias Fredriksson
Introduce Python code generator for OpenAPI spec to dataclasses
- Introduce Python code generator for OpenAPI spec to dataclasses - Sybren A. Stüvel
Linux
- Linux: Deps: fastjsonschema 2.21.1 + cattrs 25.1.1 - Sebastian Parborg
- install_linux_packages: add install_linux_packages and cattrs - Sebastian Parborg
macOS arm64
make format
- make format - Bastien Montagne
- make format - Bastien Montagne
Mesh
- Mesh: Parallelize edit UV triangle index buffer creation - Hans Goudey
- Mesh: Slightly optimize edit UV triangles index buffer full selection - Hans Goudey
Modeling
- 🔸 Modeling: Set shape key default value to 1.0 - Nika Kutsniashvili
- 🔸 Modeling: new shape key operator Make Basis - Sybren A. Stüvel
- 🔸 Anim: Add copy to selected for shapekeys - Christoph Lendenfeld
- 🔸 Modeling: mirror support for the hide operator - tariqsulley
Motion Tracking
- Motion Tracking: Create new node tree when creating a tracking setup - Habib Gahbiche
Move assets/icons to the main repository
- Move assets/icons to the main repository - John Kiril Swenson
Nodes
- 🔸 Nodes: clamp new node starting position to region bounds - илья _
- Nodes: support interface items lookup by Identifier - Brady Johnston
- 🔸 Nodes: Remove "Use Nodes" in Shader Editor for World - Habib Gahbiche
- Nodes: use better color for closures - Jacques Lucke
- Nodes: add utility to get virtual array for list - Jacques Lucke
- Nodes: support storing internal data in Bundle - Jacques Lucke
- Nodes: always initialize new links in closure zone when syncing - Jacques Lucke
- Nodes: optimize freeing all nodes - Jacques Lucke
OpenGL
- OpenGL: Remove gl_debug_layer - Miguel Pozo
OpenSubdiv
- 🔸 OpenSubdiv: Switch away from GLSL on Apple - Sergey Sharybin
Physics
- Physics: Change default shape for Bubble and Foam particles, to increase visibility - Bartosz Kosiorek
PyAPI
- PyAPI: show Python warnings by default when debugging - Campbell Barton
PyDoc
- PyDoc: Document all app handler arguments - Brecht Van Lommel
- PyDoc: improve mathutils python signatures and doc-strings - Andrej730
- PyDocs: always quote enum values in docs - Campbell Barton
Python
- Python: add HTTP file downloader - Sybren A. Stüvel
- Python Module: Add note about archived versions - Bart van der Braak
RNA
- RNA: support for marking properties as deprecated - Campbell Barton
- RNA: Improve handling of bitflags enum properties. - Bastien Montagne
- RNA: Improve handling of ID refcounting by Pointer properties. - Bastien Montagne
Readfile
- Readfile: Optimization: Do not attempt to expand nullptr IDs. - Bastien Montagne
Refactor
- Refactor: GPU: Texture: Replace eGPUTextureFormat by TextureFormat - Clément Foucault
- Refactor: Cycles: Make attribute map a bit smaller when not using OSL - Brecht Van Lommel
- Refactor: Remove TODO and use constexpr when converting edit bones - Christoph Lendenfeld
- Refactor: Readfile: Modernize/cleanup library expand process. - Bastien Montagne
- Refactor: Geometry Nodes: use a single string identifier for closure/bundle items - Jacques Lucke
- Refactor: GPU: Use macros for TextureFormat conversions - Clément Foucault
- Refactor: Move ReportList definition from DNA to blenkernel - Hans Goudey
- Refactor: Reduce compositor context pure virtual methods - Omar Emara
- Refactor: Use generic name for compositor context IO methods - Omar Emara
- Refactor: Use Bounds for compositing region - Omar Emara
- Refactor: Mesh: Slightly simplify tangents API - Hans Goudey
- Refactor: Add default implementation for render_data - Omar Emara
- Refactor: Move pass name aliasing to context implementation - Omar Emara
- Refactor: Renames the zero extension mode to clip - Benjamin Beilharz
- Refactor: Logging: Move G.quiet to CLOG, replace some printfs - Brecht Van Lommel
- Refactor: Replace PBONE_SELECTED macro with functions - Christoph Lendenfeld
- Refactor: Geometry Nodes: simplify detection of syncable nodes - Jacques Lucke
- Refactor: Geometry Nodes: generalize stop condition when tracing bundles/closures - Jacques Lucke
- Refactor: Nodes: pass params as struct to bNodeType::insert_link - Jacques Lucke
- Refactor: Geometry Nodes: extract value tracing to separate file - Jacques Lucke
- Refactor: Nodes: return pointer instead of reference from in/output_by_identifier - Jacques Lucke
- Refactor: Cycles: Move block sizes into common header - Hugh Delaney
- Refactor: Nodes: allow passing already unique name/identifier to node copy function - Jacques Lucke
- Refactor: Nodes: pass tree type to supports_socket_type function for socket items - Jacques Lucke
- Refactor: Nodes: slightly generalize drawing node errors - Jacques Lucke
Render
- 🔸 Render: Add Media Type option - Omar Emara
Shaders
- 🔸 Shaders: Change default Blackbody node temperature to 6500K - Daniel Salazar
Shape Key
- 🔸 Shape Key: Move multiple selected elements - Pratik Borhade
- 🔸 Shape Keys: let Make Basis Key also update the "relative to" fields - Sybren A. Stüvel
- 🔸 Shape Keys: expand tooltip of Make Basis Key operator - Sybren A. Stüvel
Tests
- Tests: add new Curves datablock to IO report - Jesse Yurkovich
- Tests: Compositor: add UI test case for undo - Habib Gahbiche
- Tests: Add mask node tests - Ian Yoo
- Tests: include cattrs and fastjsonschema in bundled modules test - Ray Molenkamp
- Tests: Fix keying screen test - Ian Yoo
- Tests: Compositor: tests for Value Map node - Habib Gahbiche
- Tests: Add pixelate test - Ian Yoo
- Tests: Reduce glare streaks threshold - Ian Yoo
- Tests: Add options controlling verbosity of output for IO report - Jesse Yurkovich
- Tests: Add group node test for missing output node - Ian Yoo
- tests: Add basic performance test for bpy/RNA API. - Bastien Montagne
Tools
- Tools: include UTF8 string functions in code_clean utility - Campbell Barton
UI
- 🔸 UI: Improve consistency of node socket symbols - Leon Schittek
- 🔸 UI: Change default height of bookmark UIList - Trantor
- 🔸 UI: ARM Win GL Qualcomm driver Error Message Change - Harley Acheson
- 🔸 UI: Changes to the Platform Support Warning Message - Harley Acheson
- 🔸 UI: Rename "HDRI Preview Size" to "Reference Spheres Size" - Aaron Carlisle
- 🔸 UI: Fix VSE Channel Label Jiggling - Harley Acheson
- UI: Move block layout methods to namespace - Guillermo Venegas
- UI: List node in alphabetical order - Aaron Carlisle
- UI: respect UI_BUT_NO_UTF8 for text buttons - Campbell Barton
- 🔸 UI: improve percentage display for wm.progress API - Campbell Barton
- 🔸 UI: Hide Content Selectively for Full Screen Area - Harley Acheson
- 🔸 UI: Change "Full Screen Area" to "Focus Mode" - Harley Acheson
- 🔸 UI: Mesh Shear Status Bar Display Improvements - Harley Acheson
- 🔸 UI: Shrink/Fatten Status Bar Display - Harley Acheson
- 🔸 UI: Fade In Some Area Maintenance Overlays - Harley Acheson
- 🔸 UI: grey-out NDOF orbit center settings in "Fly mode" - Patryk-Skowronski
- 🔸 UI: Changed the UI text from "Click Drag" to "Drag" - Yahia
- 🔸 UI: Improve running jobs labels - Damien Picard
- 🔸 UI: BLF Use Custom NotDef Not Last Resort - Harley Acheson
- 🔸 UI: Add common theme properties panel; make preview range common - Nika Kutsniashvili
- 🔸 UI: Replace Top Bar Region Emboss with Fade - Harley Acheson
- 🔸 UI: Icons for playhead snapping - Christoph Lendenfeld
- 🔸 UI: Replace contractions with long-form text - Damien Picard
- 🔸 UI: Tree View: Rename with F2 - Pratik Borhade
USD
- USD: Remove the export_textures export operator property - Jesse Yurkovich
- 🔸 USD: Enable the allow_unicode export operator property by default - Jesse Yurkovich
Utilities
VSE
- 🔸 VSE: Better default values for newly added Gaussian Blur effect - Aras Pranckevicius
- 🔸 VSE: Clamp retiming key header values and snap drawing - John Kiril Swenson
- 🔸 VSE: Faster Histogram scope calculation - Aras Pranckevicius
- 🔸 VSE: delete keyframes from preview - Ramon Klauck
Vulkan
- 🔸 Vulkan: Update Qualcomm driver version check - Anthony Roberts
- Vulkan: Remove framebuffer slot assert - Jeroen Bakker
Win
- Win: Disable bug report button on crash dialog - Ray Molenkamp
- win64: Deps: fastjsonschema 2.21.1 + cattrs 25.1.1 - Ray Molenkamp
12 Comments
Hello. How you having a great day :), two questions if u don't mind. Q1 :I miss the old days when the upcoming big versions of Blender had clear roadmap and excitement. I know the jump to Blender 5.0 series won't be as exciting as 2.79 to 2.8, but what's the Plan for 5.0, no much buzz aroundt? Q2 : I'm excited about The Facial Rigging Project, is it still work in progress and when will it be finished along side the course?
studio.blender.org/projects/storm/production-logs/
Hi, Pablo. After all these years, can u tell us what was the reason for Pablo Dobarro to leave? and if there is a possibility for him to comeback one day to Blender Developement, We had so much progress when he was around, I only could imagine how much more progress sculpting, painting and retopo whould have been today ,it feels like a punsh in the gut that we lost such a great developer. Thanks.
Hola Pablo! I wanted to get your opinion on something. I know there's a plan to split the math node into individual operation nodes (add, multiply, etc.), but I feel this might not be the best approach. As someone not confident with math, the current drop-down helps me a lot in exploring and understanding operations by trying them out—almost like a self-teaching tool: I know math is needed, I'm not sure about the right operation, but I can find out by scrolling through them. Splitting into separate nodes would mean needing to know the right operation in advance, making trial and error slower and less intuitive. It favors experienced users but makes learning harder for beginners/people not good with math.
Pincel 3d para texturas?
Hi Pablo, did you seen the new surfacepsycho extension for the cad modeling and I/O in blender?
Hello, the right click context menu has options to mark and clear sharp and seam edges. These have no icons right now and I think it's be useful to add icons that use the same color as the edges in the 3d viewport, so blue for sharp, red for seam. Same could be added to the bevel weight side panel. Makes it easier to find the "make this edge not blue" button. Cheers!
Is it possible to get this addon. It could be a alternative to the default "tris to quads"
It can almost de-triangle a mesh, say if it was a game model.
github.com/Rulesobeyer/Optimized-Tris-to-Quads-Converter
Oi, Pablo!~
Just two things- Blender's handling for backfacing normals (the black spots from glossy normal maps) isn't the best, but there is no physically correct way to do it. Should I add more methods to do it? they all have different speeds and appearances.
Also- I almost had a heart attack when you mentioned the removal of map value!... but it's not map range. In any case, I'm still trying to decide, if I add a general node to generate a [selectable] curve between two values, if I just add dozens of formulas to the smoothing option in the already bloated map range node, or to make a totally separate node based on map range?
Hi Pablo, I'm currently watching the livestream, and I also watched the previous one — it's really amazing to see the Compositor getting the kind of treatment Geometry Nodes received. I don’t have anything else to say, but I’m really happy that the Compositor is finally getting the love it deserves. I made a right-click request for it a while ago, and it’s truly amazing to see how far it has come. Watching it ramp up like this gives me a lot of hope for what’s coming next in the Compositor! blender.community/c/rightclickselect/P5Z2/
Amazing show today! You mentioned about how the compositor is being prepared to be more portable (for things like texture processing) what is absolutely groundbreaking news and I'm beyond excited!!
One question about that. As we generate more images should the format of the image not be addressed better? Right now we can choose between a half float and full float RGBA. Extremely common uses cases such as a mask are not well supported by this. A proper image format would be an 8 bit single channel texture. (R_8 for the nerds)
So I'm just wondering, is there any word on properly supporting more GPU friendly (and just memory friendly) image formats.
Hi. Got a request, can we have a proper Hair shader for Eevee like in Cycles, pretty please ! :)