Building a Tiling Paint Preset

OK, someone was confused about how to create a simple tiling paint preset.

So, let's do it.

From scratch.

Goto the Paint Synthesizer Classic Editor.

So i want to reset the paint synthesizer controls to a known state. So i'm going to reinitialize them. I could have used the Reinitialize paint synth macro edit command located in the integrated Help Browser. But i decided to do the same thing inside of the Editor itself.

So, holding down the shift key, i then pressed the Init button at the bottom of the paint synthesizer Editor. Note the handy help tip that appears when you position the mouse cursor above a Studio Artist interface element. So when you forget, you can use this feature to tell you what a particular control does.

Shift clicking the Init button reinitializes all of the Editor control panels. If i had just clicked Init without holding down the shift key, then only the controls in the current Path Start control panel would initialize.

So i want to paint single paint nibs for each path start location. To do that, i went to the Path Shape control panel and set the Max Path Length control to 1.

Now i want to paint in a grid. So i went back to the Path Start control panel and changed the Generator to Grid Scan-Max Brush. There are other grid scan options, but this one is nice because it automatically sets the tiling grid to be the size of your Source Brush.

If i now press action, i can see how my edits effect the behavior of the auto-drawing paint preset.

And there it is, a grid of single paint nibs.

Lets look at the current Brush Source control panel settings.

So i have a simple default computational brush that is generating the shape of the colored circles you see painted above.

If i change the Comp Brush parameter to Rect, i have changed my computational brush from a circle (sphere actually) to a rectangle.

If i now run Action, note how the painting changes to paint in rectangular tiles instead of circles.

Ok, so we now have a regular tiling pattern that is painting in solid colors for each tile.

So, how can i convert that into a photo mosaic preset that paints in different images in each tile block.

Super easy.

I run the File : Paint Synthesizer : New Image Folder Brush... menu command. 

A standard file dialog comes up asking me to select a folder of images. I do that.

So now my Brush Source Control panel has changed to the following:

You can see i now have an Image Folder brush for my Brush Source. Composed of a set of 91 images in a folder that are 48x32 pixels. For the purposes of this tutorial you want all of the images in your folder to be the same file. For fun, after the tutorial, try one where they are different sizes and see what happens.

If i now press Action, i get the following image painted in the canvas.

Cool, i now have a painted tile grid of images from my custom image folder. But you will notice that the image structure is defining the paint for each tile, as opposed to the actual image in the brush being painted directly.

Why is this, and how can we change it to get the actual image painted in.

Go to the Paint Fill Setup control panel. This is what you will see.

So, Fill From is set to Paint Color. 

And Fill To is set to Canvas Image.

So, pure black pixels (value = 0) in each image brush will fill with the paint color, pure white pixels in the image brush will fill in with the current canvas color, and pixels in between in the image brush will be a mix of the 2 based on the luminance value of the brush pixels. 

So this explains what you see painted in the canvas above.

Confused. DOn't be.

