User:Chris Blackbourn/WeeklyReports

See also WeeklyReports2023

Prior Work
... - May 8

 UV (With Campbell Barton)
 * Root cause analysis for Applying Subdivision/Multires Modifier De-merges UV's.
 * Investigate Cube UV projection correct aspect option
 * Fix
 * Root cause analysis for Angle-based UV distortion with quads

Calendar Week 19
May 9 - May 15

 UV (With Campbell Barton)
 * Debug UV Constrain to bounds
 * Fix
 * Commit
 * Debug Inaccurate hitbox axis gizmo
 * Fix pending review
 * Debug UV Projection per-face-aspect
 * Fix
 * Commit
 * Debug UV Transform Tool - broken handles Cannot repro, resolved.
 * Debug Python API uv.select_edge_ring etc Cannot repro, resolved.
 * Investigate UV Editor demerge
 * Most likely a duplicate of Applying Subdivision/Multires Modifier De-merges UV's.
 * More info requested.
 * Reported Individual origins scale problem
 * Debug Live unwrap pin bugs
 * Actually two seperate problems. TODO: Split report Done: T98240 T98239
 * Repro both problems and identify both root causes.
 * Waiting on design feedback before fixing.
 * Develop feature Unwrap selected
 * Abandoned change
 * Add pin_unselected (Pending review)

 Blender-Coders
 * Confirm faulty BLI_ASSERT during file handling on macOS.

Calendar Week 20
May 16 - May 22

 UV (With Campbell Barton)
 * Develop feature Randomize UV islands
 * Waiting on design review.
 * Report and Fix UV selection crash with wire edges
 * Create Live unwrap is non responsive if mesh has no boundaries and no seams.
 * Create Unwrap and Live Unwrap can merge pinned UVs
 * Proof of concept fix.
 * Cleanup Refactor PHandle -> ParamHandle
 * Develop feature Unwrap selected
 * Add pin_unselected (Pending review)

Calendar Week 21
May 23 - May 29

 UV (With Campbell Barton)
 * Commit Refactor PHandle -> ParamHandle
 * Unable to repro UV selection modes, marked as need more info.
 * Debug UV Gizmo hitbox
 * Identify root cause for UV Align tool problem
 * Develop feature Unwrap selected

Calendar Week 22
May 30 - June 6

 UV (With Campbell Barton)
 * Fix UV Gizmo hitbox commit
 * Develop feature Unwrap selected
 * Cleanup bools
 * Cleanup remove unused
 * Fix and feature creep on UV Straighten
 * Identify root cause toggle layer redraw problem
 * Debug UV Unwrap solver symmetry
 * Develop feature Randomize UV Islands
 * Discuss with Łukasz Re: SLIM unwrapping algorithm
 * Identify root cause Unsubdivide produces overlapping UVs

Calendar Week 23
June 7 - June 13

 UV (With Campbell Barton)
 * Fix UV vis on a globally hidden collection commit
 * Improve circle drawing commit commit commit
 * Develop feature UV Select Similar
 * Bug fixing UV unwrap merge pinned verts
 * Develop feature UV Straighten

Calendar Week 24
June 14 - June 20

 UV (With Campbell Barton)
 * Fix Wrong face dot color commit
 * Fix Unwrap merges pinned UVs commit
 * Debug KDTree problem

Calendar Week 25
June 21 - June 27

 3D Modeling (With Campbell Barton)
 * Fix Select Similar
 * Fix Circular gizmo drawing in 3D

 UV (With Campbell Barton)
 * Fix KDTree problem commit
 * Type cleanup Select Similar
 * Add Select Similar UV commit
 * Fix UV Pins interfere with UV seams
 * Debug Live unwrap problem
 * Fix Wrong Face dot color commit
 * Develop feature Unwrap Selected

Calendar Week 26
June 28 - July 4

 UV (With Campbell Barton)
 * Debug UV Unwrap symmetry (PM me for details.)
 * Commit Unwrap Selected
 * Develop feature Align rotation
 * Develop feature UV Randomize islands
 * Debug UV Island with edge selection
 * Debug Live UV unwrap with no boundaries
 * Debug Margin Size during pack
 * Fix UV Straighten (pending commit)
 * Cleanup Cleanup Cleanup Cleanup

Calendar Week 27
July 5 - July 11

Research week as we're delaying larger changes until the Blender 3.3 (LTS) branch.

Sync and edit documentation repo.

 UV (With Campbell Barton)
 * Implement UV Island calculation for Edge Selection (pending commit)
 * Fix UV Straighten commit Docs
 * Fix UV Resize problem Pending Review
 * Research UV Pack Margin and UV Pack convex hull
 * Research UV Align Rotation
 * Research Upgrade Average Islands Scale

