No Branch/Tag Specified
main
temp-sculpt-dyntopo
refactor-mesh-face-generic
blender-v3.3-release
refactor-mesh-corners-generic
refactor-mesh-sharp-face-generic
gpencil-new-data-proposal
overlay-next
temp-sculpt-roll-mapping
sculpt-dev
tmp-volume-matrix-api-update
tmp-eevee-shadow-commit-mp
universal-scene-description
cycles_path_guiding
temp-vulkan-descriptor-sets
tmp-eevee-shadow-commit
temp-angavrilov
asset-shelf
brush-assets-project
tmp-workbench-rewrite2
temp-T101739-fix-seam-bleeding-non-manifold
tmp-mak-012623
temp-bundled-assets
asset-lite-greasepencil
temp-pbvh-split
temp-pbvh-texpaint-automasking
microfacet_hair
tmp-worbench-rewrite2-optimizations
temp-offset-array-ref
blender-v2.93-release
blender-projects-basics
temp-pbvh-seam-texturing-tweaks
temp-nodes-group-declarations
refactor-mesh-sharp-edge-generic
temp-asset-library-all
refactor-mesh-uv-map-generic
refactor-mesh-position-generic
temp-T102440
temp-rbf-pose-blender
geometry-nodes-tetrahedralization
nodes-matrix-types
temp-xr-painting
blender-v3.4-release
geometry-nodes-simulation
bli-matrix-template
temp-linux-35x-libs
refactor-mesh-corner-normals-lazy
temp-py-gpubatch-draw-advanced
xr-dev
temp-vulkan-shader
bevelv2
soc-2022-soft-bodies
arcpatch-D16436
tmp-dynamic-usd
temp-image-engine
tmp-vfx-platform-2023
soc-2022-many-lights-sampling
tracking_tools
nla-scale-fix
principled-v2
temp-ui-cpp
temp-ghost-vulkan
tmp-libs-2.93-lts
temp-T97352-3d-texturing-seam-bleeding-b2
temp-xr-virtual-camera-experiment
temp-vse-retiming-tool
gpencil-next
temp-sculpt-brush-channel
asset-browser-grid-view
temp-asset-representation
temp-gpencil-automask
tmp_libs_34
temp-T101905-gpu-backend-argument
node-add-asset-menu
temp-collection-objects-link-multiple
temp-texture-painting-gpu
tmp-workbench-perf-experiment
tmp_usd_import_unbound_mtls
tmp-drw-split-matrix
temp-sculpt-normals-masking
temp-sculpt-cavity-mask
temp-pbvh-vbos
tmp-usd-alab-v2-T100452
refactor-mesh-selection-generic
temp-T96708-brush-texture-refactoring
temp-chunk-list
feature-imformat
temp-geometry-nodes-evaluator-refactor
refactor-mesh-bevel-weight-generic
temp-chunked-list
temp-outliner-new-element-storage
refactor-mesh-remove-pointers
soc-2022-text-usability
refactor-mesh-material-index-generic
drw-manager-next
refactor-mesh-hide-generic
blender-v3.2-release
sculpt_curve_collisions
temp-anim-editors-redo-panel-D14960-D14977
retopo_transform
temp-libepoxy
temp-T99046-platform-reference-images
geometry-nodes-rigid-body-integration
file-browser-grid-view
temp-legacy-mesh-format-option
arcpatch-D14645
soc-2022-waveform-drawing
temp-T95933-object-mode-curve-selection
temp-deform-curves-on-surface
cycles_oneapi
temp-viewport-compositor-merge
temp-texpaint-automasking
temp-deform-curves-with-surface
asset-greasepencil
temp-T99046-render-test-increase-fail-threshold
temp-T98708-gpu-conservative-depth
lineart-shadow
temp-lineart-contained
cleanup-id-override-const
temp-T98375-share-gpu-textures
wintab
temp-T97352-3d-texturing-seam-bleeding
temp-T97905-compositor-meta-data
lineart-cas-2
temp-T97272
temp-T97907-compositor-meta-data
temp-T96952
tmp-usd-mak-c87f6242
temp-outliner-library-override-hierarchy
lineart-object-load
tmp-eevee-next-merge
draw-deferred-compilation-experiment
soc-2021-porting-modifiers-to-nodes-remesh-voxel
blender-v2.83-release
tmp_lib_update_32
temp-mesh-cpp
temp-viewport-compositor-compiler
temp-T96710-pbvh-pixels
tmp-new-gpu-codegen
devirtualizer
temp-T96709-painting-target
temp-collection-assets
temp-lineart-embree
temp-multi-function-eval-varray
temp-sculpt-colors
soc-2021-curves
blender-v3.1-release
temp-vertex-paint
temp-vse-channels-edge-panning
eevee-rewrite
temp-library-overrides-outliner
cycles_hydra
temp-3d-texturing-brush-b
temp-abc-features
tmp-transform-navigate
temp-image-buffer-rasterizer
soc-2021-porting-modifiers-to-nodes-remesh-blocks
temp-3d-texture-brush-prototype
temp-fix-normals-custom-data
viewport-compositor
bli-math-basic-types
soc-2021-simulation-display
greasepencil-object
temp-license-header-spdx
KTX_support
gsoc-2021-porting-modifiers-to-nodes-solidify
2d
gltf_vtree
soc-2021-porting-modifiers-to-nodes-decimate
temp-T95279-remap-referenced-data
temp-gpu-image-engine
tmp-eevee-rewrite-compilation-error
draw-viewport-data
temp-T94900-b
temp-T94900-gpu-viewport-default-layers
temp-T94185-id-remapper-ui
tmp-workbench-shader-create-infos
blender-v3.0-release
temp-geometry-nodes-extrude-mesh
tmp-T95052
tmp-gpu-polyline-shaders
tmp-gpu-shader-descriptor-2
temp-usd-prev-export2
tmp-core-id-remap-test-cases
temp-vert-normals-cleanup
temp-move-geometry-to-cpp
tmp-vector-template
drw-gpu-wrapper
temp-geometry-nodes-extrude-and-scale
temp-scale-elements-node-test
temp-usd-udim-import
temp-copy-on-write
temp-T94185-id_remapping-experiment-a
temp-llvm-testing
nurbs-opencascade
temp-usd-preview-surf-export
soc-2021-uv-edge-select-support
T93558
temp-gpu-texture-partial-updates
gpu-shader-descriptor
temp-geometry-nodes-text
tmp-vulkan
temp-T90535-usd-alab-material-import
node-tree-update-refactor
temp-sample-sound-node
temp-interface-region-search-cpp
temp-enum-socket
temp-link-portals
temp-unity-build-test
geometry-nodes-level-set-nodes
temp-virtual-array-value-type
soc-2020-io-performance
studio-sprite-fright
temp-cycles-source-reorganize
asset-browser-snap-dragging
temp-python-zstandard
soc-2021-porting-modifiers-to-nodes-merge-by-distance
temp-compositor-cleanups
temp-eevee-gpencil-rewrite
temp-vse-handles
temp-ui-tweaks
xr-controller-support
temp-node-common-cpp
temp-varray-get-set-multiple
soc-2021-uv-editor-improvements
temp-geometry-nodes-output-attributes
soc-2021-knife-tools
temp_test_sc_keymap
cycles-x
temp-field-visualization
soc-2021-curve-fillet
temp_bmesh_multires
temp-cocoa-scroll-acceleration-fix
temp-socket-decl-refactor
fluid-mantaflow-gpu
soc-2021-vse-strip-thumbnails
temp-noise-nodes-cpp
temp-compositor-canvas
T90952
temp-parallel-multi-function
temp-geometry-nodes-fields
grab_walk_fix
soc-2021-adaptive-cloth
temp-geometry-nodes-fields--fields-jacques
temp-cpp-ghc-filesystem
temp-geometry-nodes-fields--fields
temp-geometry-nodes-fields--anonymous-attributes
refactor-idprop-ui-data
compositor-full-frame
temp-runtime-node-def
temp-geometry-nodes-fields-prototype-visualization
temp-geometry-nodes-fields-prototype
temp-multi-function-procedure
soc-2021-porting-modifiers-to-nodes_all
cycles_texture_cache
experimental-build
cycles_procedural_api
soc-2021-porting-modifiers-to-nodes-extrude-and-move
soc-2021-porting-modifiers-to-nodes-extrude
temp-geometry-nodes-expandable-geometry-socket-prototype
fluid-mantaflow-2d
windows_make_docpy
usd-importer-T81257-merge
nodes-update-readonly-tag
geometry-nodes-closest-points
tmp-buildbot-gcc-10
soc-2021-geometry-nodes-regression-test
node-group-single-socket-nodes
curve-nodes-modifier
temp-geometry-nodes-curve-sample
geometry-nodes-unnamed-attributes
temp-nodes-intersect-alt-key
tmp_arcpath-D11868
refactor-vertex-group-names
temp-gpencil-bezier-stroke-type
temp-gpu-uniform-builtin-structs
wintab_fallback_walknav
temp-socket-inspection
temp-long-link-dimming
fixed_width_integers
lineart-bvh
temp-gpencil-camera-reproject
temp-gpu-push-constants
temp-attribute-processor
temp-cpp-type-cleanup
temp-geometry-nodes-curve-deform-node
wintab-logging
fix-tablet-walk
geometry-nodes-raycast
temp-spreadsheet-row-filter
lineart-fn-cached
temp-compact-node-prototype
asset-browser
geometry-nodes-curve-to-points-node
node-editor-edge-pan
eevee-gpencil
asset-system-filelist
temp-geometry-nodes-viewer-node
lineart-fn-thread-loading
tmp-buildbot-cleanup
temp-gpencil-masking
temp-ffmpeg-4.4
temp-attributes-panel
profiler-editor
FixT87160_DSE_Channel_Selection
temp-interface-cpp
geometry-nodes-curve-support
info-editor-cpp
temp-attribute-transfer-node
virtual-array-attributes
temp-pose-slide-D9054
spreadsheet-active-node
ui-asset-view-template
temp-node-tree-pages-prototype
override-outliner-view
temp-geometry-nodes-processor-prototype
temp-any-instead-of-variant
temp-unreachable-abort
temp-spreadsheet-instances
temp-geometry-nodes-instances-api-v2
temp-geometry-nodes-instances-attributes
geometry-nodes-mesh-primitives
temp-asset-tools-prototype
temp-geometry-nodes-mesh-primitive-line
lanpr-under-gp
temp_D10504-2_nla_keyframe_remap_upper_strips
blender-v2.92-release
usd-importer-T81257
temp-spreadsheet-editor-python-prototyping
temp-spreadsheet-editor
override-refactor-tmp-2
temp-derived-node-tree-refactor
T85799
tracking_scopes
temp-icons-fixes
temp_D10504_nla_keyframe_remap_upper_strips
temp-weight_mirror
temp_T76472_graph_editor_fcurve_extrapolation
eevee-closure-lib-cleanup
eevee-dof-refactor
eevee-probe-roughness-fix
eevee-ggx-lut-fix
df0bce3f7d0
temp-geometry-nodes-instances-api
tmp-ocio-v2
temp-nodes-redesign
tracking_proportional_editing_v2
blender-v2.91-release
temp-uv-face-select-no-thresh-when-inside
temp-D10103-nla_support_strip_overlap_during_transform
fracture_modifier
temp-point-distribution-refactor-experiment
temp-experimental-cpp-math-refactor
vfx-clip-ui-update
tmp-T82230-nla_remove_hold_reset_behavior
temp-D8687-directly_select_fcurves
geometry-nodes
soc-2020-testing-frameworks
geometry-nodes-point-separate-node
temp-nla-strip-alignment
temp-atomics-int16
geometry-nodes-deduplicate-float-math
asset-metadata
geometry-nodes-active-modifier-drawing
attribute-accessor
geometry-nodes-attribute-nodes
temp-T82588-box-select-invisible-keys
greasepencil-edit-curve
codesign_error_tracker
outliner-cpp-refactor
temp-fix-headerless-panels-switch-windows
temp-gpencil-fading-modifier
temp-D8915-copy-rotation-remove-sheer
geometry-nodes-boolean-node
temp-T81874-box-select-active-keyframe
geometry-nodes-transform-node
temp-trimesh-sculpt
geometry-tree-evaluation
fcurve-modifier-panels
temp-fcurve-key-insert-follow-curve
temp-fcurve-active-keyframe-D7737
mesh-to-volume-modifier
blender-v2.90-release
soc-2020-fluid-tools
property-search-ui-v2
tmp-T80603
soc-2020-greasepencil-curve
tmp-gldebuglayer
tmp-gltexture
soc-2020-custom-menus
active-fcurve-keyframe
soc-2020-soft-body
newboolean
fail-on-memleak
soc-2020-outliner
soc-2020-production-ready-light-tree-2
soc-2020-info-editor
property-search-ui
temp-ui-button-type-refactor
soc-2020-production-ready-light-tree
particle-solver-dev
tmp-gpu-context-isolation
soc-2020-xr-input
temp-remesh-octree
mac_arm64
tmp-eevee-glsl-cleanup
tmp-pointcloud-render
buildbot-lts
asset-engine--archived
asset-uuid--archived
eevee-motionblur-object
modifier-panels-ui
temp-cycles-tbb
wm-drag-drop-rewrite
temp-lanpr-review
gsoc-2018-many-light-sampling
tmp-eevee-material-refactor
tmp-widget-opti
tmp-texture-sampler
xr-world-navigation
blender-v2.82-release
node-tree-ref
simulation-access-modifier
blenloader-decentralization
temp-test-point-cloud-simulation-depsgraph-integration
functions
builtin-simulation-nodes
performance-test
obj-import-experiments
soc-2019-openxr
vr_scene_inspection
blenloader-api
tmp-workbench-rewrite
id-ensure-unique-memory-address
simulation-tree
greasepencil-refactor
draw-colormanagement
temp-gizmo-decoupled-redraws
fluid-mantaflow
blender-v2.81-release
tmp-overlay-engine
soc-2019-bevel-profiles
temp-npr-gpencil-modifiers
soc-2019-npr
temp-gpencil-drw-engine
soc-2019-embree-gpu
temp-npr-smooth-contour
temp-lanpr-staging
filebrowser_redesign
tmp-eevee-shadowmap-refactor
vamr-openxr-module
sculpt-mode-features
soc-2019-adaptive-cloth
tmp-drw-callbatching
soc-2019-outliner
soc-2019-cycles-procedural
temp-D5423-update
temp-vr-draw-thread
blender-v2.80-release
tmp-batch-cache-cleanup
soc-2019-fast-io
temp-toolsystem-multiwindow
blender2.7
collada
soc-2018-npr
temp-keymap-industry-compat
temp-fracture-modifier-2.8
temp-dna-rename
userpref_redesign
hair_object
motion_curve_fix
collada2.8
cycles_embree
interactive_physics
temp-ui-layout-2.8
cloth-improvements
soc-2018-cycles-volumes
hair_guides_grooming
hair_guides
benchmark
soc-2018-bevel
soc-2018-hair-shader-fixes
temp-udim-images
soc-2018-hair-shader
temp-volume-object
cycles_cryptomatte
temp-eeveelightcache
temp-tab_drag_drop
temp-keymap-save
temp-dynamic-overrides
fracture_modifier-master
ui_layout_gridflow
temp-keymap-changes
tmp-CollectionsAnim
tmp-b28-motionpath-drawing
uv_unwrapping_slim_algorithm
blender-v2.79b-release
tmp-COW_InsertKeyframe_Fix
temp-unified-collections
temp-modifier-rm-cddm
tmp-TimelineHeaderButtonsStretching
blender2.8-workbench
soc-2017-normal-tools
cycles_bvh8
blender-v2.79a-release
temp-scene-obedit-remove
temp-workspace-object-mode-removal
blender-v2.79-release
soc-2017-sculpting_brush
split-kernel-faster-building
id_override_static
openvdb
custom-manipulators
soc-2016-uv_tools
soc-2016-pbvh-painting
soc-2017-vertex_paint
soc-2017-sculpting_improvements
soc-2017-package_manager
strand_editmode
smooth-fcurves
id_copy_refactor
gsoc2016-improved_extrusion
temp-ssr
temp-cycles-opencl-staging
temp-cycles-denoising
ge_2df_textures
HMD_viewport
soc-2016-multiview
transform-manipulators
datablock_idprops
cycles_disney_brdf
temp_cycles_split_kernel
cycles_split_kernel
unlock_task_scheduler
uv_unwrapping_slim_and_ceres
surface-deform-modifier
cycles-tiles-rework
soc-2016-cycles_denoising
temp-layers-ui-table
uiTable
render-layers
clay-engine
multi_previews_id
cycles_disney_bsdf_transmittance
layers
pbr-viewport
temp_display_optimization
viewport_bvh_select
temp-cycles-microdisplacement
soc-2016-cycles_images
strand_nodes
object_nodes
asset-experiments
soc-2016-sculpt_tools
temp_viewport_fx_merge
custom-normals-bmesh
temp-decklink
compositor-2016
decklink
BendyBones
cycles_panorama_experiments
temp_remove_pointcache
temp_remove_particles
temp_depsgraph_split_ubereval
temp_textedit_comment_toggling
GPencil_Editing_Stage3
temp_bge_moto
UI-experiments
UI-graphical-redesign
missing-libs
free-refcount-ids
cycles_camera_nodes
epic-navigation
temp-ui-widget-refactor
gooseberry_farm
gooseberry
temp-ghash-experiments
temp-ghash-setops
temp_motionpaths
fcurves-simplify
soc-2014-fluid
GPU_data_request
depsgraph_refactor
multiview
vertex_paint_pbvh
alembic_pointcache
cycles-ptex-49
viewport_experiments
soc-2014-bge
texture_nodes_refactor
input_method_editor
GPencil_EditStrokes
soc-2014-shapekey
terrible_consequencer
GPencil_FillStrokes
libmv_prediction
blender2.4
dyntopo_holes
soc-2014-viewport_context
gtest-staging
blender-tiles
soc-2014-viewport_fx
soc-2014-remesh
soc-2014-nurbs
pie-menus
soc-2014-cycles
soc-2013-paint
particles_refactor
soc-2013-viewport_fx
tiles-scheduler
bake-cycles
soc-2013-cycles_volume
overscan
soc-2013-depsgraph_mt
soc-2013-dingto
soc-2013-sketch_mesh
soc-2013-rigid_body_sim
soc-2011-tomato
soc-2013-bge
soc-2013-motion_track
soc-2013-ui_replay
soc-2012-sushi
ge_dev
soc-2013-depsgraph_eval
soc-2008-mxcurioni
soc-2012-bratwurst
soc-2012-swiss_cheese
soc-2012-fried_chicken
meshdata_transfer
smoke2
tile
soc-2011-cucumber
bmesh
soc-2011-carrot
cycles
soc-2011-garlic
soc-2011-radish
soc-2010-nicks
vgroup_modifiers
soc-2011-pepper
soc-2010-jwilkins
merwin-spacenav
bge_components
soc-2010-merwin
render25
soc-2010-nicolasbishop
soc-2009-chingachgook
soc-2010-nexyon
soc-2010-aligorith
ge_eigen2
sculpt25
soc-2009-jaguarandi
soc-2009-imbusy
soc-2009-kazanbas
blender2.5
volume25
soundsystem
soc-2009-aligorith
sim_physics
ge_dome
etch-a-ton
soc-2008-nicholasbishop
animsys2
projection-paint
harmonic-skeleton
soc-2008-jaguarandi
fluidcontrol
apricot
soc-2008-quorn
cloth
ndof
orange
v2.93.14
v3.3.3
v2.93.13
v2.93.12
v3.4.1
v3.3.2
v3.4.0
v3.3.1
v2.93.11
v3.3.0
v3.2.2
v2.93.10
v3.2.1
v3.2.0
v2.83.20
v2.93.9
v3.1.2
v3.1.1
v3.1.0
v2.83.19
v2.93.8
v3.0.1
v2.93.7
v3.0.0
v2.93.6
v2.93.5
v2.83.18
v2.93.4
v2.93.3
v2.83.17
v2.93.2
v2.93.1
v2.83.16
v2.93.0
v2.83.15
v2.83.14
v2.83.13
v2.92.0
v2.83.12
v2.91.2
v2.83.10
v2.91.0
v2.83.9
v2.83.8
v2.83.7
v2.90.1
v2.83.6.1
v2.83.6
v2.90.0
v2.83.5
v2.83.4
v2.83.3
v2.83.2
v2.83.1
v2.83
v2.82a
v2.82
v2.81a
v2.81
v2.80
v2.80-rc3
v2.80-rc2
v2.80-rc1
v2.79b
v2.79a
v2.79
v2.79-rc2
v2.79-rc1
v2.78c
v2.78b
v2.78a
v2.78
v2.78-rc2
v2.78-rc1
v2.77a
v2.77
v2.77-rc2
v2.77-rc1
v2.76b
v2.76a
v2.76
v2.76-rc3
v2.76-rc2
v2.76-rc1
v2.75a
v2.75
v2.75-rc2
v2.75-rc1
v2.74
v2.74-rc4
v2.74-rc3
v2.74-rc2
v2.74-rc1
v2.73a
v2.73
v2.73-rc1
v2.72b
2.72b
v2.72a
v2.72
v2.72-rc1
v2.71
v2.71-rc2
v2.71-rc1
v2.70a
v2.70
v2.70-rc2
v2.70-rc
v2.66
v2.63
v2.60
v2.59
v2.58a
v2.58
v2.57b
v2.57a
v2.56a
v2.55
v2.45
softbody-stable-v1
softbody-stable-v2
softbody-stable-v3
v2.25
v2.26
v2.27
v2.28
v2.28a
v2.28c
v2.30
v2.31
v2.31a
v2.32
v2.33
v2.33a
v2.34
v2.35
v2.35a
v2.36
v2.37
v2.37a
v2.40
v2.41
v2.42
v2.42a
v2.43
v2.44
v2.46
v2.47
v2.48
v2.48a
v2.49
v2.49a
v2.49b
v2.50
v2.51
v2.52
v2.53
v2.54
v2.56
v2.57
v2.60a
v2.61
v2.63a
v2.64
v2.64a
v2.65
v2.65a
v2.66a
v2.67
v2.67a
v2.67b
v2.68
v2.68a
v2.69
Labels
Apply labels
Clear labels
Interest/Alembic
Interest/Animation & Rigging
Interest/Asset Browser
Interest/Asset Browser Project Overview
Interest/Audio
Interest/Automated Testing
Interest/Blender Asset Bundle
Interest/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
Interest/Eevee & Viewport
Interest/Freestyle
Interest/Geometry Nodes
Interest/Grease Pencil
Interest/ID Management
Interest/Images & Movies
Interest/Import/Export
Interest/Line Art
Interest/Masking
Interest/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
Interest/Python API
Interest/Render & Cycles
Interest/Render Pipeline
Interest/Sculpt, Paint & Texture
Interest/Text Editor
Interest/Translations
Interest/Triaging
Interest/Undo
Interest/USD
Interest/User Interface
Interest/UV Editing
Interest/VFX & Video
Interest/Video Sequencer
Interest/Virtual Reality
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
Module › Animation & Rigging
Module › Core
Module › Development Management
Module › Eevee & Viewport
Module › Grease Pencil
Module › Modeling
Module › Nodes & Physics
Module › Pipeline, Assets & IO
Module › Platforms, Builds, Tests & Devices
Module › Python API
Module › Render & Cycles
Module › Sculpt, Paint & Texture
Module › Triaging
Module › User Interface
Module › VFX & Video
Platform/FreeBSD
Platform/Linux
Platform/macOS
Platform/Windows
Priority › High
Priority › Low
Priority › Normal
Priority › Unbreak Now!
Status › Archived
Status › Confirmed
Status › Duplicate
Status › Needs Information from Developers
Status › Needs Information from User
Status › Needs Triage
Status › Resolved
Type › Bug
Type › Design
Type › Known Issue
Type › Patch
Type › Report
Type › To Do
No Label
Interest/Alembic
Interest/Animation & Rigging
Interest/Asset Browser
Interest/Asset Browser Project Overview
Interest/Audio
Interest/Automated Testing
Interest/Blender Asset Bundle
Interest/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
Interest/Eevee & Viewport
Interest/Freestyle
Interest/Geometry Nodes
Interest/Grease Pencil
Interest/ID Management
Interest/Images & Movies
Interest/Import/Export
Interest/Line Art
Interest/Masking
Interest/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
Interest/Python API
Interest/Render & Cycles
Interest/Render Pipeline
Interest/Sculpt, Paint & Texture
Interest/Text Editor
Interest/Translations
Interest/Triaging
Interest/Undo
Interest/USD
Interest/User Interface
Interest/UV Editing
Interest/VFX & Video
Interest/Video Sequencer
Interest/Virtual Reality
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
Module › Animation & Rigging
Module › Core
Module › Development Management
Module › Eevee & Viewport
Module › Grease Pencil
Module › Modeling
Module › Nodes & Physics
Module › Pipeline, Assets & IO
Module › Platforms, Builds, Tests & Devices
Module › Python API
Module › Render & Cycles
Module › Sculpt, Paint & Texture
Module › Triaging
Module › User Interface
Module › VFX & Video
Platform/FreeBSD
Platform/Linux
Platform/macOS
Platform/Windows
Priority › High
Priority › Low
Priority › Normal
Priority › Unbreak Now!
Status › Archived
Status › Confirmed
Status › Duplicate
Status › Needs Information from Developers
Status › Needs Information from User
Status › Needs Triage
Status › Resolved
Type › Bug
Type › Design
Type › Known Issue
Type › Patch
Type › Report
Type › To Do
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Set Project
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
16 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#54115
Reference in new issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Motivation
There are two main reasons why the User Preferences need an overhaul:
2.8x introduces new concepts that require new kinds of settings. One being
Proposed Design
I'd propose a design that is similar to how many applications, websites and operating-systems (or desktop environments) do it:

