<p dir="ltr">Hi all,</p>
<p dir="ltr">I deeply apologize for not sending weekly report last week. I totally underestimated the workload of these last few weeks of this semester, and I want to kill myself now for not starting earlier on the project while the deadlines are still far away.</p>
<p dir="ltr">Nevertheless, after a few days of all-night working (and some classes laid off), I managed to get over with some course projects and pushed a little further the silhouette brush. Still the progress is not close to what I have expected, but I think I&#39;m almost, if not already, over the hardest part. (And the summer break is almost there!)</p>
<p dir="ltr">I did the following after last weekly report and have some questions to ask:</p>
<p dir="ltr">* I tried to add the Silhouette brush as a brush tool and make it listed in the brush selecting panel. I haven&#39;t code the real execution function yet but I want to make it &quot;usable&quot; first so that I can know what my code is doing. However, the buttons on the brush selector page are not generated separately as I thought. They are generated automatically through &quot;template_ID_preview&quot; function, which, to my understanding, searches the &quot;brush&quot; property of Paint and generate one button for each sculpting Brush. Therefore I need to add the Silhouette brush as a property of Paint. I read all the DNA, BKE and RNA sources that are related to brush, paint and sculpting, and I have added new entries in the enums defining sculpting tool types. But I never figure out where and when the brush data is generated. After reading lots of code and documents, I think maybe it has something to do with readfile.c since data is read and linked there, but I got so many small pieces and wasn&#39;t able to get them together. I have been stuck there for some time and could use some help and explanation.</p>
<p dir="ltr">* As for the functionality of the tool, the first thing is to calculate the nodes within the stroke. Unlike other sculpting tools, the nodes need changing can only be known after a stroke is finished (the user releases the mouse click), and it is not as simple as &quot;finding nodes within a selected area&quot;. </p>
<p dir="ltr">I am considering two ways to do the silhouette brush. The first is, as I described in my proposal, to draw a line as the new silhouette and deform one side of the line, and nodes that are on the side of the object are thus selected to be modified. Another approach is to use it as a normal brush (with brush size), and the nodes within the brush area are marked. Then we apply surface change after the stroke. This way node selecting is simpler but it is harder to apply surface deformation since the chosen area may be more unpredictable and irregular. I tend to stick to the way proposed, and I would like to hear Campbell&#39;s advice.</p>
<p dir="ltr">The thing is I haven&#39;t done much during the first month and it was partly because of some unexpected accidents but mostly because I didn&#39;t put my focus and attention on the project enough. This shouldn&#39;t continue since there are only two months left and I am at least 2 weeks behind the schedule, and the final exams are coming. I plan to finish the silhouette brush by the end of the mid-term evaluation, and I hope Campbell might give me a pass (。ŏ﹏ŏ).</p>
<p dir="ltr">Next week I shall finish the tool button and node selecting.  I&#39;ll also figure out the practical way to deform the surface, and do the mid-term evaluation.</p>
<p dir="ltr">Regards and apologies,<br>
Kairong Jiang</p>