I also researched LSCM unwrapping without using any pins (affects multiple tasks including https://developer.blender.org/T78101 etc) by adding additional constraints on the least squares matrix.

Calendar Week 28
July 12 - July 18

 UV (With Campbell Barton)
 * Upgrade Average Island Scale with new options, Scale UV and Shear
 * Improve UV Island Calculation with Hidden faces.
 * Improve UV Island Calculation in Edge Select mode.
 * Fix UV Resize problem with constrain to bounds and individual origins.
 * Report and Fix Minimize Stretch won't unflip faces.

Calendar Week 29
July 19 - July 25

 UV (With Campbell Barton)
 * Commit Minimize Stretch unflips faces.
 * More review on Slim unwrap
 * Investigate and patch Missing UV data in corrupt .blend file
 * (Unreported) Investigate convert LSCM unwrapper to C++.
 * (Unreported) Investigate correcting boundaries for Relax brush, to unlock boundaries.
 * (Unreported) Investigate cotan formula for Relax brush, to preserve mesh geometry and reduce direction changes across edges. Sneak Peek

Calendar Week 30
July 26 - August 1

Researching packing algorithms.

Debug `march=native` problem with building cycles on apple silicon macOS. (See build error)

 UV (With Campbell Barton)
 * Add new options for UV Island select similar: Face, Area, Area UV
 * Simplify uv_parametrizer in preparation for conversion to C++ commit commit

Also reviewed UV Texture Dimming

Calendar Week 30
August 2 - August 8

Refactor week!

Cleanup UV Parametrizer, move to C++! (pre-req for SLIM algorithm) commit commit commit commit

Fix off-by-half errors in UDIM search and add tie-break commit commit commit

Improve circle drawing for UV Sculpt commit

Update Relax Brush documentation Pending Review

Remove winding for UV Sculpt tool for islands commit

Prepare UVIsland calculation for Python API commit commit commit

Calendar Week 31
August 9 - August 15

Prepare UVIsland calculation for Python API commit commit commit

Attempt to UV unwrap when mesh has no boundary Review

Upgrade UV Sculpt tools with Pin and Boundary support

Upgrade UV Sculpt tools with Constrain to bounds

Calendar Week 32
August 16 - August 22

UV (with Campbell Barton)


 * Add Geometry driven relax brush
 * UV grab tool supports live unwrap
 * Respect UV Selection in Spherical, Cylindrical, Cube Project and Smart UV.
 * Cleanup `uvedit_*_select_*` commit
 * Cleanup: replace uint cd_loop_uv_offset with int commit

First pass, UV Rotation operator supports Constrain to bounds

Relax brush documentation updated

And debugging of UV Islands in Python

Calendar Week 33
August 23 - August 29

UV (with Campbell Barton)
 * Add new operator uv randomize islands
 * Add bpy_extras.bmesh_utils.bmesh_linked_uv_islands (see above)
 * Resolve bpy_extras.mesh_utils.mesh_linked_uv_islands Creates Exception
 * Support constrain-to-bounds for UV rotation operator
 * Investigate UV Face/island selection
 * WIP new align rotation operator

Plus packing research (offline)

Calendar Week 34
August 30 - September 5

Writing a blog post about recent changes in the UV Editor and underlying code. Currently have outline, first draft of introduction and first section.

UV (With Campbell Barton)


 * Identify and change face selection changes Differential, parked
 * Add new operator, UV Align Rotation (pending commit)

Preparing for packing updates :
 * Move UVEdit_Islands to cpp
 * Add Seam support for UV Island calculation Differential
 * Merge UV Island calculation with UV Element Map (offline, blocked)
 * Literature search, Bin Packing 2D, e.g. https://github.com/topics/2d-bin-packing

Calendar Week 35
September 6 - September 12

UV (With Campbell Barton)
 * Fix UV unwrap with degenerate triangles commit
 * Add new operator, UV Align Rotation commit
 * Move UVEdit_Islands to cpp commit
 * Add Seam support for UV Island calculation commit

Plus packing research and blog writing.

Calendar Week 36
September 13 - September 19

UV (With Campbell Barton)

Packing research, explicit margin and using convex hull, speed improvements for large meshes.


 * Rename "UV Snap To Pixels" -> "UV Round To Pixels" commit
 * Update docs for the rename.
 * UV: Extend custom grid sizes to set each axis separately. diff

Calendar Week 37
September 20 - September 26

UV (With Campbell Barton)

Packing research, explicit margin and using convex hull, "Phi functions" for concave packing, and speed improvements for large meshes.


 * Fix T101138 by removing console spam when hovering over tools in UV editor. commit
 * Add toggle to show UV grid over the top of the image in UV Editor. commit
 * 2D Convex hull improvements for UV packing. Differential
 * Add option to use Blender 2.8 margin calculation to fix T85978. Differential

Coming very soon : Specify exact margin when UV packing.

Calendar Week 38
September 27 - October 3

Blog writing, see draft

UV (With Campbell Barton)
 * 2D Convex hull improvements for UV packing. commit
 * Fix T101414, packing problem in 3d viewport. commit
 * Simplify storage with UV packing commit
 * Simplify UV packing for non-square materials commit

... and....!


 * Add option to specify exact margin when packing Differential using a combined search/secant root finding custom solver.

Calendar Week 39
October 4 - October 10

More packing research!

UV (With Campbell Barton)


 * Iterating on specify exact margin when packing Differential.
 * Add grid shape source to the UV editor, and add new "pixel" option Differential. See T78391
 * Research on UV Editor Selection Sync T78393

Calendar Week 40
October 11 - October 17

Implementing Graph Isomorphism for UV Island Copy/Paste

UV (With Campbell Barton)
 * Commit UV Pack option to specify exact margin.
 * ^^^ Also fixes UV Margin regression for UV Unwrap
 * Commit Add grid shape source to the uv editor, and add new "pixel" option.
 * Cleanup UV Packing API for "Paint.Add_Simple_UVs"

Calendar Week 41
October 18 - October 24

More graph isomorphism and packing research.

UV (With Campbell Barton)


 * Commit Support snapping on non-uniform grids in UV editor.
 * Update documentation +fix
 * UV Copy'n'Paste work-in-progress
 * Simplify UV Packing API (Fixes margin calculation options for UV.unwrap)

Calendar Week 42
October 25 - October 31

Graph Isomorphism for UV Copy+Paste. (Turns out was harder than I thought.)

work-in-progress

Calendar Week 43
November 1 - November 7

More UV Packing research.


 * Cleanup: fix translation for rare UV unwrapping with unit scale commit
 * Improve precision during UV Packing. Differential

Calendar Week 44
November 8 - November 14


 * UV Copy and paste commit commit

Calendar Week 45
November 15 - November 21


 * Debug unwrapping on quads with reflex angles
 * Cleanup asserts in UV Unwrapper
 * Show UV Outline in Texture Paint Mode commit
 * Report problems with n-gons with shared vertices on UV unwrapper
 * Investigate Grid UV Unwrap
 * Updating docs for UV in Blender 3.4 work-in-progress

Calendar Week 46
November 22 - November 28


 * Cleanup UDIM parameters when packing Differential
 * Refactor fix for n-gon problems with shared vertices
 * Fix unreported, UV Unwrap selection was splitting selection commit
 * Update UV documentation Pending Differential

Calendar Week 47
November 29 - December 5


 * Support constrain-to-bounds for the UV Shear operator Commit
 * Cleanup UV Parametrizer in prep for T78101 Commit Commit Commit Commit
 * More updating UV documentation Pending Differential
 * Investigate UV Packing performance on T102843
 * Improve performance for candidate Improve uv unwrapping with n-gons and shared vertices

On a more "feeling the vibe" note:


 * Anecdotally, increasing numbers of UV issues are being reported in Maniphest. The reported issues are more workflow related and it feels like they issues are being found by users using the tools for their intended purposes. => It feels like the community has noticed that when UV issues are reported, they're being actively triaged and fixed in a timely manner. Big Success!

Calendar Week 48
December 6 - December 12


 * Fix T102543: Broken UV unwrap for n-gons with 3 shared vertices commit
 * Fix T84078: Improve UV unwrapping for quads with an internal reflex angle commit
 * Debug T102923: UV Editor Constrain-To-Bounds problem on unusual input file
 * Cleanup: Simplify udim parameters when uv packing commit
 * Improve documentation commit commit commit commit commit
 * WIP UV Grid Unwrap

Calendar Week 49
December 13 - December 19


 * More WIP UV Grid Unwrap
 * Fix T103237 Prevent UV Unwrap from packing hidden UV islands commit
 * Fix T102923 Strange UV Editor Constrain-To-Bounds behavior on an unusual blender file. commit

Plus refactoring UV Packer as a pre-requisite for T102843 (very slow packing with large number of islands) and T68889 UV Packing with convex hull instead of AABB. (WIP)

Calendar Week 50
December 20 - December 26


 * More WIP UV Grid Unwrap
 * More refactoring UV Packer as a pre-requisite for T102843 etc

Calendar Week 51
December 27 - January 2


 * More WIP UV Grid Unwrap
 * T103469 Improve UV Cylinder projection and UV Sphere projection. Differential
 * Improve 3x3 and 4x4 matrix multiply Differential