Create 3D animations, graphics, and even games with intuitive controls

Blender for Mac

Blender 3.0.0

  -  207.46 MB  -  Open Source
  • Latest Version

    Blender 4.3.0

  • Operating System

    Mac OS X 10.9 or later

  • User Rating

    Click to vote
  • Author / Product

    Blender Foundation / External Link

  • Filename

    blender-3.0.0-macos-x64.dmg

  • MD5 Checksum

    75aa566746eb997e6a8b9d580c643fce

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Blender 3.0.0.


For those interested in downloading the most recent release of Blender for Mac or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Blender 3.0.0 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Blender 3.0.0 Screenshot 1
  • Blender 3.0.0 Screenshot 2
  • Blender 3.0.0 Screenshot 3

What's new in this version:

Blender 3.0: Animation & Rigging:
- New keying set: Location, Rotation, Scale, and Custom Properties . Effectively, it combines the behaviour of Whole Character (selected bones only) (which keys loc/rot/scale/customprops, but only works in pose mode) with Location, Rotation, and Scale (which works in both object and pose mode, but doesn't key custom properties). This makes it possible to use one keying set for animating both characters and props.
- Ctrl+F in animation editors no longer blocks the UI with a popup, but simply shows & activates the channel search textbox .
- FCurve and NLA modifier properties can now be overridden . Previously an armature/object with overrides could get new FCurve/NLA modifiers, but the properties would be read-only. Now they can be edited.
- Keyframe removal (Default: Alt+I, Industry Compatible: Alt+S) now respects the active keying set  rB1364f1e3).
- Custom bone shapes now have full translation/rotation/scale options .
- The Asset Browser now supports rendering previews for Action datablocks . This is documented further in the 3.0 Asset Browser release notes.
- FCurves and all their keys can be selected by box- or circle-selecting the curve itself.
- Box selecting a curve selects all the keyframes of the curve.
- Ctrl + box selecting of the curve deselects all the keyframes of the curve.
- Shift + box selecting of the curve extends the keyframe selection, adding all the keyframes of the curves that were just selected to the selection.
- In all cases, if the selection area contains a key, nothing is performed on the curves themselves (the action only impacts the selected keys).
- Make Single User: in addition to object animation, now object data (mesh, curve, ...) animation can be made single user as well.
- FCurve modifiers are now correctly evaluated in Restrict Range Borders .
- When using FModifier Restrict Frame Range, the resulting influence was zero being exactly on Start / End range borders (so borders were exclusive). This made it impossible to chain FModifers together (forcing the user to specify values slightly below the desired border in following FModifiers). This is now corrected to be inclusive on Start / End range borders.

Motion Paths:
- New operator: Update All Visible Motion Paths (4de0e2e771). Besides having this handy new button, there is also a smaller, related improvement that updating the motion paths for an armature now updates all the bones motion paths simultaneously.

Weight Paint:
- The vertex group names are now stored in the mesh instead of the object, so it is impossible to have different names in different objects using the same mesh. When opening an older file only one of the available name lists would be chosen for each mesh (preferring the longest), and others are discarded.  rBfc32567c)

Pose Library:
- A new Pose Library has been added to Blender (9473c61b36, 28dc07a153, f3610a23d1, e01b52100f). It is based on the Asset Browser. For demo videos & a thorough explanation, see the Pose Library v2.0 blog post. The pose library is partially implemented as add-on (enabled by default; 34771cc9f5) such that studios can create their own alternative implementations.
- Converting poses from the old to the new pose library:
- To convert an old-style pose library to a new one, follow these steps:
- Make sure the active object is the character rig.
- In the Action Editor, select the pose library Action.
- In the sidebar (press N if not visible), choose "Convert Old-Style Pose Library".
- This will create an Action asset for each pose in the library.

Bendy Bones:
- Renamed confusingly named Curve Y and Scale Y channels to Z. Animation curves and drivers are automatically updated, but Python scripts have to be changed manually.
- Added actual Scale Y channels that produce non-uniform segment lengths. .
- Added simple toggles that replace up to 6-8 trivial drivers copying handle bone local scale to the corresponding properties.

