Growth on 3Dgrid

Hi,i’d like to make this problem.
(The idea of the program previously asked in the forum was wrong.) (18.2 KB)
(↑Thank you Mahdiyar!)

This program use anemone.
I wanna change this process.

New program

  1. Acquire any point
  2. Get the highest value in the neighborhood
  3. repeat
  • The search range for acquiring the highest value is getting wider.

(↓It is a diagram of the program)

I want to develop this in three dimensions.


  1. A new algorithm using Anemone_3Dgrid
  2. A new algorithm using script_3Dgrid

thank you so much

1 Like (19.6 KB)

You can also use this script with 3D grid: (21.3 KB)


Or just for fun a python solution. Should work correctly I think :smiley: (11.0 KB)

1 Like

Thank you very much!!

Are boxes increasing one by one?
It looks like the process is being done at the same time, but is Rhino’s appearance?

sorry, i can’t understand this code yet.

Ah yeah, haven’t looked at your step 5&6.
Every box searches the highest neighbor at the same time. It’s growing simultaneously.

Changed it and it should match your rules now :slight_smile: (12.8 KB)


Thank you so much!!

I’m so happy.

Help me!

I don’t know this code.

def AddNeighbour(self, pts):
    biggestIndex = -1
    for index in self.Indices:
        neighbourIndices = list(rg.RTree.Point3dClosestPoints(pts,[pts[index]], iGridSize + 0.1))#Point!
        for neighbour in neighbourIndices[0]:
            if neighbour > biggestIndex:
                if neighbour not in self.Indices:
                    biggestIndex = neighbour
    if biggestIndex > -1: 
            self.NewNeighbour = biggestIndex

biggestIndex = -1 means the last element in the list?
please tell me this algorithm

In this definition it means nothing. As soon there is a neighbour found, it will get his index. Because every index is larger than -1. So everytime the loop finds a bigger index it will increase. In the end there will be the biggest one. In the if statement in the end I check if a larger index is found, if yes, the index will added (new Voxel) if not, it will add nothing (maximal growth).

Thank you very much for your help.

I want to ask you again.
I want to convert the numerical value to be acquired to solar radiation amount using honeybee.

Should I change the type of data?
Or does it have to change the program itself greatly?

I want you to tell me!

↓It is a reference image of the amount of solar radiation

It is a reference file.
solar_radiation.3dm (66.8 KB) (420.1 KB)

We added the function to measure the amount of solar radiation on previously received files.

Probably the data to use

・Analysis point
・Solar radiation amount by analysis point

Sorry about Japanese as a base.
↓ reference site


I have a question.
How do you make camera work about this video?

Rhino has this function?

Yuri Sato

I’ve used Camera Story from Heteroptera plugin.
But there are other components with similar functionality:
setFlounderCamera component from FLOUNDER CAMERA CONTROL.

If you only need to animate the camera you can also use, SetTurntableAnimation, SetPathAnimation or SetFlythroughAnimation commands in Rhino. More info.

1 Like

Thank you so much!!
I knew it for the first time.

I will try using it first.

Hi Mahdiyar :slight_smile:
I saw your C# script file when I’m searching the growth on grid system.
I have some question for your script…
I want to change that script that have start & end point.
And this script, if the biggest value is already selected, then it stops.
But I wants to change this script to grow the next big value until that get to the end point.

Is it possible? I tried so much but I don’t know…
so I ask a question. I’d really appreciate it if you could answer