I’m wondering (1) what this shape is (is there some formal/academic name for it?) and (2) how one could create a similar effect in gh. https://www.instagram.com/p/C0tmKCEtS7D/?img_index=1
This work comes from: posthuman lab
My intuition: something mesh-related, perhaps some physics simulation? Voronoi and multiple seems too easy (and the shape to apply them to remains a question)
Of course, doing this by hand is trivial. What I want is a somewhat randomized way of generating this (like a huge ‘bush’ of these structures) in scale
Thanks a lot!
Terms coming to mind are ‘curve network isosurface’, ‘millipede’ - ‘feels old school, though - there are probably some newer methods - voxels? Do you need to generate a ‘network’ in grasshopper prior to surfacing or can you manipulate a mesh + thicken/subdivide/smooth afterwards? You could generate 3D points, use proximity (3D) with specific group/distance search for your connectivity and go from there?
That - maybe - brings us to Ball Pivot type of algos. These work “best” if the pts are “uniform”. However (and having big N of pts in mind) it’s rather unlikely that you can find a high perf solution (strictly pro stuff - for more than obvious reasons). I mean that solving, say, 2-5K pts is one thing … but 20+ K pts is an entirely different animal.
On the other hand you can skip BP with a variety of ways (using classic VV Connectivity from your Graph)… but you should use code (level required : mid to advanced).
Anyway … having the Mesh on hand the one way of the other … K2 can do a thing or two (but a code driven K2 approach [+ custom Goals etc] is by faaaaar the best way to go).
Thanks Peter! I’ve also found the random walk method which seem to also do branching, which makes a good amount for me to digest for now.
The shape of each edge in the graph aside (doesn’t look like simple piping), examples of ball-pivot I’ve seem seem to connect the surface, not what’s inside (I think that is the wrong impression)
Proximity 3D examples have something similar but it seems to be all-cycles (no open loops like posthuman lab’s result)
BTW: Given any Graph the primary cirquit detection is the way to go (IF we start having a Graph on hand). Kinda doing a 3d concave hull. I have various C#'s that do that … but all are strictly internal stuff. Anyway … the technique is “similar” with the one that we use to detect Islands in a Graph (using solely VV Connectivity).
All in all: you have 2 general directions to cut the mustard for that one:
The first is to try to find some add-on(s) - good luck.
The other is to write code and do anything imaginable.
An other take is to use some “controlled rnd expansion” via K2 (and some custom Goals) without proximity and the likes (i.e. just start from a seed Mesh cube and/or blob). For more than obvious reasons a post Laplace refining is more or less a must. Say start with something “like” this (no holes are invited to the party - all these things are 1++ M miles away from my interests).
Or maybe a 3d classic Diff Grow with various rules (see a very simple 2d take - no K2 used, just some C# lines):
Thanks again! I found some grasshopper codes on the forum that is differential growth! The mesh collapsing and becoming-complicated effect is very cool.
The graph ideas remind me of recent problem. I need to get all holes (not okay to have hole that contain another hole, must be all smallest holes) in a web (that’s a graph). The codes is very slow
Thank you Shynn! The result you share is very cool. I increasingly see that cinema 4d and Houdini does many complex things (related to applying patterns and growing stuff on mesh) much faster than grasshopper. I think it shows that some modeling jobs is only easy for some programs
Dendro looks like a good tool but it’s no work for my platform. But learning about OpenVDB is very interesting! Maybe it can be bypassed by direct coding
Provide a detailed description of the problem and … well … maybe (just maybe) I can post some C# on that matter (IF is not an internal stuff - unlikely but hope dies last).
That said speed is (in most of cases) related with the quality of the code.
BTW: Plan Z: Imagine a cube. Then imagine voxels (acc x/y/z user resolution). Then imagine applying a classic “vacancy” policy according some probability (via a user controlled value - global or local [on per x/y/z basis]). We have a collection of voxels as Meshes (viewed from a distance: a randomly “perforated” cube so to speak). Meaning that we can easily have a closed Mesh from the “outer” Faces (don’t try this without code). Then we subdivide the Mesh and we ask Daniel for help (K2). What could be be the result?
Say some faaaaaar more “artistic” take (prior K2) on that:
Say something like this (without the anchors):
Same - more or less - if we “voxelize” (LOL) some 3D nurbs curve (or some “guide” object - i.e. a Brep/Mesh). For instance imagine doing voxels > “outer” Mesh > Daniel … blah, blah on that:
If I was you that would be my take on that matter. But that requires code (life sucks).
Sorry for the lack of clarity and typo–we had a web (like 2d voroni) but, we want to enumerate all of their smallest, non-overlapping cycles (think voronoi but you don’t know which edges form a cycle in the code). We got it working with some graph algorithms that gives the four 口s in the 田
The voxel idea is really cool–getting the shape in voxel form, and use some retopology around them (so they look smooth, not 3d-pixelated)? This reminds me of some blender tutorials like https://www.youtube.com/watch?v=iYxGDafpsEY where they have a ‘volume’ thing that seem to be voxel-based (Laurent Delrieu kindly provided a work-around, since dendro is windows-only)
I feel disappointed in myself that I can’t contribute to this exchange adequately, as I don’t know nearly as much about this topic as you do. Still, I’m thankful for your explanations & demos on these amazing topics to dig into!
Never mind: the only difference between you and me is 50+ K C#'s (really nothing - I do mean it 100% - if you see things from a certain distance/perspective). Go buy some proper lethal Ducati and forget C# and the likes.
In the mean time > test > use a Box Mesh and play with K2 > what gives? If the Blob result works for you … just add 1M Voxels, get the “outer Faces” Mesh … and be a happy bunny.