Constraints:
- New "Local Space (Owner Orientation)" choice for Target Space of bone targets, which allows copying local transformation while adjusting for the difference in rest pose orientations aiming to produce the same global motion.
- Constraints now have Apply Constraint, Duplicate Constraint, and Copy To Selected operators in an "extras" menu, similar to modifiers .

Limit Rotation:
- The constraint now correctly removes shear before processing, and without any limits can be used for that explicit purpose.
- Added an Euler Order option similar to Copy Rotation.

Copy Transforms:
- New Remove Target Shear option for removing shear from the result of the Target Space transformation.
- More Mix mode options representing different ways to handle scale and location, resulting in a complete set of six "Before/After Original (Full/Aligned/Split Channels)" choices in addition to Replace.

Action:
- More Mix mode options to complete the same set of six "Before/After Original (Full/Aligned/Split Channels)" choices as in Copy Transforms.
- For constraints on bones, the default Mix mode is now "Before Original (Split Channels)".

Stretch To:
- The default Rotation Type for newly created constraints has been changed to Swing, which was introduced in 2.82 to replicate the behavior of the common Damped Track + Stretch To combination using just the Stretch To constraint.

Pose Sliding / In-Betweens Tools:
- These "In Betweens" tools have been improved :
- Push Pose from Rest Pose
- Relax Pose to Rest Pose
- Push Pose from Breakdown
- Relax Pose to Breakdown
- Pose Breakdowner

These all now use the same new sliding tool:
- Actual visual indication of the blending/pushing percentage applied.
- Mouse wrapping to allow for extrapolation without having to worry about the initial placement of the mouse. This also means these tools are actually usable when chosen from the menu.
- Precision mode by holding Shift.
- Snapping to 10% increments by holding Ctrl.
- Overshoot protection; by default the tool doesn't allow overshoot (lower than 0% or higher than 100%), and it can be enabled by pressing the E key.
- Bones are hidden while sliding, so the pose itself can be seen more clearly. This can be toggled by pressing the H key while using the tool.
- New Pose Sliding Operator - Blend To Neighbour (f7a492d460):
- Nudge the current pose to either the left or the right pose.
- Useful for dragging parts in an inbetween without losing your current pose.
- Found in Pose Mode under Pose » In-Betweens » Blend To Neighbour.
- Also available with the Alt⇧ ShiftE shortcut.

Blender 3.0: Asset Browser:
- Blender 3.0 includes a new editor: The Asset Browser. It makes working with reusable assets much easier and more visual.

Blender 3.0: Core:.
Blend file read & Write:
- The speed when opening a blend file linking many (thousands or more) data-blocks from a same library has been greatly improved (T89194, D11757, rBdb4fe8e3).
- Loading .blend files compressed using the Zstandard algorithm is now supported and saving files with compression enabled uses Zstandard instead of gzip (D5799, rB2ea66af7). This improves loading and saving speed while producing files of similar size

Collections & ViewLayers:
- The process re-syncing Layer collections in View layers to match with current Collections hierarchy in the scene has been enhanced to enable re-using as much as possible exiting layers. This avoid losing too often layers-specific settings (like the Exclude flag) when re-organizing the collections, and allows for future improvements like adding custom properties to layers (D12016, rBb18d0244, rB3db37075).

Library Overrides:
- Some long-standing technical dept was addressed in how insertion of local modifiers or collections is handled in local overrides of objects. See T82160 for details (D13222, rBfa6a913e, rBd6ea881a, rB33c5e7bc, rBec71054a).
- Forward Incompatibility Breakage
- This means that loading blend files saved in Blender 3.0 in an older version of Blender will loose data (namely, inserted local modifiers, constraints etc. may be lost or misplaced).
- Basic RNA API has been extended and should now allow all necessary operations (see T86656 for details).
- Lots of polishing and fixes was done, in particular in the (auto-)resync process, and to enhance the support of complicated features like point caches.

Proxy Removal:
- Proxies are being removed from Blender in the 3.x series. For 3.0 this process includes:
- Removal of operators to create proxies from linked data-blocks.
- Automatic conversion of proxies to library overrides on file load.
- Proxy evaluation code remains for the time being, and it is still possible to skip automatic conversion of proxies in existing .blend files by disabling the Proxy to Override Auto Conversion user preferences Experimental setting.

