Random Object Array

by ARTunchained in Scripts and Addons

Random Object Array


Important: Open Source Releases now available. This page is kept intact for now, but you can download all my addons for free on my GitHub:


ROA is now on "Feature Freeze" - that means from now on only bug fixes and maintance updates will be provided.

Blender 2.80 Upgrade Status:

I know, things are going slow. I know, it s*cks. Trust me that I liked my fully working, finished products a lot better than the current state. I try everything I can, including paying external devs, to bring my addons to the state they wore before. We're not there yet, but pretty close. If you're a Blender addon dev & interested in working on ROA, UE4EH and my other addons (on a budget) just contact me.

  • "To All" (micro add-on) - Tested and working with current 2.80
  • "ROA" - Is compatible with 2.8 for the most parts. Details below
  • "UE4EH" - Check the UE4EH page for more updates
  • "Blender Proxy" - Not working in 2.8, fixing attempts yet unsuccessfull and low in priority (being a freebie).

If you find additional issues that aren't listed here yet, please email to me, include as much info and preferable screenshots as possible. Thank you for helping to bring our add-ons to 2.80!

Please DO NOT email me for complaining that "feature X" doesn't yet work with 2.8 - just use a copy of 2.79 if you really need it right now. 

0.8.4 alpha

  • More fixes on the "Pick from Group" option, got it partially working, but objects are still linked to the "Pick from Group" - collection (which they shouldn't be). Yet "Pick from Group" works now, in an "alpha" sort-of fashion.

0.8.3 alpha

  • Multiple fixes on the "Pick from Group" option, yet it will need more changes to make it work (if you test it you'll see). This will take more time but is also a chance to make ROA incorporate Collections better.


  • Fixed AABB-Collision Detection not working in 2.8

0.8.1 release (a little bit beta still)

Fixed for 2.8 huge shoutout & thanks to Emanuel Rumpf for contributing the fixes and providing a running 2.8 version of ROA. This means a giant step forward in the whole process, Emanuel managed to solve the biggest issues with 2.8-compatibility, I'm very positive that we'll get 95%-100% of previous functions to work again.

I've just started testing what works and what not. Most functions work exactly as before (and with even higher performance), with the exceptions below.

  • "Mirror" non-functional
  • "Target Mesh" non-functional
  • Pick From Group not working

Will be testing further and see what we can fix asap. If you find issues not listed here, please provide feedback.

0.7.7 release
(Feature  image was made entirely with ROA 0.7.7 and Blender Proxy.  10.000 Objects, 30 Mio Polygons)

Random Object Array has been heavily developed in the past years. It has become a very versatile and stable tool, not only as an “array modifier replacement with random options”, but as an add-on for everyday use when it comes to working with instances. Together with Blender Proxy, Random Object Array will help you to exceed the current limits of both your GPU memory as well as Blender’s viewport. I also strive to make both scripts as user friendly and non-destructive as possible. Random Object Array by now has lots of options, not all of them are presented here on this product page. Take your time before you buy, watch my videos or read the (yet incomplete) documentation. If you’re unsure about an option, feel free to ask in the comments.


Years ago I proposed on Blenderstorm to add random values to the array modifier. It never happened. I was tired of tweaking a particle system for an hour, just to realise that the desired result cannot be made that way. That’s the reason I created the Random Object Array add-on. Random Object Array allows you to create all kinds of object arrays that need some randomization like plants, roof tiles, cobblestone, walls, etc. using a very quick workflow without having to use a particle system. And there’s even more.

Intuitive Workflow

It is not a modifier, but it offers an intuitive and fast workflow to distribute objects with random offset, rotation and scale, within seconds. Values like offset or rotation represent what you as an artist would think they do. It works like up to 3 Blender Array Modifiers chained together, meaning it can created duplicates in up to 3 dimensions. It has lots of useful option that are mostly self-explanatory. Have a look into the documentation or the feature video to see all options explained.

More Control

Whenever someone asked “random” in Blender the answer was always “particle system”. That’s not because the particle system was made for every “random” situation, but because it was the only option. A particle system is great for hair, particles, fur, even grass. But it can become an obstacle for other purposes. Compared to a particle system, the Random Object Array add-on offers much more control over random values like rotation, position, scale. It’s fast and stable for all kinds of objects, not only meshes but also lamps, cameras and group instances. The values aim to represent what you are used to, opposed to the rather obscure values of a particle system. Forget about what “brownian” does or if your “size” value should be either 0.001 or 0.002.

Clone on Meshes

One of the great features is the ability to clone your objects to a mesh’s faces. Again the use cases are mostly self-explanatory: Use the “Target Mesh” option to distribute plants on a terrain, needles or leaves on a branch or tiles on a space ship. New! ROA can now also clone to the points of a faceless mesh, like a converted curve.

Free updates

If you buy Random Object Array on cgcookiemarkets.com you will receive every update of this addon for free.

Lots of Features

ROA has become quite a deep tool, the list of features includes:

  • loading / saving per object

  • realtime preview, autoload & autosave - modifier like behaviour of the Add-on

  • randomized shape keys. new: objects with shape keys can now be joined into a single mesh

  • cloning as instances, real copies or single mesh

  • constant and random offset and rotation, random scale

  • cumulate rotation and scale

  • target mesh mode, clone to faces, points or with a curve modifier

  • grid mode

  • relative (per object scale) offset

  • 3 collision detection modes

  • picking source objects from a group with adjustable count for each group object

  • new: Row offset for grid mode
  • new: Fully controllable stepwise rotation

See more features in the documentation, the videos and the changelog.


Currently I’m recording the “ROA Complete tutorial”, you will find all parts here or on my youtube channel:

Part 1: http://youtu.be/ugaEllRttAk

Part one is a generic introduction, talking about the most basic things in ROA

Part 2: http://youtu.be/rTUSH4v7BU4

In part two we will work with group instaces, target meshes and find a way not to run into the object count limit too quickly

Part 3: http://youtu.be/Vc8-H9y3k5U

In part three we will have a look at relative offset, picking from group, AABB collision, some prerequisits and also talk about the limits of ROA

See more parts in the documentation!

Now bundled with Blender Proxy

Blender Proxy is an open source add-on I’m currently developing. It’s the perfect addition to Random Object Array and helps you with instanciating lowpoly to highpoly objects for a super fast workflow in the viewport while rendering literally billions of polygons in Cycles. Blender Proxy comes now bundled with Random Object Array.