User:Pablodp606/Reports/2021

August 23 - August 27

 * New color picker is done, including current/sampled color preview and the ability to sample from vertex color datalayers from any object in the scene.


 * Quantize mesh filter with interactive preview




 * I started to merge array and insert tools, should be ready by next week.

Next Week
 * Finish the array/insert tool

August 16 - August 20
This week I continued with the projects from last week and I did some bug fixing. My main computer broke during an update so I lost some stashes and I had to reinstall everything, but everything should be ready for testing this week.

Here is a comparison with a test of the updated blending code:

Sculpting on animated objects:

Next Week
 * Finish or split the main sculpt vertex colors brush
 * Rework the sculpt vertex colors picker

August 9 - August 13
This week I revisited the state of the sculpt vertex colors main brush and features:


 * The default brush now has a blending/accumulate mode that matches most illustration software. It still does not work when using wet paint mixing and I would like to have both modes into the same function.
 * Experimented with ink simulation and blending. May have a prototype of this paint tool next week.
 * Filters now have a value preview in the UI when running
 * Multires level switching is still not finished, does not work as well as I wanted.

Next Week
 * Finish or split the main sculpt vertex colors brush
 * Split the ink simulation to a separate tool

August 2 - August 6
This week I did some experiments with the default cursor. The current one is not really useful when reshaping procedurally generated meshes, which is a core feature we have to support without compromises. There are some experiments left in the code, but this version previsualizas the Face Set color and connected wires, which should already help in those situations.



Detail size controls are now unified in a new operator for voxel remesh and dyntopo (Multires will be done next week). This replaces the previous "edit voxel size" operator.



Support for dragging materials into Face Sets with slot deduplication. By initialising Face Sets by materials it is easy to replace the content of the existing material slots.



Next Week
 * Unify detail size with Multires level switching
 * Standard library design

July 26 - July 30
This week I did some bug fixing, some experiments with the array brush deformation and smoothing and started planning the design of the standard library for character modeling.

Next Week
 * Try to design an undo for custom tools for sculpt mode.
 * Continue with the standard library design.

July 19 - July 23
The Array Brush now has non destructive editing in all its deformation modes, including support for editing the array after remeshing.



Next Week
 * Implement undo for the array brush and polish the existing funcionality (smoother deformations).

July 12 - July 16
The Array Brush basic set of features is working and it starts to be useful for real use cases, including multiple array modes, modifiers/EEVEE updates and orientation locking.

Next Week
 * Implement the brush edit mode of the Array Brush.

July 5 - July 9
This week I continued with the Array Brush. Multiple Array Modes, scaling, Face Set modes and orientation are already working. Next Week
 * Continue with the Array Brush, including orientation options, jittering and radial arrays modes.

June 28 - July 2
This week I did some experiments with a fairing node (it will probably require modifications on the fairing functions in order to be useful) and I started the initial version of the Array Brush, which there is already a working version of it.

Next Week
 * Continue with the Array Brush.

June 21 - June 25
This week I fixed some bugs, continued with the twist brush (it will definitely need dyntopo in order to work) and investigated how to implement SDF collisions for the cloth brush.

Next Week
 * Continue organizing asset fundamentals technical design.

June 14 - June 18
This week I did some bug fixing, more tech design organization and started working on a prototype of the twist brush. I already have a working version, but not sure if it is going to be possible to merge it any time soon as it requires dyntopo and a highly complex brush setup in order to be useful.

Next Week
 * Continue with the asset fundamentals technical design.
 * Try to simplify the twist brush so it can exposed in the current UI if possible.

June 7 - June 11
This week I made the initial blog post for the asset project and continued with task listing and dependencies. I reviewed the mask filter again, but I think it is better to wait after having the asset project more advanced as the implementation can also be useful for general attribute editing.

Next Week
 * Continue with the asset fundamentals technical design

