Painting a Chaotic Attractor

Studio Artist’s paint synthesizer can be extended by embedding MSG presets into the paint synthesizer. Today’s post will show how to take a MSG preset that generates a Pickover chaotic attractor and use it as a MSG Path Start Generator to drive auto-painting in the paint synthesizer.

MSG presets are modular image processing effects that can be used to build abstract procedural or fractal imagery as well as image and video processing effects. Because the MSG architecture is modular in nature, you have the capability to create an unlimited number of different MSG effects.

MSG presets can be directly embedded into the paint synthesizer in 4 different ways. You can use MSG presets as Path Start Generators, Path Shape generators, for MSG Brush Load processing to generate a dynamic paint nib, and as MSG Live Brush Sources (where the MSG preset generates a dynamic source brush in real time. Typically you would only use one of these 4 options at any given time.

For the painted chaotic attractor shown above, I used the MSG Scan Generator option for the Generator parameter in the Path Start control panel (first gallery image below). This Generator option uses the embedded MSG preset to generate a series of path start points. The path start scan points being generated by the embedded MSG preset trace out a point cloud associated with chaotic attractor image the MSG preset generates.

I used the MSG path start generator in conjunction with a specific set of Path Shape control panel settings that work to trace out the series of generated path start points as a continuous painting that traces through the individual path start points one by one. So the paint path traces through the path start points as opposed to the normal auto-painting approach where individual paths radiate out from individual path start points (ignoring the previous path start point).

Specifically, I used the the Path Load option for the Path Type parameter in the Path Shape control panel (2nd gallery image above). The specific Path Load generator used is determined by the Load Type parameter, which is set to the Last Path Start SpineTo option. The Path Load path shape generator has many different Load Types, they all look different.

What Last Path Start SpineTo does is to generate a smooth spline path from the previous path start point to the current path start point. So it’s a very effective solution to the problem we’re trying to solve in this paint preset (which is to trace out a continuous chaotic attractor shape as the auto-painting process progresses over time). The embedded MSG preset is generating a series of path start points on the fractal chaotic attractor. The Path Shape for auto-painting is then computed so that a smooth spline paint path is generated from the last path start point to the current path start point.

I used a low Blend value of 7% in the Paint Fill Apply control panel, because I wanted the shape of the painted in chaotic attractor to build up over time (3rd gallery image above). So the individual paint paths are very light, and as they overdraw on top of one another the paint intensity builds from the black background I started with. This approach works better to help define the density characteristics of the underlying chaotic attractor, as opposed to using a 100% Blend setting.

I also wanted to insure that my embedded MSG preset was actually saved in the paint preset file when I exported the paint preset. So I turned on the MSG Save in Preset parameter located near the bottom of the Miscellaneous control panel (4th gallery image above).

The current MSG Advanced Editor settings are used for any paint preset that is accessing embedded MSG features. So if you didn’t save the MSG settings in the paint synthesizer preset (by turning on the MSG Save in Preset parameter as discussed above), then when you loaded a paint synthesizer preset that had embedded MSG activated it would just use whatever the current MSG preset is currently loaded. If you load a paint synthesizer preset that did save MSG inside of it, then when you import that paint preset the current MSG preset will be overwritten by the one stored inside of the imported paint preset.

Typically you would want to save the MSG preset in a paint synthesizer preset that uses embedded MSG features. But you can override that behavior if you need to when editing.

MSG Chaotic Attractor

The image gallery below shows off the simple MSG preset I used to generate a chaotic attractor. Note that a PickoverChaosGen processor is used to generate a black and white chaotic attractor image into the R Out image stream. A 1to3 processor is then used to convert the black and white attractor image into a 3 channel (R Out, G Out, B Out) output for the MSG preset. MSG presets always output 3 channel color output, so if your effect just generates a black and white image in a single image stream you need to do something like we did with the 1to3 processor IO routing to make sure that all 3 output image streams (R Out, G Out, B Out) are set to a valid generated image.

The 3rd gallery image above shows off some mutated variations of the original chaotic attractor generating MSG preset in the Evolution Editor. Note that I set the Randomize percentage control at the top of the Evolution Editor to 10%, so that my mutated variations were not wildly divergent from the original starting MSG preset.

Chaotic attractor generators tend to be very sensitive to their editable parameter settings, so that slight variations in one of the parameters can cause a big change in the appearance of the chaotic attractor. They also tend to generate a lot of junk, by which we mean that some parameter settings will lead to an uninteresting or even blank image output. Using a small mutation randomize percentage will help with this parameter sensitivity when working with mutated variations of chaotic attractors in the Evolution Editor.

Not all MSG processors can be used as Path Start MSG Scan Generators, or as MSG Attractor Path Load options for generating automatic Path Shape. They need to be MSG processors that generate internally a series of scan points. So you are limited to processors like the different IFSGen or other chaotic attractor or Lissajous generating processors that work internally by generating a series of scan points.

MSG Scan Generators, or as MSG Attractor Path Load options are also based on a single individual processor in the MSG preset, as opposed to the entire MSG preset. This is because they work off of the first processor in the MSG preset’s processor chain list that supports scan generator output.

So if there are multiple processors in the MSG preset, only the first one that supports scan generator output is used for these 2 types of MSG preset embedding in the paint synthesizer (the others are ignored). And if the MSG preset has no processors that support scan generator output, then the MSG preset will not do anything of interest to drive the paint synthesizer for these 2 types of MSG embedding.

Any MSG preset can be used as a MSG Brush Load or MSG Live Source Brush. That’s because these 2 approaches to embedding MSG preset into the paint synthesizer use the image output from the MSG preset in the paint synthesizer as opposed to the internal scan generator output associated with a particular MSG processor.