Blender 3.0: EEVEE:
Attribute Node:
- Custom mesh attributes (generated for example by Geometry Nodes) are now accessible via the Attribute node. (03013d19d1)

Wavelength Node:
- Support for wavelength node has been added to EEVEE, earlier it was Cycles only. It is now similar to Blackbody node, which uses a sampled color map internally. a43c7538b8
- Performance:
- Performance when editing huge mesh is improved. Changes in many areas are made resulting in an improvement of 2-3 times depending on the executed operation.

Blender 3.0: Grease Pencil:
Line Art:
- Speed up tile access. (6ad4b8b76a)
- Better tolerance to faces perpendicular to view. (5b176b665b)
- Threaded object loading. (1b07b7a01b)
- Cached calculation for modifiers that are in the same stack. (247abdbf24)
- Loose edge type and related chaining improvements. (841df83184)
- Option to filter feature line using freestyle face mark. (3558bb8e35)
- Occlussion effectiveness support for mesh material. (cf21ba37cf)
- Option to filter feature line with collection intersection masks. (d1e0059ed1)
- Camera overscan allows line art effective range to go beyond image frame, preventing strokes from ending right at the border. (8e9d06f58e)
- Automatic crease with flat/smooth surfaces, which allows crease detection to follow smooth/flat shading and auto-smooth configuration. (c1cf66bff3)
- Stroke offset function, allow strokes to be interacting with scene depth without showing in-front of everything.(c3ef1c15c3)
- Custom camera allows line art to compute strokes from other cameras instead of the active one.(efbd3642ef)
- Trimming edges right at the image bord

Operators:
- New operator to bake GPencil transformed strokes into a new GPencil object. (06f86dd4d9)
- Multiframe support added to Reproject operator. (e1acefd45e)
- Multiframe support added to Move to Layer operator. (e4cebec647)
- Mask layer list now can be reordered. (8032bd98d8)
- Now Blank objects include Layer and Material by default. (5cb1e18f72)
- Added support to convert Text to Grease Pencil object. (41820e8a8e)
- New Bracket keymaps ([, ]) to increase and decrease brush size. (c58bf31aed)
- New operator to Copy materials to other grease pencil object. Can copy Active or All materials. (960535ddf3), (f6cb9433d4)
- Layer Copy to Object has been renamed to Copy Layer to Object and allows to copy all layers at once. (960535ddf3), (f6cb9433d4)
- New operator to normalize the Thickness or the Opacity of Strokes. (f944121700)
- New Select Random operator. (a7aeec2655)
- New Convert Mesh to Grease Pencil copy the Vertex Groups with weights. (88dc274d05)
- Automerge when drawing strokes has been improved for better join when thickness is very different. (ae334532cf)

Tools:
- New Dilate parameter for Fill brush to expand filled area to fill small gaps. (f8f6e0b256)
- Annotations: Restore the Placement parameter in 2D Editors. (6ee14c966d)

UI:
- The Topbar Leak Size parameter has been replaced by new Dilate parameter. Leak Size has been moved to Advanced panel. (f8f6e0b256)
- Removed duplicated B keymap to insert Blank keyframe in Drawing Mode. This was old keymap and it has been replaced with I menu. (0467979425)
- Annotations now display Stabilizer parameters in topbar and also in VSE. (0a83f32d79)
- New Use Lights option now available for when creating line art GPencil objects to allow convenient access to desired effect. (45b28c0f88)
- New option in Topbar to define the type of caps t) used in new strokes. (c1730ed165)
- New keymap Shift+Ctrl+Mto merge layer. (27b9cb7a1e)
- Added buttons to move Up and Down Vertex Groups in the list. (2b64b4d90d)
- Use Scale Thickness option is now enabled by default in 2D template. (6fc92b296f)
- List of modifiers reorganized moving some of them to new Modify column. (9cf593f305)
- Modifiers and VFX:
- New Vertex Weight modifiers to generate weights base on Proximity or Angle on the fly to be used in any modifier. (29b65f5345, 368b56c9a1)
- New Randomize options for Offset modifier. (6a2bc40e01)
- Now Offset modifier uses the weights in the randomize parameters. (b73dc36859)
- New Length modifier that allows modification to stroke length in percentage to its own length or in geometry space (cd16123761), also supports extending strokes based on curvature (25e548c96b).
- New Dot-dash modifier that allows generating dot-dash lines and assign different materials to each segments. (a2c5c2b406)