Think back to when you had a simple spherical computational brush (black int he center, progressing to white at it's boundaries, and how that painted in as colored circles that fade at their edges to the current canvas color there. 

So the same Paint Fill From and Paint Fill Apply settings are being used in both cases. Easy to visualize when your brush is a simple black and white sphere, harder to visualize when your brush is a set of different images with a variety of different pixel values in them.

But i just want to paint in the actual image being used for the brush.

Like i said, easy to set up.

We are still in the Paint Fill setup control panel.

Change the Fill From setting to Brush Image.

Change the Fill Option to From. 

So, with the 2 edits i just made, i specified that the Brush Image will be used as my Fill From source, and i don't want the brush to do any blending to a second Fill To signal.

press Action and you get the following painting.

And there they are. Each tile is one of your custom images in your image folder brush.

But wait, you say. Where did my source image go in the painting?

The paint synthesizer is doing exactly what you have told it o do. 

Let's go back to the Brush Source control panel and see what is happening.

So, looking at the MB 1D Frame Mod control, we can see it is cycling forward through the individual images in your custom image folder. Ever changing what is displayed on the canvas each time it paints. Fun, fun.

If you want the individual image tiles to be intelligently selected to represent the source image coloring, then change that MB 1D Frame Mod control to RGB Mapping.

So now the image used for painting in a tile is selected to best represent the source image coloring for that area of the canvas. Press Action and see what i mean.

And there it is, your photo mosaic image.

At this point, the person just getting started at making photo mosaic imagery usually starts in on complaining that the photo mosaic is not as representative of the source image as they would like. 

And the answer my friend, is that your results are only going to be as good as the set of images you have selected for your brush, how many different colors they can represent well, and how they match or don't match the source image. If that doesn't make sense to you, think about it a little bit. Then try some experiments with smaller and larger sets of different images. Hopefully it will start to make sense.

But suppose you are too lazy or 2 confused to do that.

No problem. There are other approaches.

Go back to the Brush Source control panel, and change that MB 1D Frame Mod control back to Cycle Forward. So now, each image painted will be different in each tile.

Then, go to the Paint Fill Setup control panel and change the Fill From setting to Paint Brush Load.

So, now we are routing the magical output of the Paint Brush Load control panel as our Fill From source for painting.

So, let's go to the Paint Brush Load control panel.

Change the Type to Image Processing.

Change the Source to Brush. (because we want to paint in the images in the image folder brush, remember).

Change the Algorithm2 setting to PaintColor MeanShift.

What have we done with our 3 editing changes here. We want to use Image Processing Brush Load, we want to use the Brush for the source so your images in the brush are run through the modular image processing in this part of the paint synthesizer, and we want to use one particular image processing operation, the PaintColor MeanShift algorithm to colorize each individual image folder brush right before it is painted on the canvas. The colorization comes from the current source color being routed through the paint synthesizer, which ties in to the particular location of the canvas being painted in.

Press Action, and there it is. You have now created a photo mosaic where each tile is a different image, but somehow magically thy still work to rep[resent the source image.

Now, at this point we have shown you how to generate a simple tiling preset that paints in a rectangular tiling pattern with one brush nib.

We then showed you how to use that to paint in a custom image folder brush.

We showed 2 different approaches to building the image positioning and coloring for 2 very different photo mosaic styles.

Hint, Hint:

There are a lot of different colorization algorithms in that Brush Load control panel. They all look visually different. That is why we offer so many. Explore, explore.

Here is a tip to help with that.

Technical Jargon

So what the hell does MB 1D Frame Mod mean for that control we keep editing in the Brush Source control panel. 

MS stands for movie brush. Studio Artist supported move brushes before it supported image folder brushes.

They basically work the same, one works off of frames in a  movie file, the other works off of images in a folder.

Frame Mod = Frame Modulation. How are we modulating through the index of frames as we paint. There are so many different ways to do it.

We are always happy to add more. Just tell us what you want. Yes, i know you want 4 or more quadrant RGB mapping. Coming to a Studio Artist in your future.

You need to be a member of Studio Artist to add comments!

Join Studio Artist

Email me when people reply –


  • Let's have an adventure.

    We are going to take a look at a whole other different approach to generating tiling effects using the paint synthesizer. We are going to be working with Path Start Regionization.

    Here's an old tip that discusses path start regionization.

    Here's another tip on building photo mosaic images using path start regionization.

    I modified our old friend the 'A Simple Rect Tile 1' paint preset to paint a simple tile mosaic using path start regionization. The new preset you can work with is called 'A Simple Regionize Tile1'.

    Go ahead and import the 'A Simple Regionize Tile1' paint preset.

    Press Action and watch it paint.


    The tile pattern is specified by the settings in the the Path Start control panel.


    Note that we are using the Rect Tile HV Split Regionize option for the Generator.

    The actual tile pattern is set by the H Tile and V Tile parameters. We specified that we want 10 horizontal rows, and 10 vertical columns. Note that whatever canvas size you have specified is going to be divided into 10 x 10 tile cells. So you are specifying how the canvas will sub-divide as opposed to setting a specific tile size in pixels like you did in earlier parts of this tutorial.

    Now you may be wondering why the Max Stroke is set to 255. Because a 10x10 tile pattern is 100 path starts for 100 tiles, so what is going on with Max Stroke = 255.

    One of the curiosities of how the paint synthesizer was written is that while the Max Stroke setting typically corresponds to the # of path start locations for paint strokes, when you are working with path start regionize generators the Max Stroke may be specifying something specific to the regionization algorithm you have selected for your Generator.

    For the Tile Split Regionizers, Max Stroke is actually specifying how the individual tiles will sub-divide. It corresponds to a gray level change. So values in the range of 1 - 255 are what you would be working with. The graylevel value you specify is a luminance difference value for sub division. By setting it to 255, none of the tiles sub divide.

    Try setting Max Stroke to 127.


    Run Action again and watch how the tiles now sub-divide based on the characteristics of your source image. Very cool.

    Try playing with different Max Stroke settings between 1-255 to understand how that changes the sub-division

    It is really worth running through the different control panels to see how this paint preset is setup for path start regionization.

    Let's start with the Pen Mode control panel.


    Note that we are using the Region Fill as Brush option for the Pen Mode.

    Here's a tip on the different pen modes.

    Region Fill as Brush pen mode paints in a single paint region for each path being drawn. Note that a single painted region is very different than the normal drops a series of individual paint nibs down along the path way many of the other pen modes work.

    The painted Region is drawn by dynamically constructing a temporary on the fly Brush Source based on the region being generated by the path.

    How the path is converted into a region to be painted is specified by the settings in the Region as Brush Mode control panel.


    The actual path itself is generated based on the settings in the Path Shape control panel.


    There is a special Path Type called Path Start Regionize that we are using. This path type generates a specific paint path based on each individual region being generated by the path start regionization process you are working with.

    Also Note that i have selected the Outline1 option for the Region Pattern Type parameter. This generates the path based on the external shape of the region.

    Ok, now you know a third way to generate tiling patterns. including ones that automatically sub-divide individual tiles to better represent the source image you are working with.

    A Simple Regionize Tile1

  • Like most things in Studio Artist, there is usually more than one way to do something.

    And that is true for programming tiling paint effects in the paint synthesizer.

    There are some very specific tiling options available in the Path Application control panel.

    So, let's start by opening the 'A Simple Rect Tile1' paint preset i attached in this thread earlier.

    Now, go to the Paint Start control panel of the Paint Synthesizer. Our tiling preset uses the Grid Scan - Max Brush option for the Generator. As we previously discussed here, that option tiles all of the path start locations.

    Let's change the Generator to Smooth Random.


    Clear the canvas, press Action, and observe how the single paint nibs now position themselves based on your smooth random path start generator.


    Now as i said, there is another approach to generating tiling effects in the paint synthesizer. We are going to use some of the features of the Path Application control panel to do it.

    Goto the Path Application control panel. Here is what it should look like.


    If you look at the Mode parameter, there are 2 tiling options in there you can choose from. Select the Rect Tile one.

    Now, you will also want to adjust the Spacing to the appropriate setting for the tiles to be laid adjacent to each other. You want to set the Spacing to 200.


    The Spacing is the amount of canvas space that is traversed between paint nib applications to the canvas. For a tube of paint, you would want them fairly close together. For tiling, you usually want to set it to 200%, which will insure that the tiles are spaced tight without overlap.

    Now press Action and see how the application of the paint nibs is constrained to be a tile pattern.


    What happens if you set Spacing to 50%. Try it and see. 

    Try setting the Mode to Hex Tile. Notice the rectangular tile pattern now changes to a hexagonal tile pattern.


    There are 2 different Hex Tile options in there. Try them both and see the difference.

    Ok, now you know 2 different approaches to building tiling patterns when working with single paint nibs in the paint synthesizer.

    And you learned some more about both the Path Start control panel and the Path Application control panel of the paint synthesizer.

  • So i'll take pity on people getting started and include the colored rect tiling paint preset. Attached below.

    Along with the 2 photo mosaic presets that use my custom image folder.

    So, if you try to open them, it's going to ask you where the image folder is i used for the brush. You need to point it at your own folder of images when that standard file dialog comes up. Note that the tiling will adjust to your image size. So if your images are almost as big as your canvas, don't be surprised when the tiles paint that large size of your images.

    A Simple Rect Tile1

    An Image Folder Brush RGB Map Tile1

    An Image Folder Brush Colorized Tile1

This reply was deleted.