Notable suggestions are:
Workspaces, System), then the settings-"group" (Interface,
Add-ons, Theme, Devices, etc.). Of course "category" and
Note that the mock-up shows changes to the theme-system as well. These are not part of this proposal. Changes like that can be checked on separately as we go more into details.
Rationale
A design similar to the one proposed, should bring multiple benefits:
Workload
Although there may be some challenges, I expect this redesign to be a nicely isolated task where we can do much good with rather little effort. Definitely a doable change for 2.8. Especially since it allows us making the workspace configuration more flexible & useful (we don't have a proper UI for that yet).
We may have to add special widgets for the category/group chooser, but a temporary solution using existing widgets would work too.
I wouldn't mind working on a prototype and transforming it into a ready-to-use state once the design is agreed on. A nice task for until we know how to continue with the topbar.
References
I did do some research before opening this, in fact the proposed solution is based on this KDE-settings mockup:
*More mockups using this design here //.
Other useful references:
Added subscriber: @JulianEisel
Added subscriber: @antoniov
Added subscriber: @DuarteRamos
Added subscriber: @Ton
Added subscriber: @JoshuaLeung
In general, I don't have any major objections to the stuff proposed here.
Various random points (even though we're still just dealing with rough ideas here atm):
Renaming this thing to "Settings" is probably ok. Interestingly, quite a few apps seem to use various different terms here - e,g, a quick check here finds: "Options" (Firefox, MS Office), "Preferences" (MuseScore, Inkscape, Audacity), and "Settings" (MS Windows, Vivaldi, Krita (but only as a menu name; the actual entry is called "Configure Krita"))
"Paths" is often something that's very system-dependent AFAIK (e.g. stuff like tempfile directories, editor/viewer paths, etc.), so it probably should go under "SYSTEM"
The "Input" and "Addons" sections you've currently got under "USER PREFERENCES" is probably something that will still be a bit contentious (e.g. what exactly shows up there vs in the workspace specific modes?)
It would be great to make that space/editor/area be made up of multiple regions, instead of just a single one (as now), so that the navigation stuff is always visible. IIRC, we had a proposal once to use a real tab strip, but with this multi-level design.
For the search, it'd be great to have this implemented per user-pref instance, instead of being a semi-global thing. This applies to both the proposed search option, and also the addons search. This is something that has bugged me for a while, especially as it makes it pretty nasty trying to check on the keymaps for properties in several different areas
Another point to note about search is: How are we going to do it? We could just naively filter by property names, but what about things like the labels and layouts that are sometimes needed to make these things work? We can have this discussion later in the process, but it's just something to keep in mind
Perhaps I'm missing/forgetting something here, but how do we intend to handle big equipment-related pen/tablet vs mouse vs mixed configuration things with this UI? Like, where would I expect to go looking for those settings, since this sort of thing could have quite a big impact across the set of keymaps + addons installed (e.g. for a tablet, you might want a bunch of addons for easier access to certain functionality for instance). Is this something that falls under "User Preferences > Input" or "System > General" or do we even need a separate category to deal with this?
Yeah... always annoys me that there isn't a standard for this. When dealing with other apps I always search through the menus for an "Options", "Settings" or "Preferences" entry. I bet I'm not the only one. Not sure if I'd catch "User Preferences" if I didn't knew it was called this way.
Indeed, might make sense. For the future, it might also be nice to have a "Security" group for .py script autorun , sandboxing options etc.
In my mind the workspace add-ons would be add-on overrides (to override enabled/disabled state and add-on settings). Same with the keymap btw. The mock-up should probably say "Add-on Overrides" in the workspace category.
Note that the groups visible in the mock-up are not meant to be part of the proposal, just some reasonable placeholders to show the point.
What exactly do you mean with the navigation stuff? The category/group buttons? I actually thought of this as a separate region too (esp. since it might need separate scrolling).
Huh, interesting. Never faced this, but I also only use one UserPref instance usually. Will keep that in mind.
(Testing this, the keymap editor seems to do this just fine.)
Yup, how exactly it's going to work is something we need to look into once basic settings UI design is agreed on. Think the search can be implemented in .py, so we can easily test multiple versions.
In the mock-up I added a "Devices" group as part of the system settings (also for things like HMDs). That might already work fine. I think it would additionally be wise to split the "Input" tab into "Keyboard" and "Mouse", just for better structuring. If needed we can also add "Pen Tablet", "3D Mouse" and such.
Now, if you want to enable an add-on based on a specific device - shouldn't the add-on handle this somehow? Either in the poll-callback or in its settings. I guess these would be add-ons specifically for a device type (tablet, 3D mouse, ...) anyway.
Added subscriber: @VukGardasevic
Implementing a data independent scrollable box (scroll_box or similar) would be a good start. UI list are a bit difficult to use as they need data defined first and a counter for tracking the active state.
Having a box widget that makes all UI children entries being accessible with scrollbars (vertically and horizontally) could help a lot with organization and saving space. Behaving like a region in a box. :)
Added subscriber: @PierreSchiller
Could this be a good time to propose a NEW SPLASH screen? to better simplify the first user enounter with the software?
@JulianEisel Right. That sounds reasonable.
Yep, that sidebar :)
Hmm... I'm not so sure that it really makes sense to do that - at least not right now. Maybe for global settings like rotate/scrollwheel behaviour vs general hotkeys it might be ok, but I have doubts about whether it'd really be beneficial splitting out stuff like Selection Operators/3D Cursor/GPencil etc. actions on mouse clicks from hotkey invoked stuff. Especially since it's possible to still create conflicts by setting a normal key as a modifier for a mouse-action when that same key may be used elsewhere.
@VukGardasevic You're basically just describing the "View2D" system :P While we haven't actually tested using one View2D nested inside another one (i.e. they are currently only inline-attached to all ARegions), IIRC, there isn't actually stopping you from being able to use one like that. On that note, maybe I need to give this a go ;)
@PierreSchiller That's a separate issue. I'm not sure if it's currently on our todolist or not
Added subscriber: @brecht
This generally seems fine to me. I think the breadcrumbs at the top are unnecessary, it doesn't look like the nesting would need to be very deep.
If you go ahead with this, I suggest to implement it incrementally into blender2.8, don't make a big branch where you try to do everything. But rather finish it step by step, for example:
I'd love to see work on this (in fact, I already did some research), however I'm afraid it's much more complicated than this settings UI redesign. For example the new splash screen should contain a quick setup for special devices (3D mice, pen tablets, multi-touch screens, etc), we don't really know how to integrate such settings nicely yet. There are quite a few loose ends like this.
I'm familiar with what you proposed in other discussions, it's definitely a good start. I'd propose to make it a multi-page splash screen though, see https://wiki.blender.org/index.php/Dev:2.8/UI/Workshop_Writeup#Splash_Screen.
You're more than welcome to create a proposal, just saying that this task is more tangible and that I'd like to focus on it first.
Correction: There should definitely still be a group for the keymap-editing, maybe call it "Shortcuts/Key-map" or so. What I wanted to say is that we should have one group just for keymap-editing, and separate groups for device specific options. That way we can keep the individual groups uncluttered & rather focused.
Think this is useful when the navigation region is hidden, or as a general hint. But indeed, it's a bit redundant.
Definitely +1. Actually wanted to do something like this, what I said about creating a prototype first may have been a bit misleading.
I think I'll actually go ahead and start working on this in the blender2.8 branch, just like @brecht suggested. There don't seem to be any bigger objections against the proposed changes :)
To be clear, by working directly in blender2.8 I meant committing safe/simpler changes directly and more complicated ones can still go through code review. I rather not have more half-finished stuff in blender2.8, but if each individual step is committed in a finished state that's fine.
Yes, that would be really helpful:)
Added subscriber: @pablovazquez
Awesome! Sorry I didn't have time to look into this before, was busy with the Code Quest.
I agree with pretty much everything mentioned here. I would even add to the "Outdated/aging design" rationale that the current design is legacy from Blender 2.27! (2.26 and previous all settings were together in a flat layout). A quick look just for history purposes:

To sum up:
For categories that have many subcategories, we can (in the future) look into nested sidebar navigation. See "Devices" in the video below.
Most settings could be ported as-is for the time being. And later re-design those that already have a sidebar + search, like add-ons.
This is how the current GNOME settings look like, much better than the previous approach:
vid_6523-2018-02-26_12.07.54.mp4
Still has issues though:
** The first item on the list here is WiFi, which on a Desktop computer usually is off, showing the "?" icon makes it look like there's something wrong.
Pretty excited about this! And can't wait to work on the simplified theme settings :)
Thanks @JulianEisel !
Added subscriber: @michaelknubben
Added subscriber: @mendio
Added subscriber: @JonDoe286
Added subscriber: @JulienKaspar
Redesign User Preferences for 2.8xto Redesign User Preferences 4 years agoAdded subscriber: @0o00o0oo
Added subscriber: @WilliamReynish
UI tweak:
{F5716371, size=full}
We could make use of panels more places in Preferences, such as Themes, for example: {F5716572, size=full}
Made a (rough) implementation of the panel based layout for testing, which looks like this:

Patch for testing (Python only): P834
@JulianEisel Nice one. We could even add sub-panels here too, for things like the New F-Curve Defaults under Keyframing. This could be used to great effect many places.
As a test, I modified your Python file to do this:
@WilliamReynish suggested to go with the term "Preferences" rather than "Settings":
I agree with him, he makes a good point. So if nobody objects I'll change the term.
Agreed, let's change it to Preferences.
This issue was referenced by
dac747bd09Here's a patch to add panels to all the areas of Preferences.
*Adds panels to Interface, Editing, Input, General and Files sections
*Split apart Input from keymap
*fixes the issue with the UI Scale widget glitching
*A few small tweaks
UserPreferences_panels.diff
Looks like this:
This looks great. @JulianEisel, I guess you can commit this to your branch and help reviewing it?
I think we should only commit this when it's in a finished state, since moving around items multiple times is annoying for users.
Some feedback from a quick test.
@brecht Agreed on all points.
Re. the header, it was a bit of an experiment. We need to define the role of the header here. Currently, the placement of the Editor type selector is clumsy in the middle, and it’s also weird that it defaults to being on the bottom.
We could either hide the header and move everything into the panels, or maybe put the header at the top, and make it span the entire width to put the Editor type selector at the far left. Although it will still be mostly empty then. That was why I thought to try and move everything out of the header, so that we could simply hide it by default.
@WilliamReynish and I continued work in the