Compositing:
- Added a new option to use masks during view layer render (e459a25e6c). This toggle can be found in the "Layers" -> "Relations" panel called "Use Masks in Render". The option is disabled if there is no view layer selected.

Blender 3.0: Modeling:
Modifiers:
- Weld: new "Loose Edges" option that allows us to collapse only the edges without connected faces.
- Surface Deform: new Sparse Bind option that omits recording bind data for vertices excluded by the vertex group at the time of bind, in order to save memory and slightly speed up modifier evaluation.
- Mesh Cache: support for blending influence using vertex groups (c8f80453d5).

General Changes:
- Laplacian smooth now supports N-gons
- Support flipping sides in mesh bisect
- Boolean rename "Self" option to "Self Intersection"

Knife Tool:
- The 2021 GSoC Knife Tool project made a number of improvements to the knife tool, which are now incorporated in this release

New Features:
- Constrained Angle Mode Improvements
- Added Knife Tool setting to control snapping angle increment
- Added support for entering snapping angle increment via number keys
- Added a relative constrained angle mode (A key, with R to cycle through possible reference edges)
- Added Knife Tool setting for constrained angle default mode
- Snapping to Global and Local Orientation
- Press X, Y or Z to snap cut line to respective global axis
- Pressing the same key again will snap to local axis
- Respects scene orientation setting if set, allowing for custom orientation
- Visible Distance and Angle Measurements
- Pressing S will enable measurements
- Pressing S repeatedly will cycle between three modes - Only Distance, Only Angles, Both
- Shows length of current cut segment
- Shows angle between current cut segment and previous cut segment or mesh edge
- Shows angle between current cut segment and any snapped to cut segment or mesh edge
- Undo Capability
- Press Ctrl-Z to undo previous cut segment
- Starting point for current cut segment is adjusted accordingly
- If cut is a drag cut the entire drag cut is undone
- X-Ray Mode
- Press V to toggle depth checking for cut segment drawing code
- Multi-Object Edit Mode
- Added support for multi-object edit mode to Knife Tool
- Cuts can be made across objects and from the geometry of one object to another
- Key Remappings

Blender 3.0: Nodes & Physics:
Geometry Nodes:
- In Blender 3.0, geometry nodes has been extended with a re-imagined method for designing node groups, a new attribute system, many new nodes for interaction with curves, text data, instances, and much more. In bold you can find the names of about 100 newly added nodes.

Fields:
- Geometry nodes makes use of a new concept for passing around data and functions. Operations can be built from basic nodes and simply connected together, removing the need for named attributes as a way to store intermediate data, and removing the need for special "Attribute" nodes for simple operations. With fields it's much easier to build node groups for higher level concepts that work together better than before.
- Dashed lines are used to represent the flow of functions while data-flow node links look the same as before
- Socket shapes are used to visualize whether inputs and outputs can be fields (61f3d4eb7c).
- Circle sockets only support single values
- Diamond sockets support fields. If they have a dot in the middle, then they are only a single value currently though.
- The Set Position node simply sets a geometry's position attribute to its input
- The Position node outputs the position of the geometry it is evaluated for
- Other built-in attributes can be accessed and set by specific nodes

Most nodes have been updated to make use of new concepts like selections and field inputs:
- The Geometry Proximity node replaces the attribute proximity node (9f0a3a99ab).
- The Align Euler to Vector and Rotate Euler node are now function nodes that can affect any rotation
- The Edge Split node now has a selection input, allowing any edges to be selected procedurally

