Like this:

Good news! in a quick code sprint with Andrew yesterday we have being able to easily implement the Snake tool for LiveClay, a very useful brush that takes full advantage of dynamic subdivision to literally sculpt in the air 😉 this is the first version and I’m sure it can be further improved in the future but is quite good right now 😉 … crease brush coming soon 😉 Now surface mode sculpting is getting really powerful and feature filled 🙂

Like this:

I take some time to research and implement these two types of brushes with rely on LiveClay too on the surface mode so they can be quite useful and leverage functionality between voxel mode and surface mode. (Finally I can upload Full HD content Yay! ;))

Like this:

I have being working hardly to revamp and make much more faster the self collision part while sculpt, this is the most time consuming step in the ‘merge and split’ feature for LiveClay and thus require careful attention and as much optimization as we can in order to make a suitable real time tool even for huge meshes 😉

Well, a “must have” feature in dynamic subdivision methods is the possibility to merge, split and make holes through the polygon mesh while you sculpt, like have being proposed in the paper Freestyle.

The proposed method is algorithmically compatible with dynamic subdivision algorithm so i have started to perform my own implementation of that over LiveClay, is still a WIP feature and I’m only taking the very first steps, one of them, detecting what is the closest surface vertexes is almost done as you can see in the picture above.

Early test showing correctly detected closest points.

One drawback of this kind of methods are the speed, but I guess that is something that can be definitely worked on 😉

Ok, is the Neverending story the software developent, there’s always something to add, something to improve, some knobs to tweak 😉 I have realized that softwares like Meshmixer and Sculptris (greetings to their awesome devs ;)) limit somehow the amount of detail that a certain brush size can have , in order to avoid unnecessary geometry added and improve performance, if is bad to down-sampling the brush splat is worse to oversampling it 😉 you can use almost any parameter to trigger the edge subdivision, in my previous implementation I was using a temporal function depending on the radius (x) and the use defined detail level(z), the problem can be seeing as simpler or as complicated as you want, so I have spent most of this day trying different threshold functions until I found the function that best suits most of the artists use cases 🙂

Thanks to that, now polygons grow on a much optimal and smarter rate further increasing performance 🙂

Edit: How this function works? This function basically will return a value that will aid in the decision process of subdividing an edge, so choosing an optimal function will have a huge impact in the quality of the resultant stroke, if is not properly set you may end up subdividing a lot your edges for a relatively low detail stroke or you may not have enough detail for a detailed stroke, regarding your detail slider user controlled parameter.