Photoshop: Brush Definition Language

  • 1
  • Idea
  • Updated 6 years ago
  • (Edited)
I want a brush definition language, which would give vastly more flexibility than the current approach. Right now, you can choose a whole ton of options, but they're applied in a pre-set order. A specific limitation that annoys me is the way that brush roundness and rotation are always applied before any texturing. The implication of this is that the texture doesn't rotate or flatten, which would be extremely useful at times (e.g. when painting a foreshortened surface).

I'd love a shader-like language or wiring UI for defining brushes, which would give me this flexibility, and then some. For example (and this is a made-up syntax, ill-considered but illustrative):

brush {
inherit: "default.abr/Hard Round Pressure Opacity";

wet-edges: true;

// "focus" is a custom variable, defined as the 100% minus the tablet pen pressure
var focus: invert( penpressure() );

// The size of the marks made by the brush ("drawsize") can be influenced
// with [ and ] (via brushsize()), but is multiplied by focus, so the harder I push,
// the smaller the tip.
drawsize: brushsize() * focus;

// similarly, scatter and opacity are reduced when I press harder
scatter: jitter( invert( penpressure() ), 50%);

// Opacity, however, is also limited by a fade, which reaches 0% after 15px times the user-set brush size.
opacity: 2 * penpressure() * falloff(15 * brushsize(), Falloff.LINEAR);

// Override the image used to paint to the canvas.
override definesprite() {
// rotate the texture according to the pen rotation, but THEN flatten it horizontally
var sprite = roundness( texture(), penrotation()), 50%) ;
return sprite;

As far as I can tell, all these capabilities are already in the painting engine, this would just provide a much more powerful way of wiring them all together.

Users could still use the provide UI to override elements of the brush - for example, they could change which texture is used. Brushes might define brush-specific parameters, as well, so users could override the 'scrape' or 'oiliness' of brushes for which those concepts had been defined.
Photo of Michael Prescott

Michael Prescott

  • 9 Posts
  • 1 Reply Like

Posted 6 years ago

  • 1

Be the first to post a reply!