userpref_redesignbranch. Mostly working on the panel/subpanel based layout.Current screenshots:
Hi @JulianEisel,
I've done some additional layout work on the Preferences from your branch.
Some screenies:
Narrow:

Wide:

Other examples of consistent 2.8-style layout:

Patch:
Preferences_layout_update.diff
From here, we should also make four other smaller changes, which I'm not immediately sure how to do;
With these four changes I would say this is good enough to merge into 2.8.
Looking pretty good so far, huge improvement. Only one small nitpicking.
The save button is perfectly aligned with the preference categories tabs, and is exactly the same size and style. It looks way too much like one of them despite being a completely different type of UI element.
This might be potentially dangerous for the user accidentally saving changes instead of switching tabs.
Perhaps always aligning it to the bottom of the window and adding some sort of save icon in it (like Install and Reset in the header) would suffice. A slightly different color or size could also help.
Would it be possible to remember preference window size when saving startup file? It is generally too small by default on large monitors, and it gets bothersome to resize it every time.
@DuarteRamos: Yes, for sure. It needs to be anchored to the bottom. It's just technically a bit harder to do, so I will leave that for @JulianEisel
@JulianEisel: Another small patch for Preferences against your latest updates in the branch:
Patch:
Preferences_layout_update2.diff
Another update to Preferences, against the latest preferences_redesign branch:
1: There was a theme conflict here where the side panel and the panel are the same color. I made the side panel brighter to fix this - it also has the benefit of communicating the higher place in the hierarchy.
Before:

