select objects each layer, and replace the points with a tree/plant/rock/etc. block possibly randomizing scale and rotation a bit.

So… to make this fly need help with the random point cloud… I haven’t searched forum on that yet and suspect there is a solution already. In dream-land could control density of points with a bitmap. Like black = no points and white = very dense. Any ideas on how to best achieve this. I don’t mind working at it a bit to come up with something useful.

Basic logic:

prompt for block instance name of scenery item
for each point in points
get point location
do math to come up with randomization for Z rotation and scale variation (within limits)
InsertBlock instance at point location with scale and rotation values
delete point
next

I’d use blender possible systems with grooming and texture control to that, then export to Rhino. But no doubt with Grasshopper it should be possible to create some good setups, controlled with one or more textures. Use block instances where possible.

Hello wynott,
You might find it useful, a script @clement has created. It allows you to place blocks to points and give them random Z rotation.
You can find it here: Populate trees
Saved me a lot of time already.

Shoot. Jonish, yeah I made a new script that does the same thing.

Next module I want to do is a script that checks the bounding box then sinks the object into the ground a random (definable rang) percent of the height of the object… Use on rocks and coconuts and other ground clutter.

That would be cool. I believe that for trees, random Z rotation and scaling would be sufficient. (Sadly now I have to do the scaling manually. I really miss block manipulation in Grasshopper.)

One of the rhino deficiencies for those who make 3D visualization: a random distribution system with advanced options, like forest pack or skatter, with full support for blocks and proxy,
Surely I would pay for that …

Would like to have an input that changes the shape of the curve… So when doing the scaling the majority of trees would be more closely sized, and then less often they are scaled to a much greater extent than the others. I.e. the less frequent the tree, the greater the size variation. Of course will have normal distribution as an option also if a more uniform look is desired… say for an orchard or some other more controlled growth situation.

Think I’ll be able to use the same formula to cull insertion points from areas with a feathered edge around structures or whatever for clearings.

When I generate a random number to determine the scale amount of any given tree, what I want to do is find where on this curve that number falls, and then determine the scaling based on the height of the curve at that point.

I guess if I confined the random number to something like 1-100 then could do the curve by looking up hard coded numbers on a table.

But I suspect the math to do this numerically is simple and a way cleaner method. I’m just kindof not good at math and will need a hand to do it that way.

So, to my eye the Exponentially distributed scaling definitely looks more natural than the purely random one. The rate sweet spot probably varies a little bit depending on the situation but somewhere between .1 and .05 seems to give a good result.