Mapping problem with a 3D arrangement

Hi everyone,

I am stuck with a logic problem. What I am trying to do is the following:
I want to arrange 3D objects (scaled boxes basically) in a circular shape and then move them up and down depending on a bumpmap.

The final effect is supopsed to be something similar to this:
but with the pins arranged in a circular shape instead of a rectangular one.

My problem now is the following:
I can get the basic shape that I want, but I don’t know how to map a bumpmap onto it. The best I could do is generate a wave sturcture, which dosn’t really help me though. Any ideas how to solve this?

Thanks in advance

This is what I’ve got so far:

nails.v4p (20.3 kB)

with a pipet node you can get this effect and use it on a circular way

Thanks, the idea with the pipet helped quite a bit. However now I am getting massive performance issues. I guess this is mainly because of the way I calculate the circular shape. It’s basically several circles within each other, but the innermost circle still has the same amount of nails, as the outmost circle, allthough it wouldn’t need that many.

Do you have a suggestion how to reduce the number of nails towards the center and generally prevent them from overlapping the way they do at the moment? It’d be perfect if I could get the hexagon shapes the nails have now to align seamlessly with each other somehow, but I have no idea how to achieve this with just spreads. Is there no way to position objects based on a mathematical forumla in vvvv?

Warning: Eats performance (33.3 kB)

In the old days I would say that you can spread the spreadcount for the circulair spread, so you have 1 slice for the center point, and the further you go outside, the more slice you get.

But now we have plugins :)

You can try @Woei)) his ((node:SphericalSpread (spreads) (comes in the addonpack), and a factor of below 0.5 to get a better spread.

just tested it, it is more like a half sphere, but prety cool, and you end up with a lower spread count, and thus better performance.

nails2.v4p (34.1 kB)

you could create positions with a Cross (2d) and only select positions within a given radius: (33.0 kB)

Awesome thanks everyone.
Just one more question to Tonfilm for the understanding. I thought the Abs node only returns the absolute value, but how does the imaginary input influence the calculation in the example you provided?

Again, thanks. You really helped me a lot.

the Abs node is of category ‘complex’. complex numbers are basically 2d vectors (real = x and imaginary = y) and their absolute value is the same as length calculation of a 2d vector: a = sqrt( x^2 + y^2 ) is what the node actually does.

I see. I bet that’ll come in handy in the future.
Once again, thank you for all the help. :)