The ability to work on data without attributes means texture nodes can be ported from the shader editor:
- Noise Texture (fc4f82d200)
- Gradient Texture (d4f1bc5f39)
- White Noise Texture (2341ca990c)
- Voronoi Texture (104887800c, 4468c34378)
- Checker Texture (2537b32392)
- Magic Texture (56bf34aa17)
- Wave Texture (67dbb42236)
- Musgrave Texture (729b2d026d)
- Improved Attribute Workflow
- The attribute workflow in geometry nodes has been completely redesigned. While the old system relied on addressing attributes by name, attribute data can now be passed around with node links just like data in the node tree. (bf47fb40fd).
- As an example, the Random Value node replaces the existing Attribute Randomize node, and can simply be connected to any input to randomize it.
- The Capture Attribute node stores data from its input on a geometry so it is carried forward to other nodes, allowing the use of the same data in a different context (bf47fb40fd).
- For example, this node makes it possible to use data only available on curves, like the output of the Curve Parameter node, after converting a curve to a mesh.
- The modifier interface can now interact directly with named attributes
- A new attribute/value toggle on exposed inputs allows quick switching between attribute and single value inputs (8e21d528ca, 797064544e).
- Named attributes can be created by connecting them to the group output node and choosing a name in the modifier
- Attribute search is supported in the modifier
- A new Transfer Attribute node can copy attribute values between geometries with various methods
- The node includes an "Index" method to retrieve a value from the target geometry at a certain index
- The Attributes Panel in the property editor shows all generic attributes available on a mesh
- Vertex group names are now stored on meshes rather than objects, which makes working with them in geometry nodes more predictable
- The Attribute Statistic node outputs values like average, min, and max for an attribute
- There is now a special domain interpolation method for selections (boolean attributes) to make the conversions work like they do in edit mode (5841f8656d).
- The id attribute is now built-in, but optional, instead of just a reserved name (40c3b8836b).
- The ID input node outputs the id attribute if it exists, otherwise the index (7d3d09b69c, 9beb5e38a9).

Instances:
- The way geometry nodes works with instances has been improved, to make it more intuitive and faster. (Blender Manual)
- Geometry can now be instanced directly, without a separate object (5a9a16334c).
- When the same geometry is instanced many times, nodes can often only do the calculation once on the original geometry, rather than realizing instances and doing it many times (44e4f077a9).
- This can result in a large performance improvement in many cases. For example, each "A" character created by the String to Curves node in a long paragraph of text only has to be filled a single time by the Curve Fill node.
- Mesh modifiers after geometry nodes no longer implicitly realize instances or convert point clouds to meshes
- Instances are now exposed properly to nodes, and aren't converted to real geometry implicitly.
- The Realize Instances node can explicitly convert instances into real geometry
- Because instances each have their own transformation, there are special nodes for transforming instances
- The Rotate Instances node rotates instances in their local space or global space
- The Scale Instances node scales an instance from a center point, in local or global space
- The Translate Instances node moves instances along the three axes, also relative to their current transform, or globally. (9d49fc2ba0).
- The Instances to Points node converts the origins of a geometry's instances into a point cloud
- A selection boolean input is added to to Instance on Points
- The Object Info node can now optionally output an instance instead of real geometry
- The instances in the output of the Collection Info node are sorted alphabetically
- Known Issue: Currently updating an object name does not cause a reevaluation of the node tree

Curve Nodes:
- Curve data is now supported in the node tree
- The Curve to Mesh node extrudes a profile curve along another curve
- A "Fill Caps" option allows generating an N-gon at the ends of the profile, producing a manifold mesh
- Custom attributes are automatically transferred from the curve to the mesh output
- The Resample Curve node distributes evenly spaced segments along a curve
- The Fill Curve node creates a filled 2D mesh from an input curve
- The Subdivide Curve node adds new control points between existing control points
- The Sample Curve node outputs values from the curve at a given factor or length along it
- The Trim Curve node makes a curve shorter by discarding sections at the start and end
- The Fillet Curve node rounds corners of a curve with Bezier or Poly control points
- The Mesh to Curve node creates curve poly splines from mesh edges
- The Endpoint Selection node outputs a selection for a number of points at the start and end of each spline
- The Curve to Points node creates a point cloud with data necessary for instancing along the curve