May 31 - June 4
This week I participated on the asset manager workshop, tested some prototypes for the assets fundamental workshop (extended face set/masking tools) and I started working on the final version of the mask filter for 3.0

Next Week
 * Continue with the asset fundamentals technical design
 * Make the patch for the new mask filter for 3.0

May 24 - June 28
This week I participated on the asset manager workshop and I started planning the technical design and documentation for the asset fundamentals project.

Next Week
 * More asset manager workshop

May 17 - May 21
This week I continue with some tool prototypes and I started planning the next phase of documentation, the implementation plan.

Next Week
 * Continue working on the implementation plan and technical documentation. Having that finished as soon as possible should be the priority.

May 10 - May 14
This week I fixed some bugs and I continue working on a better design for some new experimental tools.

Next Week
 * Continue working in the new tools.
 * Depending on the state of the module proposal, continue working on more technical/roadmap documentation.

Patches
 * D11249 Add comment regarding Fade Inactive Geometry property in overlays popover
 * D11243 Fix T88230: Properly handle Face Set visibility in Expand Face Sets editing

Commits
 * Fix sculpt neighbor iterator not taking visibility into account.
 * Fix Sculpt tools showing the cursor of the previous active brush.
 * Fix wrong loop count in Sculpt Expand code.
 * Fix T82155: Fade inactive geometry overlay not working with instanced geometry.
 * Fix T88060: Expand freezing when deleting a Face Set with multiple loose parts.

May 3 - May 7
This week I continued working in new tools. A minimal version is already working, but I'll probably have to try something else to keep the code manageable.

Next Week
 * Continue working in the new tools.

Patches
 * D11195 View3D: Add undo support for Lock Camera To View
 * D11169 Fix T88060: Expand freezing when deleting a Face Set with multiple loose parts

Commits
 * Fix T83398: Fade inactive geometry overlay option not visible depending on the mode.

April 26 - April 30
This week I finished the documentation proposal, updated some patches (transfer mode) and started working on new tools for the next release.

Next Week
 * Continue working in the new tools, it is probably going to take me another week to have working.

Commits
 * Fix T87474: Face Set visibility updates failing with single face loop.
 * Fix T87596: Pose brush not using automasking options.
 * Fix possible crash with dyntopo and clay strips normal filter.

April 19 - April 23
This week I mostly prepared the documentation for presentation. I also coded the initial version of the transfer mode overlay.

Next Week
 * Finish the transfer mode overlay

Patches
 * D11055 Overlay: Flash on Mode Transfer overlay

April 12 - April 16
This week I made some experimental tools (mainly experiments to get a symmetrize tool working) and bug fixing.

Next Week
 * Try to make the symmetryzie tool usable
 * Prepare the documentation for presentation

Patches
 * D11008 Fix T87474: Face Set visibility updates failing with single face loop
 * D11007 Fix sculpt neighbor iterator not taking visibility into account
 * D11006 Fix sculpt connected components tagging hidden geometry wrong
 * D11005 Fix T87596: Pose brush not using automasking options

Commits
 * Sculpt: Add area normal test to clay strips for better front faces detection.
 * Fix wrong visibility flush with Face Sets.
 * Fix neighbor connectivy with hidden edges.
 * Fix Scene project brush after merge.
 * Sculpt Symmetrize: Fix missing updates with modifiers.
 * Sculpt Symmetrize: Free the symmetrize map on changes.
 * Sculpt Symmetrize: Prevent crash with dyntopo and multires.
 * Sculpt Symmetrize: Add brush falloff.
 * Sculpt Symmetrize: Fix bug in main brush loop.
 * Sculpt Symmetrize: Initial working version.
 * Sculpt Symmetrize: Add base symmetrize map code.
 * Sculpt Symmetrize: sculpt_symmetrize file and main loop.
 * Sculpt Symmetrize: Initial commit.
 * Object: Make flash animation slower.
 * Object: Use theme select color for animation.
 * Object: Enable transfer mode functionality for switching objects in Sculpt Mode.
 * Sculpt: Update menu entries for new Expand operator.

