• Welcome to the Community Forums at HiveWire 3D! Please note that our store and forum are on two separate servers so you will require a separate login for each. The store will ask you for your Real Name (WILL NOT BE displayed to the public) and the forum will ask you for a User Name (WILL BE displayed to the public). You may use the same email address and password for both.

WIP Scatter Tool II Python Script for Poser 12


Contributing Artist

~Scatter Tool II Python Script for Poser 12~​

**REQUIRES Poser 12.0.396 or newer.

The Scatter Tool II brings a new level of automation when scattering objects into your Poser scenes. Check some of the new features below.


Ever wanted to scatter objects at random on a scene, like grass, rocks and trees? Then resize and rotate each piece so they don’t look all the same? And then align each object to the terrain so they line up properly? Then welcome to the Scatter Tool - that’s exactly what this was meant to automate. Just load the objects you want to scatter from the library, and then this tool will show them on a list. Pick one, enter how many copies you want, if you want rotations, scaling and how much of each, if you want automatic surface alignment, and then press the scatter button. Then watch as your scene is populated for you in seconds. It is as simple as that!

We can now (optionally) paint where exactly we want things to be scattered directly on the surface using Poser's Group Editor! To do so, you can use the brush or the rectangular lasso, with options to add or remove polys from the selection. Here's a quick productivity HINT: If you don't want to click the + and - buttons, holding the CTRL key down when painting inverts the current operation. :)


Better showing than explaining. The scene below was made with the Poser ground plane, and the single-sided square from the Props > Primitives library. I have used the Morphing Tool to add some hills and valleys, and put a PBR water material on the single-sided square to make a little pond. Then scattered some vegetation, and rendered in Superfly with HDRI to add water reflections. And here's the thing - I have painted the scatter area so nothing is placed inside the water. Total control over where things are placed! ^___^


In this scene, I have just scattered everywhere over the Poser ground plane. The cacti are flat billboards, but I didn't set them up as billboards (don't face the camera), so I could make a render more from above without everything tilting to the sides. For that, I have disabled rotations, so they all face front. The advantage of using billboards is that I can place a LOT of cacti on the scene without slowing Poser down, and (with luck), people won't notice the difference. :)


In this render (using the Poser ground plane), I have placed a ruined wall and some trees, and I have painted the scatter zones so that nothing is placed in these areas. For example, we don't want plants or rocks coming out of the wall, or the trees. However, random scaling and positional jitter variations may cause intersections, and we can easily move things around after the scattering is done. Here I have used the new positional jitter, and also random heights, so the grass is not only larger, but also taller at some places. Scale and height are independent controls, so the grass may also be smaller and taller, in any combination.


The power of billboards! We can easily kill Poser by placing even a fraction of these people in a scene. Each of these billboard people is made of a single poly, so even a crowd of 200 people cannot even slow Poser previews down. If you need background crowds, this is the way to go!


In other cases, when whatever you want to scatter is too heavy for Poser, render it and make a billboard out of it. Don't know how to make billboards? Follow my video tutorial, and create a billboard our of a high poly tree using only the single-side square from the Poser props library, and a single render of the tree. Then make a dense forest out of it, and notice it doesn't slow Poser previews down! :D

I have improved the surface alignment performance in this version, so the internal alignment objects from the original version won't even show in the scene anymore. They are created and disposed of automatically during scattering. In this render, I have used a Geosphere (evenly distributed vertexes sphere), and painted a "rim" scatter zone, so figures were only placed around the sphere, and not at the centers. The Geosphere was very low poly, so I had it subdivided twice, which made it shrink a bit. To compensate, I have used the new "surface offset" distance to place the figures closer to the surface, so they don't float around it. This is a good example for when we should use the new surface offset feature.


During internal beta, I was requested to increase the range of the positional jitter, scale, and height variations. That was to compensate for when people want to scatter over HUGE areas, such as the inside of the Construct prop. I have increased all of these dial ranges, and now we can have random distributions over very large areas. However, that also makes it more finicky to adjust these sliders in smaller scenes, so I am trying to find a middle term between these two.

And talking about sliders, this version now shows the current value as we drag them, so you know exactly what values you are using. Another improvement was the addition of tooltips when we hover the mouse over any control, showing what they do. If you want the values to (temporarily) replace the tooltips for the slider value, you can do it by using the mouse scroll wheel, which can also be used to make small value adjustments. We also have a new HELP button that opens the PDF manual straight from the tool when you need it. And if you run out of places to scatter, we now have the new "Overlap" mode, which removes the amount limit per surface, so you can continue scattering as much as you want - or until you run out of memory! LOL

The scene management was completely redesigned. In the previous version, the tool would "forget" what objects were scattered over what areas if we closed it. Now, it automatically scans the current scene next time it is launched, and rebuilds all tracking information. This means that even if we close the tool, it will still remember what objects were scattered over what object, surface, and even group. This is useful when we want to add or remove objects from these specific areas. This means we can now close the tool and continue the work some other time, and it will remember everything.

Last, but not least, the Scatter Tool P12 is now a Poser native WX panel, so it can be positioned, sized, and even docked into Poser. I also made it smart, so it remembers the last position, size and docking state next time we launch it. So even though some features remain the same, this is a complete revamp of the original idea.

I have finished the promos, documentation, manual, and internal beta-testing. I just have to adjust the dial ranges a bit more, and it will be ready to go.
Last edited:


Contributing Artist
During the internal beta, I have found a few issues everybody else has missed, and I took the opportunity to make some improvements in the way it functions. One of them is in the way rotation variations work.

Rotation variations now apply in both clockwise and counterclockwise directions. In the example below (scattered cubes seen from the top), I have set the rotation variations slider to 25 degrees, and below we can see it now rotates in both directions, providing a true random distribution.


I am still trying to balance dial limits in relation to scene scales. Limits for large scenes don't work so well with small scenes, and vice-versa. I have some ideas on how to deal with this, and have to give them a try. :)


Contributing Artist
Ok, I came up with a solution for the scene scale affecting the positional jitter slider limits. All is fine if the scene is very large, like scattering over the interior of the Construct ground, which is huge. However, what if we want to scatter over small objects, like the blue cube in the image below? If the jitter slider is tuned for large scales, all the green objects would be placed outside the blue cube. The solution was to make the initial low values on the dial exponential (like first 12 values), while the rest is linear. This means the first 12 values gives us much finer control over positional jitter, which is great for small scenes, while values above 12 are linear, which is good for large scale scenes. This way the same dial can handle both small and large scale scenes.



...the Construct ground, which is huge.

Not in my usage habits:laugh:; construct at default size, dropped into Lothlorien III terrain:
construct in Lothlorien III.png

I frequently need to scale up the construct for my scenes. The underwater ruins scene used the construct at 15x default size. Didn't want the camera to see the "walls" of the construct.
undersea ruins techno-pixie C 1184x740.jpg

Hopefully, the Scatter Tool II will accommodate terrains larger than the (default size) construct?

I'd be OK with using multiple scatter areas, if need be.
Last edited:


Contributing Artist
Had a final version submitted, just waiting for Rendo to update their store backend so I can sell it there.


Contributing Artist
Still waiting on Rendo to complete the required changes on Poser 12 to support my new Python scripts. The tool is already with Rendo awaiting QAV. Please bear with me as we wait for them to get it done. ^^