New combiner functionality

An “Intersect” mode would be useful, allowing you to check whether or not two masks intersect. My idea for the implementation is as follows:

  • Input A is an arbitrary shape/collection of pixels (CoP).
  • Input B is an arbitrary shape/CoP.
  • For this example, let’s take a circle as a shape for both input A and B (see image 1, A is green, B is red).
  • The combiner will check whether or not the pixels of input A overlap with any of the pixels of a shape/CoP of B. If a shape/CoP overlaps, that whole shape/CoP is passed through to the output.
  • The shapes of A are not passed through to the output (these could always be added later on via a simple Combiner[Add]).
  • The Strength parameter will determine how “tight” the shapes/CoP are defined. At 1, only pixels directly next to each other (that is, to the left, right, above or below and not diagonally above/below) are counted as a shape/CoP. At some lower value, this also counts for pixels that are diagonally above and below each other and at 0, some bleeding may occur, let’s say a bleed of 4-8 pixels at maximum. See image 2 for an illustration of this mechanic.


Image 1: A is green, B is red. The white circle represents the output of the combiner, the dotted lines where non outputted shapes are in respect to what is being outputted.


Image 2: When do pixels count as a shape/CoP. The red pixel has an intersection and therefore the shape this pixel is part of will be outputted (right side). From top to bottom: Strength at 1, only direct neighbouring pixels count as a shape and will be outputted. Strength < 1, neighbouring pixels that are diagonally above or below are now also included. Strength 0, some bleeding may occur and shapes that do not have direct contact with the intersecting shape can be outputted as well. Note: The cut-off points for these inclusions are arbitrary and for illustrative purposes only.

This feature may be too alien for the Combiner device and a specialised Intersection device may be needed. I hope this feature can be added to World Machine, as it would make for some really interesting masking capabilities.

1 Like

Very interesting idea.

I’ve had a few similar ideas over the years; you can definitely run into this kind of set or pixel-region based approach in a lot of different unrelated areas, but I haven’t found a good “killer app” for it so to speak, where it enables a broadly useful feature. I should definitely start enumerating the use cases for it though, as it can still certainly be valuable if it independently enables enough neat effects.

It is probably too distinct from standard Combiner functionality to belong there - some kind of specific Region Combiner/Set Operator/et al would be useful.

1 Like

Glad to hear it’s been on your mind for some longer time. In the mean time, I have a crude hack/work around that does the job.

The white circle is input A, the river and Voronoi backgrounds are input B. I will send you a copy of the macro per dm when it’s ready.