April 5 - April 9
This week I did some switch object prototypes, continue with documentation and started planning the work for the tools refactor.

Next Week
 * Get some patches ready from sculpt-dev to Blender 3
 * Do the documentation formatting
 * Continue testing things for the tools refactor

Patches
 * D10953 Object: Enable transfer mode functionality for switching objects in Sculpt Mode
 * D10952 D10952 Sculpt: Update menu entries for new Expand operator

Commits
 * Fix build error with include.
 * Object: Flash objects on mode transfer.

March 29 - April 2
This week I focused only on documentation. Should be finished this week. I hope I can find some time for creating some final patches from the features I made the latest weeks as they were already tested for a while.

Next Week
 * Finish the documentation
 * Create some final patches for minor features (loop selection and small tweaks to Expand).
 * Create the patches for the switch object updates after meeting.

March 22 - March 26
This week I focused mostly in the documentation. I also finished and tested the sculpt loop selection tools.

Next Week
 * Continue with documentation. Should be finished by next week.

Commits
 * Sculpt: Initial implementation of uniform smoothing.
 * Sculpt Poly Loop: Fix symmetry.
 * Sculpt Expand: Default Face Set boundary modes to topology.
 * Sculpt Poly Loop: Symmetry support.
 * Cleanup: Clang format.
 * Cloth Filter: Add pinch origin modes.
 * Cloth Filter: Add symmetry support to pinch deformation mode.

March 15 - March 19
This week I worked on tools for loop selection, finished the code for the 2.93 features and continued with the documentation. I also started to try new features for the pose brush.

Next Week
 * Continue with documentation
 * Implement symmetry and finish the loop selection operators

Commits
 * Sculpt Expand: Split snap event into two separate events.
 * Sculpt Expand: Add Poly Loop Falloff mode.
 * Face Sets Topology: Improve keymap and creation delay.
 * UI: Rename Init to Initialize Face Sets in menu.
 * Sculpt Poly Loop: Improve loop direction detection.
 * Face Sets Topology: Add repeat last and default keymap.
 * Sculpt Poly Loop: Move poly loop code to its own file.
 * Sculpt Poly Loop: refactor poly loop code for reusability.
 * Face Sets Topology: Initial working version.
 * Face Sets Topology: Initial loop iteration implementation (one side only).
 * Face Sets Topology: Initial edge loop detection.
 * Face Sets Topology: Initial commit.
 * Cleanup: Clang format.
 * Sculpt IPMask: Working exec callback for scripts.
 * Sculpt IPMask: Refactor filter initialization.
 * Sculpt IPMask: Add direction property to the filter.
 * Sculpt IPMask: Start implementing exec callback.
 * Sculpt IPMask: Fix memory leak in step compute.

March 8 - March 12
This week I worked in the documentation and coded some new experimental features.

Next Week
 * Continue with documentation
 * Create the patches for the features planned for 2.93

Commits
 * Sculpt: Apply latest clang-format changes to the branch.
 * Cleanup: Clang format.
 * Sculpt: Fair all by tangency mode for face set edit.
 * Cleanup: add BKE_pbvh_vertex_iter_begin to clang-format.
 * Sculpt: Mask Init operator.
 * Sculpt: Move Mask Init to its own file.
 * Sculpt IPMask: Increase sensitivity of contrast mask filter.
 * Fix T86422: Expand crashing with EEVEE enabled.
 * Fix crash in boundary brush after refactor.
 * Sculpt: Init Face Sets by Face Sets boundaries.
 * Cleanup: Clang format.
 * Voxel Remesher: Option to preserver material slots.
 * Fix crash in Boundary brush expand mode after refactor.

March 1 - March 5
This week I finished the new mask filter operator, committed Expand and did the live stream on the Blender channel.

