How to Split Data Tree with Domain Includes Component?

DataTree-SplitbyDomainIncludes.gh (384.7 KB)

I want to split each Point Component branch into e.g. 3 branches (each snowflake gets 3 bands). But data somehow mismatches. Last branch gets 11 domains, while first 4 branches get only 1.
What am I doing wrong.

Your domains are grafted into 15 branches, yet your data values exist only in 5… You will have to cross-reference.

Hmm, Somehow end result is the same even with crossRef, (or am I doing it wrong).
Data structure seems OK - 15 branches.
But still there is some sort of mismatch with domains and values as items get missing.

Ahh, seems like duplicate solved issue!
But is there a way to do the same with out duplicating geometry

dataTreeSplitbyDomainIncludes.gh (395.0 KB)

When I say cross reference, I mean this abstractly, because you can achieve this with tools other than just Cross Reference. The tool you are looking to use here is Stack Data.

You are also going to have to modify the domains because the check includes the bounds so that the domains are not neighbouring.

Of course. You are not required to duplicate the Duplicate, Partition pattern for your geometry stream. You can instead match your boolean mask to the geometry data structure… I am busy at the moment. Can show you later.

Are the colour domains supposed to look like that, i.e. not with red at the outside for all snowflakes?

Nah, colors dont matter can be colored whatever. Only domain division count (e.g. 3 in this case).

But values represent ice crystal freeze time and varies from snowflake to snowflake. And normalisation if values is not needed for now.

@Edr Okay, well then here is an example of how to get a list of colors for the data structure of your hexagons via Member Index and List Item from your boolean mask from Includes. I’ve structured the boolean mask differently; by {flake; hexagon} instead of {flake;domain} since that is how I am matching against the hexagons in the end.

Wasn’t sure how you were determining the domains of your gradients. You can switch between the two gradients to see options. How it looks in the end depends on how you want to set it up. Normalized gradient is the gradient actually sitting in the script.

How to split data tree with domain includes component VR 01.gh (793.4 KB)

I haven’t seen @Volker_Rakow’s definition yet, but I think I’ve followed a similar path, just using Find Domain instead of Includes.

dataTreeSplitbyDomainIncludes_AE.gh (422.2 KB)

Thank you very much @Volker_Rakow @ale2x72

Oh, very good. Find Domain would have shortened my script significantly. I think I just blindly followed the original script too much at one point.


@Edr I’ve tightened up the script.

Rastafari Christmas VR 1.gh (406.6 KB)

making sure to clean up the domains (look at the output of Construct Domain to see what I mean) and offering the option to display as a normalization against the individual time frames of the snowflakes, or against the time frame of all of them.

Find Domain simplifies things, because it inherently creates the cartesian product within itself.

:rofl:

I told myself I don’t have time to animate this, but I … couldn’t let it go :smirking_face: :

Let It Go VR 2.gh (815.7 KB)

ReiterModelPort.gh (15.5 KB)
I used this A Cellular Automaton Model for Snow Crystal Growth (made AI to c# not js)