GSoC 2017 - Sculpting Tools

Hello all, This is Raja Kumar Kedia,

Sorry for delay,

I will be working on creating of new sculpting brush in this GSOC’17 project.

Link to my proposal: https://wiki.blender.org/index.php/User:Miyagix/GSoC’17/Proposal
Link to Report: https://wiki.blender.org/index.php/User:Miyagix/GSoC’17/Reports
Link to my Branch: https://developer.blender.org/diffusion/B/browse/soc-2017-sculpting_brush/

I will be mostly working on this two tools:

  1. Clipping Brush
  2. Topological Grab Brush

Clipping Brush:

In this GSoC, I will be designing a brush which when clicked on a mesh surface will cut a nice hole into the mesh according to the radius of the brush. This brush will help users to create a hard surface mesh deformation quickly without using boolean modifier which takes much time to do the same thing.

Topological Grab Brush (Currently Active):

This brush is similar to grab grab brush but the difference is that, this brush will only move the part of mesh which are directly connected to the central vertices in the brush.
A demonstration of Topological Grab Brush as in ZBrush: https://youtu.be/hanuVEHQF_8

Current Topograb demo in Normal Mesh: https://github.com/rajakedia1/GSoC-17-Files/blob/master/Topograb_mesh.gif
Current Topograb demo in Bmesh: https://github.com/rajakedia1/GSoC-17-Files/blob/master/Topograb_bmesh.gif
Other example: https://github.com/rajakedia1/GSoC-17-Files/blob/master/Sculpt_test.gif
Steps for Using or building this brush: follow post#8 of this thread.

I will require the help of blender artists and users to test the implemented features and also for the suggestion in the features.

Hope you will like my work. Looking forward for the feedback !

Hi there,
i m trying to build your branch with msvc 2015 win 64 and i m getting those errors, do mind to check them out?
http://pasteall.org/pic/show.php?id=116490
Thanks :slight_smile:

I’m very interested in the Clipping Brush, that alone would drastically improve the speed of my workflow!

Link to my work branch: https://developer.blender.org/diffusion/B/browse/soc-2017-sculpting_brush/

Hey,
I have seen your error but I am not able to figure out what is the error. I will be attaching a diff file in few hours so that you can test it out.
Thank you

Yesterday with the help of lazydodo and LetterRip the bug got solved. The problem is you didn’t make .png of that topological grab where are all other brush .png files. I did a copy and it worked :).
Just quick feedback when i was testing the clip brush, it crashes in the dyntopo. I know that we still have long way to go but wanted just try to see what we got already.

Yes, Clip brush is crashing in dyntopo mode but I have left it for time being. I am currently working in topograb and maybe in two or three day, I would be able to complete it. Thank you for the feedback.
Also, I remember that I had not commited that topograb.png due to some problem in my local branch! Sorry, I forget to mention :P. You can add any bruch icon in release/datafiles/brushicons and name it as topograb.png and it will work fine!

Test Version of Topograb brush has been made.

Link to the branch: https://developer.blender.org/diffusion/B/repository/soc-2017-sculpting_brush/

Demo: https://github.com/rajakedia1/mine/blob/master/img3/scuplt_topo.gif

How to open it: Sculpt Mode > Brush > Topo. or follow this : https://github.com/rajakedia1/GSoC-17-Files/blob/master/Sculpt_select_topo.gif

Adding new brush in startup file:
https://github.com/rajakedia1/GSoC-17-Files/blob/master/Sculpt_add_brush.gif

Possible error: Haven’t Tried mirroring yet but will do it soon. Consumption of high memory for now due to cache_>first_time error but I will fix it soon.

About the brush: Refer to Topological Grab Brush in my proposal.

Hi.
I am compiling on Linux (soc-2017-sculpting_brush). This is built successfully, but then I can not find the Topograb brush in sculpt mode.
Is it still necessary to make some manually modification?

Nice work ! Topological grab brush is very welcome ! Does calculating the area of effect have any impact on performance ? Could this be extended easily to other brushes ?

In terms of interface it would make more sense to me as a brush option instead of a separate brush, so that if per-brush size/strength are different, in this case they stay the same. Also from a design point of view brushes each tend to have one specific effect and variations in behaviour are usually implemented as options (pinch, trim) - the grab brush and the topological grab brush are essentially the same thing, hence my suggestion.

This is really awesome.

As blender opens startup.blend file first, you might not able to see it. You have to manually add that brush.

For direct use: Just go to: Brush > Topo or follow this (https://github.com/rajakedia1/GSoC-17-Files/blob/master/Sculpt_select_topo.gif).

To add new brush in startup.blend: open blender and follow this step: (https://github.com/rajakedia1/GSoC-17-Files/blob/master/Sculpt_add_brush.gif)

Thank you.

Thank you for the words. You are right are Topograb extends the feature of grab brush only thats why my try would be to create an option so that this feature can be extended to other brushes also. And also, calculating the area of impact is just a one time task and it is done just at the beginning of the stroke so that won’t be affecting performance. In my current final commit you might be able to see that.

This might help:

How to open it: Sculpt Mode > Brush > Topo. or follow this :
https://github.com/rajakedia1/GSoC-1…elect_topo.gif

Adding new brush in startup file: https://github.com/rajakedia1/GSoC-1…_add_brush.gif

Wish there was “Move all”, “Rotate all” brushes

On example of an ear, it would be easier to mask ear area, and move\rotate it into place. Or quick pose fix. It is possible now with “falloff off” and large scale brush, but its more like workaround, and a bad one.

Super advanced stuff would be “rotate around cursor”, sinse dense meshes arent responsive in edit mode, so there is no way to do quick adjustements like that. So i hope someday…

Ya sure, that seems useful. Maybe I would be looking into that some day.
Thank you.

Thanks for your reply miyagix ! A question out of curiosity if you don’t mind : do you calculate actual distance to affected vertices or do you simply exclude unconnected “mesh islands” from the brush effect ?
Say one wants to close a character’s mouth (where everything is the same mesh), will the brush affect the upper jaw as well ?

@Wakka, that sounds like a job for regular mesh editing, that being said basic transform tools without leaving sculpt mode would be nice indeed. With heavy meshes switching between edit and sculpt can take up to ten seconds so…

Thank you, that way I can find the brush!

Your question is good,
Actually what I am doing is calculating neareast vertex from brush center and then finding a group of neighbour connected vertex. Using this I am changing deformation of total vertex.
So, when you grab lower lip of a head, it wont be affecting vertices of upper lips unless they are directly connected inside brush area.
You might see this: https://github.com/rajakedia1/GSoC-17-Files/blob/master/Sculpt_test.gif

I will be sharing link to full algorithm soon.
Thank you.

Awesome. Yeah, this is what I meant, and my worries have dissipated. I am very thankful that you work on this !

Thank you for your comment,
I will try my best to do it. currently there is some problem in it regarding symmetry but I will try to fix it soon.