Perforations based on a jpg image

I’m attempting to generate surface perforations with varying diameters based on a jpg image input. So far this is what I have:

2018.08.14 jpeg to perforation.dyn (80.8 KB)
Any suggestions would be greatly appreciated. I’ve been trying to combine a tutorial for making a curtain wall composition based on a jpg input and a tutorial making perforations with varying diameters by specifying attractors attractors.

Please start a new topic for the new task. This way the community will benefit from having a record of both solutions.

1 Like

Sure thing Jacob. though it looks like that has already been administered. is that right?

abstractRiver.dyn (40.4 KB)

Yes it has :slight_smile:


Thank you Vikram,
This has me off to a good start. I’ll post my final graph once I finish.


Hi Vikram,

I tried to modify your graph to use a diagrid instead of a square grid but I can’t get it to finish rendering. I must be missing something somewhere. Could you please take a look and let me know what you think?


abstractRiver_2018.09.14.dyn (56.3 KB)

Here we have points corresponding to pixels in the image.
Hence the regular/square grid that is proportionate to the image dimensions

Not clear as to what yo’re trying to achieve. You’ll need to elaborate.
There may be a simpler approach than complicating the grid :expressionless:

Thanks for getting back to me Vikram.
I’m trying to achieve a transition from the perforation grid pattern in the image on the right (which you were kind enough to share) to the perforation grid pattern on the left as is encouraged by the manufacturer I’m working with. I tried to achieve this by modifying your graph with the nodes in the “Generate diagrid” group (shown in the previous comment above.)
When I run the graph, there are no errors but it will never finish. I don’t believe it’s a hardware issue. Do you think it is a proportion issue? Please let me know if I can elaborate further.

Thanks again!

To obtain such a grid you’ll need to eliminate every alternate point in every alternate row. Also you’ll need to eliminate the corresponding values obtained from the image.
Hope this makes sense…
The definition below should give you a fair idea. You might have to refine it though.
abstractRiver-20180923.dyn (73.9 KB)


@Vikram_Subbaiah and others, could I ask a follow up question to the above? I have used your initial script above to build the following image. Thanks for providing the help for it back then.

Now what I would like to do is fill the areas of the small holes with these. For a start I thought if I could have Dynamo add an additional hole between every two of the small ones. Maybe with an option to increase that to three if the distance between the two original ones allows for it.

I admit I am not even sure where to start … any help much appreciated.

Consider creating a dense grid and then dropping points (instead of adding)

perf.dyn (46.4 KB)

Image used in the definition above is from (Gear Vectors by Vecteezy)