Next Week
 * Continue with documentation

Commits
 * Sculpt: Make global smooth factor control the strengh directly.
 * Cleaup: Clang format.
 * Sculpt IPMask: Tweak default filter sensitivity.
 * Sculp IPMask: Property to enable/disable step interpolation.
 * Cleanup: Clang format.
 * Sculpt IPMask: Implement restoring and cancelling the filter.
 * Fix after merge.
 * Sculpt: Expand Operator.
 * Sculpt IPMask: Fix crash in original data updates.
 * Sculpt IPMask: Implement filters that use original data.
 * Sculpt IPMask: Some experiments for a better sharpen filter.
 * Sculpt IPMask: Tweak default sensitivity of each step.
 * Sculp IPMask: First working version of substep interpolation.
 * Sculpt IPMask: Initial refactor to support step interpolation.
 * Sculpt IPMask: First version of contrast filter.

February 22 - February 26
This continued updating the patch of Expand (should be ready next week), I coded the bend deform for Pose and a new Mask Filter and I continued organising the module documentation.

Next Week


 * Prepare the demos for expand
 * Investigate how to implement proper mask filters
 * More documentation

Commits
 * Fix crash with dyntopo on tools that use cached vertex info.
 * Sculpt IPMask: update pie menu.
 * Sculpt IPMask: Use the new mask filter in the pie menu.
 * Sculpt IPMask: Implement some other filterts (hard/soft).
 * Sculpt IPMask: Move main data update to its own function.
 * Cleanup: Clang format.
 * Sculpt IPMask: Ignore inbetween mouse events.
 * Sculpt IPMask: Free ghash when finishing.
 * Sculpt IPMask: Multithreaded and fast mesh updates.
 * Sculpt IPMask: Enable iteration count.
 * Sculpt IPMask: Refactor, prepare for iteration counts.
 * Sculpt IPMask: Unify function to apply delta steps.
 * Sculpt IPMask: Remove debug prints.
 * Sculpt IPMask: Implement automasking for the filter.
 * Sculpt IPMask: Implement filter selection.
 * Sculpt IPMask: Multithreaded compute step.
 * Sculpt IPMask: Implement undo.
 * Sculpt IPMask: Generalize compute function.
 * Sculpt IPMask: Implement smooth and sharpen callbacks.
 * Sculpt IPMask: Fix bugs in stack index, start refactor.
 * Sculpt IPMask: First working version.
 * Sculpt IPMask: Functions to step back/forward in the stack.
 * Sculpt IPMask: Dummy function to compute a step.
 * Sculpt IPMask: delta steps struct and packing.
 * Sculpt: Add mask filter tool and target step count.
 * Sculpt: Initial commit for Mask Filter tool with interactive preview.
 * Fix crash in versioning code.
 * Sculpt: Add global smooth strength factor for alt-smooth.
 * Sculpt: Add extra options to Face Set pie menu.
 * Sculpt: Initial support for bend deformations in Pose.
 * Fix proportional connected not working with loose edges due to hidden geometry.

February 15 - February 19
This week I created the patch for expand and continued updating it.

Next Week
 * Finish the review of expand
 * Continue working in the module documentation

Patches
 * D10455 Sculpt Expand
 * D10455 Fix proportional editing not working with wires on hidden geometry

Commits
 * Sculpt Expand: Silence warning.
 * Sculpt Expand: Fix artifacts in sculpt geodesic distances.
 * Sculpt Expand: More comment on ExpandCache.
 * Sculpt Expand: Improve and fix Face Set snapping whit Face Sets.
 * Sculpt Expand: ExpandCache comments.
 * Sculpt Expand: Expose normals expand in the keymap.
 * Sculpt Expand: Fix normals falloff.
 * Sculpt Expand: More comments.
 * Sculpt Expand: Refactor, more comments.
 * Sculpt Expand: Cleanup, comments.
 * Sculpt Expand: rename texture options to distortion.
 * Sculpt: Move geodesic distances code to its own file.
 * Sculpt Expand: Fix face set snapping with Multires.
 * Sculpt Expand: Fix crash when editing an existing face set with Multires.