There are field inputs specifically for curve data:
- The Curve Parameter node outputs how far along the spline each point is as a 0-1 factor
- The Curve Tangent node outputs the direction of the curve at each control point (4d51af68ad).
- The Normal node outputs curve normals at each control point (05ce5276db).
- The Handle Type Selection outputs which handles have a certain type (1f8485ae82).
- The Set Handle Type node changes the left or right handles of Bezier control points (0e8d1c6bcf).
- The Curve Length node outputs the total length of all splines in the curve (ddd4b2b785).
- The Reverse Curve node reverses the order of all of a curve's control points (4a540b9b48).
- The type (Bezier, Poly, or NURBS) of each spline can be changed with the Set Spline Type node (0f45576590).
- Curves fully support the existing attribute system.
- Splines have resolution and cyclic builtin attributes.
- Control points have position, radius, tilt, handle_left and handle_right built-in attributes (1892b131ed, 81f552e9ad).
- Attributes with any name or data type can be created or removed on splines or control points (627f357127).
- Attributes can be interpolated between the two curve domains (c97b6215a3).
- Curve primitive nodes have been added for parametric addition of curve data directly.
- Bezier Segment (8884d2d61b).
- Quadratic Bezier Segment (d3788207aa).
- Quadrilateral (2a41ab5e6c).
- Circle (c1fc180861).
- Spiral (21ebee2580).
- Star (86c6769e20).
- Line (29d6750134).
- The geometry nodes modifier is now supported on curve (and text) object types (b9febb54a4).
- Curve data from curve objects without a geometry nodes modifier will also display in the spreadsheet.

General:
- Raycast node projects lines to a mesh, returning information about the hit location to attributes (4b673ebb99, 0a6cf3ed0c).
- Delete Geometry node removes parts of geometry, depending on the domain of the selection attribute (464797078d, e5a1cadb2f)
- Switch node can efficiently select between two inputs of any type (799f532f46, 653bbaa246).
- Convex Hull node outputs a convex mesh containing all of the input points (df2a19eac7).
- Separate Components node splits a geometry set into an output for each data type (ed4b2ba75a).
- RGB Curves and Vector Curves nodes from shader nodes are supported in geometry node trees (8cd506639a).
- Float to integer conversion can be done more explicitly with the Float to Integer node (fd0370acc2).
- Intermediate geometry data can be viewed in the spreadsheet with the Viewer node (9009ac2c3d).
- This also replaces the screen icon in the header of every node.
- Some mesh primitive nodes have been improved:
- The Cube node has been updated to allow a separate size and vertex count in each dimension (b44406f963).
- The Cone and Cylinder nodes have been updated with options for the amount of side and fill segments (54927caf4f).
- The Index node outputs the index of each element when evaluating a field (bf47fb40fd).
- The Normal node outputs mesh normals, normalized on every domain, including faces and vertices (bf47fb40fd).
- Mesh to Points and Points to Vertices nodes allow converting directly between point clouds and mesh elements (262b211856).
- The old Point Separate node was updated to become more general as the Separate Geometry node (9c00486451).
- There are more basic input nodes
- A new Color input node is an easier way to directly input a color (f7ef68514b).
- There are now Boolean and Integer input nodes (781289e31f).

Text Nodes:
- The String to Curves node generates curve instances for a text paragraph, like the text object type but procedural (be16794ba1).
- Because the node creates curve instances, performance can be much better than the existing text object.
- String manipulation nodes allow creating text for the string to curve node procedurally (29e3545194).
- String Length Outputs length of a string
- Slice String Outputs part of a string
- Value to String Converts a value to a string
- Join Strings Concatenates multiple strings with a delimiter
- Replace String A node-based find and replace operation (a83b405a45)
- The Special Characters node can be used to build a paragraph with multiple lines (5c0017e85a).

Performance:
- Geometry nodes has a new, faster evaluation system (b084b57fbf).
- Multiple branches of the node tree are now executed in parallel where possible.
- Lazy evaluation is supported, so where possible, only the inputs and outputs that are required are computed.
- For example, the Separate Geometry node can be twice as fast if only one output is used and the Switch node only computes the input that is actually used.
- All field evaluation is parallelized, so computations for many geometry elements will always be multi-threaded (e6ca054590).
- The Instance on Points node now executes faster, especially when multiple CPU threads are available (518c5ce4cd, 617954c143).
- Transforming meshes with the Transform node is now much faster in some situations (17b09b509c).

Materials:
- An object's material slots can change during evaluation of geometry nodes (1a81d268a1).
- Joining geometries from other objects will now properly add their materials to the modifier object (5e6f3b8564).
- The Set Material node sets the material for a selection of faces (f41a753e75, 09f14b38f2).
- Though volumes only support a single material, it can also be changed (348d7c35a9).
- The Replace Material node replaces an existing material on a geometry with another (c154b078b5).
- The Material Selection node creates a boolean mask of the parts of a geometry with a certain material (08b0de45f3, 09f14b38f2).
- The Material Input node allows using the same material in multiple places (3e3ecc329c).
- The built-in material_index attribute on meshes can be accessed with the Material Index input node (24cc552cf4).