After:

2: Further cleaning up of Input section. Before, the Mouse panel was outside the Devices panel. Now all device input settings are grouped together. (Mouse and Keyboard are expended by default)
3: There were two View manipulation panels: One in Interface section and another in the Input section. This has been the case since 2.5. But actually, these sections contain the exact same category of options. It made no sense that half of these options were in different sections. I have now consolidated these options and categorised them logically in Orbit, Zoom, Cursor and Fly/Walk - all under Input:
I also made the required re-org in RNA to match this.
4: The Save Preferences button.
While I still think anchoring it to the bottom of the side panel is neat, I also don’t particularly mind putting it in the header, aligned to the right. @JulianEisel If you want, you are still welcome to do it the other way, but if it’s too much work, this can work too I think:

It’s actually similar to your original proposal for it, and it has the nice benefit that it separates it more from the sections in the side panel. The downside is that then the header needs to be visible, which reveals the editor dropdown menu.
What do you think we should do here?
Patch:
Preferences_Layout_4.diff
PS: Another idea might be to move the Text section from System to Interface. Seems to make more sense as an Interface option to me. @JulianEisel @brecht Thoughts?
Your changes seem reasonable. I'll push them in a minute.
Regarding the save preferences button, I already started working on the separate region for it, it's not a big deal really. To differentiate the button from the navigation buttons, we could shade the background color slightly different, and/or make the button use a different size.
Regarding the text options: I agree these should be put into the Interface section. I think they used to be there to workaround issues on old graphics cards/drivers, that's changed now.
Some more thoughts as we get to a more final stage:
@JulianEisel: Great. Yes, the margins could be smarter. If the window is narrow, they could become smaller or disappear completely.
The addons file browser thing doesn't seem so bad to me. In the default size I see this:
In general though, the file browser in Blender could be made to open as a new temporary window by default. That would eliminate the need for the clumsy Back to Previous button, and it makes it much simpler to go back. Resizing the file browser then doesn't affect the Blender window it was spawned from.
But I see that as more of a general problem with the file browser than an issue that is specific to the addons.
Latest update is nice. I've made a few more tweaks here:
(updated Dec 27 '18)
Preferences_Layout_5.diff
Another thing that may be interesting eventually, is to improve the keymap editor with a keyboard-centric view to get an overview of which keys are bound to which commands. This gives a better overview than a simple list of commands.
You could then click on a key and assign a command. Something like this:
Added subscriber: @L0Lock
@WilliamReynish Would it be possible to make this keyboard-centric view automatically adapt to the user's keyboard layout (or at least the main qwerty and azerty)?
Changed status from 'Open' to: 'Resolved'
I've just committed
a77b63c569with which I'd consider the Preferences redesign as done.From this task I think the only thing missing is the search, which can be added as general improvement. @WilliamReynish and I already planned to work on the workspace preferences UI next, but that will probably get its own task.
A note on theme settings: I'm well aware that the re-organized theme settings don't solve the underlying issue of overwhelming complexity. Much more drastic changes are needed for this. I'm personally trying to address this as part of my bWidgets project, which I hope to push quite a bit in 2019.
Closing this task, thanks everybody for the involvement!