# GSoC 2017 Silhouette Brush

**URL:** <https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576>\
**Category:** Blender and CG Discussions\
**Created:** [May 31, 2017, 3:40am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576 "2017-05-31T03:40:00Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Witt](https://blenderartists.org/letter_avatar_proxy/v4/letter/w/f9ae1b/32.png) [@Witt](https://blenderartists.org/u/Witt)\
**Post date:** [June 26, 2017, 5:41am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/21 "2017-06-26T05:41:55Z")

</div>

> [@zeauro](#):
>
> But it looks like you are trying to generate a really complex rounded geometry.
> 
> Maybe it is too ambitious.

Indeed, my goal is to create a tool which can generate very complex geometry. From a developer perspective, the main challenge is not to have rounded shapes but shapes with a useful topology. A quick approach which might be feasible as well would be to generate a triangulated shape with random but evenly distributed triangles. As you’ve said this would need a retopo afterwards.

With my current approach I am expecting a topology like this:

 ![](https://blenderartists.org/uploads/default/original/4X/e/e/2/ee26ade3fb876ecccad5a0e5c64e747065316346.png)  
  
I will see how it turns out. If its not generating properly or I run into too many issues i might still try the other approach.

---

<div class="post-metadata">

**Author:** ![Hadriscus](https://blenderartists.org/user_avatar/blenderartists.org/hadriscus/32/978263_2.png) [@Hadriscus](https://blenderartists.org/u/Hadriscus)\
**Post date:** [June 26, 2017, 6:38am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/22 "2017-06-26T06:38:24Z")

</div>

This kind of generated topology looks really okay - it’s a bit stretched in places but if it can accomodate any shape drawn by the user it’s actually pretty convincing ! after all this is a tool for concepting and early shaping, so I wouldn’t expect it to output final animation-ready topology… just more or less regularly spaced polygons with a flow that makes sense - the goal is to be able to sculpt on top of this and not need a complete remesh right off the bat. This looks a bit like the skin modifier output, by the way… if you’re looking at other means of generating topology there’s also the method used in remesh modifier - dual contouring ([https://wiki.blender.org/index.php/Dev:Ref/Release\_Notes/2.62/Remesh\_Modifier](https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.62/Remesh_Modifier)) and there’s dyntopo too, although I have no idea how it works…

+1 for the brush version as well - I reckon it cannot be tweaked after a stroke while an operator can, but maybe it can have options of its own.

Good continuation !

---

<div class="post-metadata">

**Author:** ![zeauro](https://blenderartists.org/user_avatar/blenderartists.org/zeauro/32/443778_2.png) [@zeauro](https://blenderartists.org/u/zeauro)\
**Post date:** [June 26, 2017, 8:49am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/23 "2017-06-26T08:49:46Z")

</div>

> [@Hadriscus](#):
>
> This kind of generated topology looks really okay - it’s a bit stretched in places but if it can accomodate any shape drawn by the user it’s actually pretty convincing !

I disagree. It does not look able to handle sharp concave shapes.  
If there is a way to do a negative stoke after the first one, concave shapes with sharp angles will be something wanted.  
It already seems to produce triangles that will be problematic if user wants to go to a higher level.

You have control of the drawn stroke. You can force it to have an even number of edges.  
So, surface can be filled by a grid and extruded and loop of extrusion can by divided.  
As is, you obtain a quads only geometry done without a remeshing.  
It is as stupid as a cube subdivided and as a cube subdivided, it can be kept sharp by user or smoothed with a smooth brush.

---

<div class="post-metadata">

**Author:** ![Michael\_Knubben](https://blenderartists.org/user_avatar/blenderartists.org/michael_knubben/32/10600_2.png) [@Michael\_Knubben](https://blenderartists.org/u/Michael_Knubben)\
**Post date:** [June 27, 2017, 1:40am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/24 "2017-06-27T01:40:17Z")

</div>

Wouldn’t geodesic triangles be a better pattern to fill arbritary shapes? That’s what I was expecting, something similar to a dyntopo detail fill.  
Something like

 ![](https://blenderartists.org/uploads/default/original/4X/2/f/7/2f7fddb7d23e03f8749499dffcc8ac5c0f0a83fb.png)

---

<div class="post-metadata">

**Author:** ![erickBlender](https://blenderartists.org/user_avatar/blenderartists.org/erickblender/32/544921_2.png) [@erickBlender](https://blenderartists.org/u/erickBlender)\
**Post date:** [June 28, 2017, 3:23am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/25 "2017-06-28T03:23:23Z")

</div>

> [@pitiwazou](#):
>
> Speedsculpt already do this ^^

It is always better to have such tool build-in in Blender, and not everyone can afford it (me thinking about very poor student artists)

---

<div class="post-metadata">

**Author:** ![erickBlender](https://blenderartists.org/user_avatar/blenderartists.org/erickblender/32/544921_2.png) [@erickBlender](https://blenderartists.org/u/erickBlender)\
**Post date:** [June 28, 2017, 3:32am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/26 "2017-06-28T03:32:44Z")

</div>

> [@Witt](#):
>
> Indeed, my goal is to create a tool which can generate very complex geometry. From a developer perspective, the main challenge is not to have rounded shapes but shapes with a useful topology. A quick approach which might be feasible as well would be to generate a triangulated shape with random but evenly distributed triangles. As you’ve said this would need a retopo afterwards.
> 
> With my current approach I am expecting a topology like this:  
> [ATTACH=CONFIG]489181[/ATTACH]  
> I will see how it turns out. If its not generating properly or I run into too many issues i might still try the other approach.

I have to agree with other artists here, I was thinking that you will implement the tool only for dyntopo and full triangles. I was thinking that GSOC is so short that it might be better to do something quick and usable and if you need a better implementation, you will fix the old one bit by bit when you have time even after Gsoc. You are the coder and it is all up to you.

---

<div class="post-metadata">

**Author:** ![YAFU](https://blenderartists.org/user_avatar/blenderartists.org/yafu/32/25605_2.png) [@YAFU](https://blenderartists.org/u/YAFU)\
**Post date:** [July 7, 2017, 6:56am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/27 "2017-07-07T06:56:51Z")

</div>

Hi.  
Just to say that I am currently not able to compile “soc-2017-sculpting\_improvements” branch on Linux:  
[http://pasteall.org/463416](http://pasteall.org/463416)

---

<div class="post-metadata">

**Author:** ![Witt](https://blenderartists.org/letter_avatar_proxy/v4/letter/w/f9ae1b/32.png) [@Witt](https://blenderartists.org/u/Witt)\
**Post date:** [July 10, 2017, 10:45am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/28 "2017-07-10T10:45:14Z")

</div>

Thanks for the report.  
I have reworked a big portion of the code now. It should build now successful.  
I am hoping to get the basic mesh generation done tomorrow currently it is not much to see.  
If you want to try you can rebind the keys in the preferences/input/3DView/Sculpt/Draw Silhouette or use alt+leftclick if available.  
The binding will change, it is just temporary for testing.

I will update my branch now more regularly.

---

<div class="post-metadata">

**Author:** ![Michael\_Knubben](https://blenderartists.org/user_avatar/blenderartists.org/michael_knubben/32/10600_2.png) [@Michael\_Knubben](https://blenderartists.org/u/Michael_Knubben)\
**Post date:** [July 11, 2017, 1:48am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/29 "2017-07-11T01:48:00Z")

</div>

Looking at the gif in your report, the generated geometry looks very rather flat. Will it always be this thickness, or is the thickness dependent on shapes complexity?  
When drawing a circle, I’d hope for the shape to be a sphere (as the image up there), will that be the case? I brought up Teddy3d as an example before, and I still think it’s a nice example to take your cues from.

---

<div class="post-metadata">

**Author:** ![Witt](https://blenderartists.org/letter_avatar_proxy/v4/letter/w/f9ae1b/32.png) [@Witt](https://blenderartists.org/u/Witt)\
**Post date:** [July 12, 2017, 8:23am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/30 "2017-07-12T08:23:57Z")

</div>

Hi Mighty Pea,  
the thickness will be dependent on different factors.  
The most basic setting is the depth option. You can set your preferred depth and it will generate a shape with that thickness.  
If you draw a circle, depending on the smoothing factor, either a sphere or a cylinder is created.  
The smoothing factor is fixed between 0…1.  
0 = being a cylinder with hard corners.  
1 = results in a sphere.  
0.5 = is a cylinder with rounded corners.  
Don’t expect a perfect sphere though, a circle is basically the worst case for my topology analysis algorithm.

---

<div class="post-metadata">

**Author:** ![erickBlender](https://blenderartists.org/user_avatar/blenderartists.org/erickblender/32/544921_2.png) [@erickBlender](https://blenderartists.org/u/erickBlender)\
**Post date:** [July 25, 2017, 12:20pm UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/31 "2017-07-25T12:20:10Z")

</div>

Yo Witt, how to you call the brush? what is the shortcut key to use?

---

<div class="post-metadata">

**Author:** ![Witt](https://blenderartists.org/letter_avatar_proxy/v4/letter/w/f9ae1b/32.png) [@Witt](https://blenderartists.org/u/Witt)\
**Post date:** [July 28, 2017, 12:02pm UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/32 "2017-07-28T12:02:57Z")

</div>

You can draw a new silhouette by pressing alt+LMB within sculpt-mode.  
This is just a temporary key-binding. If you are on Linux and pressing alt is system reserved you will need to rebind the key in the user preferences.  
preferences/input/3DView/Sculpt/Draw Silhouette

hope it works!

---

<div class="post-metadata">

**Author:** ![erickBlender](https://blenderartists.org/user_avatar/blenderartists.org/erickblender/32/544921_2.png) [@erickBlender](https://blenderartists.org/u/erickBlender)\
**Post date:** [July 30, 2017, 10:47am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/33 "2017-07-30T10:47:08Z")

</div>

> [@Witt](#):
>
> You can draw a new silhouette by pressing alt+LMB within sculpt-mode.  
> This is just a temporary key-binding. If you are on Linux and pressing alt is system reserved you will need to rebind the key in the user preferences.  
> preferences/input/3DView/Sculpt/Draw Silhouette
> 
> hope it works!

Yes it working pretty well here, i tested it and made some notes and a short video:  
The operator is looking good so far it crashes with default setup: [https://youtu.be/VdIV5Mb2XX4](https://youtu.be/VdIV5Mb2XX4)

---

<div class="post-metadata">

**Author:** ![Witt](https://blenderartists.org/letter_avatar_proxy/v4/letter/w/f9ae1b/32.png) [@Witt](https://blenderartists.org/u/Witt)\
**Post date:** [July 31, 2017, 2:43am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/34 "2017-07-31T02:43:01Z")

</div>

Wow, thanks for the great video!  
I am glad you got it working.

I will try to fix and improve the points you mentioned in the video.  
About the crashes with default setup:  
The values are restricted to a certain range but when loading with older factory settings it is out off bounds.

- Should be an easy fix

Thanks again for the video, very motivating!

---

<div class="post-metadata">

**Author:** ![YAFU](https://blenderartists.org/user_avatar/blenderartists.org/yafu/32/25605_2.png) [@YAFU](https://blenderartists.org/u/YAFU)\
**Post date:** [July 31, 2017, 12:22pm UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/35 "2017-07-31T12:22:28Z")

</div>

Here in Linux it crash whit segmentation fault when I use my Blender configuration. But I can use the brush with clean Blender config folder. I’m not sure if the problem is some addon I installed or something else …

Hey Witt, maybe “ShrinkWrap Smooth” from this addon might be useful for you?:  
[http://www.kjartantysdal.com/scripts/](http://www.kjartantysdal.com/scripts/)

It is useful to get more uniform quad meshes (you need to remove doubles first).

It would be nice to get that in C++ 🙂

By the way, if anyone wants to collaborate with KTools developer, here where to buy the addon:  
[https://blenderartists.org/forum/showthread.php?383998-Addon-Kjartan�s-Scripts](https://blenderartists.org/forum/showthread.php?383998-Addon-Kjartan%92s-Scripts)

---

<div class="post-metadata">

**Author:** ![erickBlender](https://blenderartists.org/user_avatar/blenderartists.org/erickblender/32/544921_2.png) [@erickBlender](https://blenderartists.org/u/erickBlender)\
**Post date:** [August 19, 2017, 4:48am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/36 "2017-08-19T04:48:29Z")

</div>

Yo witt, I m getting compiler error with today build (10 min ago) -\> [http://pasteall.org/pic/show.php?id=118099](http://pasteall.org/pic/show.php?id=118099)

---

<div class="post-metadata">

**Author:** ![tobbew](https://blenderartists.org/letter_avatar_proxy/v4/letter/t/df788c/32.png) [@tobbew](https://blenderartists.org/u/tobbew)\
**Post date:** [August 19, 2017, 10:23am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/37 "2017-08-19T10:23:15Z")

</div>

I’m really interested in this feature. How far has this branch reached? Is it ready for widespread use?

---

<div class="post-metadata">

**Author:** ![Witt](https://blenderartists.org/letter_avatar_proxy/v4/letter/w/f9ae1b/32.png) [@Witt](https://blenderartists.org/u/Witt)\
**Post date:** [August 20, 2017, 3:39am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/38 "2017-08-20T03:39:02Z")

</div>

> [@erickBlender](#):
>
> Yo witt, I m getting compiler error with today build (10 min ago) -\> [http://pasteall.org/pic/show.php?id=118099](http://pasteall.org/pic/show.php?id=118099)

Thanks for the info! Should be fixed now. Your compiler is a little more strict about pointer arithmetic. 😉

> [@tobbew](#):
>
> I’m really interested in this feature. How far has this branch reached? Is it ready for widespread use?

Unfortunately it is not ready for widespread use yet. In the last week i finished the features i want to implement in the GSoC timeframe. I added a lot of new methods to support connecting new and old geometry. This also introduced a lot of bugs. It is currently barely usable due to two or three mayor bugs. In the next week i will try to solve as many bugs as possible and polish the tool.  
In addition to that a couple of other features still need to be implemented. General usability features are not yet implemented. For example drawing on the virtual view plane set by the 3D Cursor is tedious and the depth settings are just a gamble to get right.

I am planning to polish the tool and add a couple of usability features after the GSoC. But for now I am trying to get the bare basics working.

[_http://imgur.com/a/mB7xm_](http://imgur.com/a/mB7xm)

Btw. to use the subtract mode press alt+right instead of alt+left (Bindings will change)  
(performance is currently horrible as well…)

---

<div class="post-metadata">

**Author:** ![erickBlender](https://blenderartists.org/user_avatar/blenderartists.org/erickblender/32/544921_2.png) [@erickBlender](https://blenderartists.org/u/erickBlender)\
**Post date:** [August 20, 2017, 8:49am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/39 "2017-08-20T08:49:06Z")

</div>

> [@Witt](#):
>
> Thanks for the info! Should be fixed now. Your compiler is a little more strict about pointer arithmetic. 😉
> 
> Unfortunately it is not ready for widespread use yet. In the last week i finished the features i want to implement in the GSoC timeframe. I added a lot of new methods to support connecting new and old geometry. This also introduced a lot of bugs. It is currently barely usable due to two or three mayor bugs. In the next week i will try to solve as many bugs as possible and polish the tool.  
> In addition to that a couple of other features still need to be implemented. General usability features are not yet implemented. For example drawing on the virtual view plane set by the 3D Cursor is tedious and the depth settings are just a gamble to get right.
> 
> I am planning to polish the tool and add a couple of usability features after the GSoC. But for now I am trying to get the bare basics working.
> 
> _[http://imgur.com/a/mB7xm](http://imgur.com/a/mB7xm)_
> 
> Btw. to use the subtract mode press alt+right instead of alt+left (Bindings will change)  
> (performance is currently horrible as well…)

I did build it but it is crashing when i finish drawing the first silhouette.

---

<div class="post-metadata">

**Author:** ![YAFU](https://blenderartists.org/user_avatar/blenderartists.org/yafu/32/25605_2.png) [@YAFU](https://blenderartists.org/u/YAFU)\
**Post date:** [August 20, 2017, 9:50am UTC](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576/40 "2017-08-20T09:50:42Z")

</div>

Hello.

This does not crash here on Linux. But as I mentioned time ago, there is no crash but only with empty user configuration folder (I rename “2.79” folder in /home/USER/.config/blender). I’m not sure where the incompatibility that makes crash is in case you use your usual blender configuration folder.

[Previous page](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576.md?page=1)

[Next page](https://blenderartists.org/t/gsoc-2017-silhouette-brush/690576.md?page=3)