Volumes:
- The geometry nodes modifier is now supported on volume objects (8c0f7d1772).
- Known Issue: Currently EEVEE cannot display procedurally generated volumes, converting the volume to a mesh and using a volume shader does work though

User Interface:
Node Editor:
- The node editor now has an "Overlays" popover, with options for displaying wire colors and annotations (9b1b4b9e32).
- The editor's view now pans automatically when links or nodes are dragged to the edges (a1cc7042a7, 19da434e9c).
- Node editor UI style changes
- There were many changes to the style of nodes themselves, to increase clarity and make them look nicer (4db4a97355).
- The background grid is now displayed with dots instead of lines (e463d2c16f).
- The breadcrumbs to show the path of the node tree are now drawn differently, on the top left (3371a4c472).
- On node frames, the label text is only displayed when there is a label set (8f04ddbbc6).
- Node links between different types with no possible implicit conversion now turn red to indicate the error (Geometry Nodes) (65244ac1c3).
- Socket labels on nodes like "Object Info" are hidden to give more space to data-block names (ec98bb318b).
- Node links with sockets outside the view are dimmed, to remove visual noise from long links (c27ef1e9e8).
- Parent node trees are no longer displayed behind a green background when editing a nested node group (919e513fa8).
- Wire colors overlay to match the socket's color they are connected to. (9b1b4b9e32).
- Spreadsheet Editor:
- The spreadsheet now has a region on the left to quickly switch between geometry components or domains (ae085e301c).
- Row filters were added to a right property region, to allow removing rows from the view (f9aea19d98).

Modifier:
- Node warnings are also displayed in the modifier, so they don't get lost in the node tree

Blender 3.0: Pipeline, Assets & IO:
Packing:
- Packing linked libraries is now accessible via the File menu
- Cleanup of the other External Data options

Alembic:
- Animated UV maps are now exported to Alembic .
- Generated mesh vertex coordinates (also known as ORCOs) are now exported to and imported from Alembic . They're stored in .arbGeomParams/Pref in the Alembic file.
- Per vertex UV maps are now imported from Alembic (3385c04598). Such UV maps can be defined by other software to reduce file size when the mesh is split according to UV islands. Blender, however, still stores the UV data per face corner.
- Non functional "Renderable Objects only" option has been removed (834e87af7b), has been superseeded by the following:
- New option to set evaluation mode to Render or Viewport (for visibility, modifiers) in 8f5a4a2453
- New option to always add a cache reader when importing files (5b97c00e9f). This simplifies workflows for updating objects after imports if they change in the cache.
- USD Importer:
- USD files can now be imported into Blender . The USD importer works in a similar fashion as the Alembic importer.

glTF 2.0:
Importer:
- Import custom properties from default scene
- Fix issue involving flipped bone Z dir
- Avoid traceback when trying to import some invalid glTF 2.0 files

Exporter:
- Add option to keep original texture files
- Do not export glTF internal settings as extras
- Remove some channel animation if bone is not animated  rBAa8c700d, rBA45132ba)
- Draco: more explicit error message
- Fix bug when invalid shapekey driver  rBAcd70923)
- Fix driver export when shapekey as a dot in name
- Fix default date type at numpy array creation
- Make sure that addon that changes root gltf are taken into account
- Don't erase empty dict extras
- Add merge_animation_extensions_hook
- Do not export empty node when camera or light export is disable
- Fix crash when trying to export some muted driver(s)
- Change order of format option
- Cleanup: use inverted_safe on matrices
- Validate meshes before export
- Better 'selection only' management
- Fix animation export for objects parented to bones
- Cleanup object animation curves when animation is constant
- Change after change on vertex groups data now on mesh
- Avoid issue with setting frame with python v >= 3.10
- and other changes related to:
- Python API & Text Editor
- Render & Cycles
- Sculpt, Paint, Texture
- User Interface
- VFX & Video
- Virtual Reality
- Add-ons
- Compatibility