February 8 - February 12
This week I got expand ready for master (just code comments missing). I also coded some other minor functionality and tweaks.

Next Week
 * Make the final patch for expand

Commits
 * Sculpt Expand: Improve support for Multires and dyntopo.
 * Sculpt Expand: Fix propagation from grids to faces in Multires.
 * Sculpt Expand: Improve support for Multires and dyntopo.
 * Sculpt Expand: Fix propagation from grids to faces in Multires.
 * Sculpt Expand: Limited support for Multires.
 * Sculpt Expand: Fix texture strength when switching falloffs.
 * Sculpt Expand: Make texture strength consistent across falloff modes.
 * Sculpt: Add option to show the sculpt pivot as part of the cursor.
 * Sculpt Expand: Update Keymap descriptions.
 * Sculpt Expand: Fix wrong expandcache ref when finishing expand.
 * Sculpt Expand: Render the origin of expand as part of the cursor.
 * Cleanup: clang format.
 * Sculpt Expand: Fix max falloff with texture distorsion.
 * Sculpt Expand: Support for texture distorsion for mask and colors.
 * Sculpt Expand: Fix and improve behaviour of pivot reposition.
 * Sculpt Expand: Fix Face Set ID constantly updated when moving.
 * Cleanup: clang format.
 * Sculpt Expand: Use symmetry and component filtering for pivot reposition.
 * Sculpt Expand: Remove unused Face Sets update code.
 * Fix depth PBVH raycast with grids.
 * Sculpt Expand: Force all enabled when cursor not over the mesh.
 * Fix cloth filter not working after merge.
 * Cleanup: Clang format.
 * Cleanup: Unindent if statements in sculpt tools code.
 * Fix Sculpt Gestures using normal orientation with translated objects.
 * Fix T83047: Texture paint symmetry options not in topbar.
 * Fix T85079: Thumb brush unstable when producing larger displacements.
 * Sculpt expand: Fix crash when missing connected components.
 * Sculpt: fix pose brush flood fill with symmetry.
 * Sculpt Expand: Force expand to work only on active connected components.
 * Fix crash in versioning code.
 * Sculpt Expand: Fix keymap entry for snapping.
 * Scupt: Fix failed scene projection with ortographic views.
 * Sculpt: Fix wrong vertex normals in Scene Project.

February 1 - February 5
This week I finished all remaining functionality of expand and did some other minor features (flip images, circle deform type for boundary...)

Next Week
 * Start porting features from sculpt branch to master

Patches
 * D10333 Cleanup: Unindent if statements in sculpt tools code

Commits
 * PBVH depth: Improve detection with normal orientation in trim.
 * Sculpt: Location option for lasso trim and depth info.
 * Sculpt Expand: Use visibility state for enabled values.
 * Sculpt Expand: Fix gradient when using invert.
 * Sculpt Expand: Enable gradient when enabling brush gradient.
 * Sculpt: fix pose and expand floodfill initial vertex.
 * Sculpt: Boundary circle deformation mode.
 * Cleanup: clang format.
 * Fix elastic deform surface falloff crashing or breaking geometry.
 * Rename random per component to random per loose part.
 * Fix const warning.
 * Remove unused variable.
 * Fix crash in versioning code.
 * Image: Flip image operator.
 * Fix T85230: Face Set Boundary automasking not working with dyntopo.
 * Fix T85136: Sculpt geometry extract not using updated mesh.
 * Fix T84370: Project tool not working with shape keys.
 * Fix memory leak in boundary brush preview data.
 * Sculpt Expand: Enable repeat events for loop count increase/decrease.
 * Sculpt Expand: fix topology recursion and flood fill.
 * Cleanup: Clang format.
 * Sculpt: Init Face Sets by Face Sets boundary.
 * Sculpt Expand: Add Expand to the keymap by default.
 * Sculpt Expand: Fix multiple crashes when using modifiers.
 * Sculpt Expand: Fix modal keymap descriptions.
 * Sculpt Expand: Refactor and pivot reposition.
 * Sculpt Expand: Implement topology diagonals falloff.
 * Sculpt Expand: implement restore, undo and cancel.

