Ok cool, let me explain a few features better.
And I will get to it later, but regarding keeping it simple, I could not agree more. And will go further to say that the best advanced features are those that are presented in a simple way, easy to understand and use.
More details later.
So features explained:
Replication is best thought of in terms of stroke.
All accessed through the stoke setting of any brush.
So there are more features with stroke. Both Zbrush and Mubox have these features in varying degrees of interface simplicity.
Stroke:
Continuous - normal default most apps use
This creates a blended line from the selected brush along the users stroke like a real world paint brush
Dot - rather than continuous it takes the brush and paints it once in succession along the users brush stroke.
If the brush is a default circle, for example (Plotoshop), it would make a line of dots along the users stroke with user defined space in between.
Any other brush would have this same ability. An alpha of a foot print would make a line of footprints etc.
Two extra features here would be
Vertical away from the center of the brush along the path.
horizontal distance from the center of the brush.
To visualize these settings think distance between the feet and the offset and distance from the center of the stride of footprints.
Would also be useful for stitching or punched holes in shoes etc.
Smooth - is an adjustable curve strength interpolated along the stroke to anticipate a smooth curve rather than the normal erratic stroke of the user which is usually uneven.
I will pause here to discuss how all of these advanced features and settings could be hidden from the user as well as exposed in a simple predictable interface.
I will start this by discussing what a brush actually is.
A brush is simply an empty container.
Think of it as a node. It has inputs operators and an output.
In its bare minimum state, a brush would be a dot with blurred edges (an alpha plugged into the input) and with a default stoke operator setting plugged in and of course the output would be what occurs on the surface when the user paints.
Alternatively a brush node could be possibly plugged into a 3D node input and then that is output to the surface of the sculpt as a bump.
This would be your default draw brush in Blender and Zbrush.
Side bar: Every brush is made this way.
A menu of thumbnails of a variety of brushes would be nothing more than a brush with different node settings - inputs outputs operations- saved as a brush.
By default, the average beginner user would never even have to know each brush can be edited and saved or that they could create any of these brushes on their own with custom settings in the brush mode editor or even know that the node editor even exists.
Parameters for each brush could be exposed by the brush author (just as in shader nodes in Unity) for the user to adjust. Such as strength, size, stroke settings etc.
So also in the Brush Node Editor would be the ability to choose a 2D or 3D input.
Enter the replication of objects along a surface.
It’s just another input to the node. It’s not a special brush or extra feature for the initiate. Even a basic user could find this and also make one.
Enter brush libraries.
Now here is where community input could be helpful.
Similar to Photoshop and Zbrush or Substance.
Now you have set the stage for an infinite number of brushes to be created.
But by default - eventually - there could be shelfs of brushes available. For the basic user these would just be the easy to access default brushes. Say a dozen or so.
As they get more advanced, they could learn that they can add additional libraries.
Then that these libraries could be found online.
Then that in fact they could make their own brushes in a simple node interface which is far more straightforward than making custom brushes in Zbrush.
So, the design of the nodes for brushes is not my area of expertise but I think the more simple and extensible and repeatable the better.
Think of the main brush node as a shader.
Ok this is long.
Layers:
Simply put like Photoshop.
Also…
Again nodes.
Sculpt layers could be simple interface elements. But digging deeper you find the layers are in fact nodes within a node tree.
And a layer has inputs operators and an output.
One layer is plugged into another through a mix node.
It can mix on a simple level or rather take the output of the brush and mix its output with another layer.
So for example you could make a mask layer which would simply erase the layer underneath by the value of the brush.
Or it could add.
Or it could cut 3D parts away from the underlying layer, or add 3D parts to the underlying layer etc.
Again these would be in fact node connections.
And again, hidden from users by exposing simple layer settings.
That’s more than enough for now… ha ha ha!