I have several "confetti" images that I want to take the design and create a method so I can replicate it as a fill I can apply to shapes/outlines.

Here's an example of the source image.

enter image description here

I'm not set on Illustrator or Photoshop, pretty much whatever I can use to do this efficiently.

I'm trying to avoid manually cutting out each circle.


The issue is setting-up the initial pattern so it has layering and the color-variation.

I've looked into some Illustrator scripts to randomize fill color and randomize ordering but this means that I'd have to extract each color circle and save it as a symbol for it to be of use.

I was considering using Jongware's CircleFill script to generate circles and then apply styles but then there is the issue of ordering and layering plus color randomness to account for.

I have access to Astute plugins now but I'm VERY new to learning them so I'm not sure if any of them can help me.


  1. I've started tinkering with "seed pods" of circles that I apply a random transform each command to. My issue now is that I have to create a lot of variations. Is there a more efficient way to create these and then splice them all together?
  • I honestly am not sure there's anything which will help, other than symbols and scripts.
    – Scott
    Commented Feb 19, 2018 at 21:23
  • Perfect example of a good "how do I do a thing" question Commented Feb 19, 2018 at 22:15
  • 1
    @Silly-V Nothing is wrong with asking. It's about the amount of effort put in. There's a big discussion going on here graphicdesign.meta.stackexchange.com/questions/3368/… Commented Feb 20, 2018 at 14:19
  • 1
    @Ovaryraptor I think your post is a good example for new users to see how they should format their question yes. Commented Feb 20, 2018 at 15:54
  • 2
    @LateralTerminal I took the liberty to add emphasis to your first comment, to underscore that you are giving positive feedback. Feel free to re-edit, and take into account the site is still suffering from a problem where italic and bold don't display in all browsers.
    – Vincent
    Commented Feb 21, 2018 at 9:52

1 Answer 1


You can use raster images in various layers and colors along with the Illustrator "Object Mosaic" feature. Once you have your object turned into many colorized squares by Illustrator automatically, you can ungroup everything and apply a rounded corner effect or appearance to make each square into a circle. Also you can use the convert-to-shape or various fill transforms in the appearance palette to effectively turn each little square into virtually any shape you desire by using graphic styles.

But, work will not be over yet as there's the randomization /swarming to account for. In order to accomplish this you can once again act on the ungrouped individual selected items via the Transform Each command. Transform Each has a 'randomize' checkbox and can help you randomize x,y change in position, vertical and horizontal scaling and rotation. While xy changes are obvious, rotation may be helpful if you choose to incorporate gradients or brushes or patterns upon your circles, this way the round shape can be rotated and provide more variety with the contents of the circles having a visual distinction such as what you can barely see in your sample image where a pale line runs through the circles at different angles.

And here's the stacking order snippet.

#target illustrator
function test(){
    function shuffle(a) {
      var j, x, i;
      for (i = a.length - 1; i > 0; i--) {
        j = Math.floor(Math.random() * (i + 1));
        x = a[i];
        a[i] = a[j];
        a[j] = x;
    var doc = app.activeDocument;
    var s = doc.selection;
    var arr = [], thisItem;
    for (var i = 0; i < s.length; i++) {
        thisItem = s[i];
    doc.selection = null;
    for (var i = 0; i < arr.length; i++) {
        thisItem = arr[i];
        thisItem.move(doc.layers[0], ElementPlacement.PLACEATBEGINNING);

enter image description here

enter image description here

enter image description here

  • I looked into using the Transform each to create "seed pods" of circles and then additionally transform each of those. But then I run into the issue of spacing and having to manually make several dozen "pods". Commented Feb 19, 2018 at 22:33
  • Check out the new screenshot, it was made using my conceptual technique. Isn't it close to what you want? The cool thing is, these 'swarming' dots are actually square rectangle shapes, all stacked on top of each other like grid work. What makes them round and random is effects: convert to shape (ellipse) as well as Transform effect which is NOT on a group but on individually grouped items.
    – Silly-V
    Commented Feb 20, 2018 at 1:46
  • *Correction: "which is NOT on a group but on individually grouped items." is actually "which is NOT on a group but on individually selected ungrouped items."
    – Silly-V
    Commented Feb 20, 2018 at 1:55
  • And to optimize or automate, you can try to mess around with Actions. It's possible to record the Object Mosaic command, deselect, selection of white and selection of same fill-color to leave your rectangle shapes sans white ones which is what it creates when you do the mosaic. After that, you can have your action apply your named graphic style which you'd have pre-created. Thus your work could be reduced to using a brush to make your colored paths, then rasterizing and then running your automation routine. And, let us not forget that after all, you can change the effect settings too.
    – Silly-V
    Commented Feb 20, 2018 at 2:06
  • As for randomizing stacking order, yea you can ask for someone to create a quick script snippet for you. I think it wouldn't take so long. And, if you posses such a snippet then you can put it into your Actions - thankfully Adobe fixed the action thing so that it remembers your scripts you inserted.
    – Silly-V
    Commented Feb 20, 2018 at 2:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.