January 25 - January 29
This week I mostly did bug fixing

Next Week
 * Finish the expand operator
 * Organise the meeting to discus the features of expand

Patches
 * D10259 Fix T85230: Face Set Boundary automasking not working with dyntopo
 * D10255 Fix T84551: Linear subdivisions crashing with geometry loose geometry
 * D10231 Fix Sculpt Gestures using normal orientation with translated objects
 * D10231 Fix Sculpt Gestures using normal orientation with translated objects
 * D10230 Sculpt: Cleanup Keymap
 * D10216 Fix T83047: Texture paint symmetry options not in topbar
 * D10215 Fix T83398: Fade inactive geometry overlay option not visible depending on the mode
 * D10214 Fix T85079: Thumb brush unstable when producing larger displacements
 * D10205 Fix unsubdivide entering an infinite loop with two faces vert

Commits
 * Sculpt: Implement elastic surface falloff.
 * Fix Face Set init not showing in the menus.
 * Fix T84896: Boundary brush not affected by automasking.

January 18 - January 22
This week I continued working on expand, wrote some design docuements and organised the issues.

Next Week
 * Bug Fixing

Patches
 * D10174 Fix T84370: Project tool not working with shape keys
 * D10173 Fix memory leak in boundary brush preview data
 * D10161 Fix T84896: Boundary brush not affected by automasking

Commits
 * Cleanup: Clang format.
 * Sculpt: Reset all brushes operator.
 * Sculpt Expand: Brush Gradients.
 * Sculpt Expand: Expose geodesic and topology recursions.
 * Sculpt Expand: Loops and recursion types.

January 11 - January 15
This week I ported geodesic distances to sculpt mode and started rewriting the expand operator to take advantage of that feature.

Next Week
 * Continue working on expand

Commits
 * Sculpt Expand: Expand from active.
 * Sculpt Expand: Expand from face set boundary.
 * Cleanup: Clang Format.
 * Sculpt Expand: Modify Active Face Set.
 * Sculpt Expand: face set selection snapping.
 * Sculpt Expand: Recursivity, move and falloff switching.
 * Sculpt Expand: Initial implementation of face falloff factors.
 * Sculpt Expand: Initial face sets expand target.
 * Sculpt Expand: vertex colors target.
 * Expand: Support for invert, preserve and mask gradients.
 * Sculpt expand modal keymap.
 * Add automatic falloff type switching to expand.
 * Implement boundary expand.
 * Basic mask expand operation working.
 * Initial commit for new generic sculpt expand operator.
 * Cleanup: Clang format.
 * Sculpt: Grab brush surface falloff.
 * Add experimental ripple effects option to the cloth solver.

January 4 - January 8
This week I reorganised the module workboard, fixed bugs and started tweaking the features in the branch based on the module meeting.

Next Week
 * Continue improving the features in the branch
 * See what can be done regarding the XYZ symmetry in weight paint

Commits
 * Fix crash in fairing and memory optimization.
 * Fix crash with scene project and dyntopo.
 * Sculpt Scene Project: Add option to use vertex normals and brush normal.
 * Sculpt: add option for use the center of mass to the sphere mesh filter.
 * Add missing random mask init menu.
 * Fix T79146: Sculpt Mode lags until the entire mesh is visible.
 * Fix crash with custom input curves versioning.
 * Fix warnings and windows build.
 * Fix windows build.
 * Sculpt: Update clay strips presets with custom input curves.