Multithread Boolean Difference - GHPhython with Trees retained

Hi All,

I had a recent project that required a lot of Boolean Differences in Grasshopper - all on separate branches on a data tree.

The standard SDiff component even a small sub-set of the final project was giving a run time of ‘life of the universe’.

To speed things up I went looking for multithread examples of Sdiff and found:

BWA C# example:

Which then also lead me to djordje’s GHpython example:

For some reason I could not get the C# version to work, but the Python one worked well in my project EXCEPT - it was dumping the Tree Structure of my input data and returning a flatten list.

I quick bit of research into GHpython and the Tree libraries and I was able to mod the code to carry the tree structure into the output data.

190614_Mutlithread SDiff (469.7 KB)


Now - is is possible to do the same with the MESHPOLYLINE from RhinoCommon?

Hi @kiteboardshaper, i’ve got any knowledge in programming but see that it could mainly speed up a Huge file i often use.
Would you be able to make or modify those tool for Solid intersection of one Breps (or multiple X Breps) with severals graft Y ones which would give a (tree of Y branch of X item) ??? Would be amazing!!

Nice! I’ll definitely take a look at this soon.

Are we getting multi-threaded booleans in GH2? It would be extremely helpful for us.


From what I understand Boolean operations are by there nature single threaded.

In this situation I have different objects on matched branches in data trees that need to be Boolean-ed - this type of work flow CAN be sent out to different threads for a decent increase in processing speed over the standard GH component.

If you are dealing with a single object there isn’t much that can be done to speed things up.