algorithmic modeling for Rhino
I m trying to do differential growing curves and couldn't come up with any ideas to get started.Any strategies will be helpful .
ths is also super exciting
Now you're just tormenting poor Nik!
The hexagonal grid of the basic output lines (via a list of output points) is merely due to hidden Kangaroo remeshing, I assume, to give triangles that the lines adhere to? It's hard to see what is really going on in the black box. It seems similar to when I watch Kangaroo MeshMachine chaotically remesh the same final result, like suddenly the polyline finds a new route to get bigger and the afterglow of that jumps into a new polyline configuration, periodically. But MeshMachine can do adaptive meshing too, tighter where curvature is extreme, whereas this is utterly regular.
The hexagonal pattern you see is because the self-collision of the curve is achieved by treating the vertices as solid spheres, which naturally pack in mostly hexagonal arrangements. Showing it like this probably makes it clearer:
There are length constraints between consecutive vertices, and mutual sphere collisions between all vertices. The complexity of the effect is just an emergent result of these simple physical laws rather than any magic hidden inside a black-box (this kind of emergence and self-organization is one of the things that makes physics-based design so fun).
Having the spheres vary in size according to location would be possible, and I think an interesting thing to explore.
p.s. - You can also peek inside the black-box of MeshMachine here:
https://github.com/Dan-Piker/MeshMachine (also includes references to the relevant papers in the reading folder)
So here is the guts of MeshMachine:
Great work. Now, I'd like to use the sphere collision to model the growth of a 'non-spherical' object. For example, say we want to model crystallization of a compound, which may not be spherical. Lets start with a simple one, a snowflake, water crystallizes on a 60 degree angle, due to the molecular structure. SO, how can I causes the sphere collision to be constrained, or perhaps 'encouraged', to collide along the orientation of the geometry of the molecule? once I have the logic, then I can move onto more complex compounds.
@Mark - Simulating crystallization is an interesting topic. I have tried in the past some basic experiments with self organizing structures here.
It could be fun to revisit these with the new solver. It should be possible to make some sort of angle-dependent attraction force as you describe. I imagine these kind of simulations are already well developed in chemistry, though I'm not familiar with the current state of the art in this field.
Hi Daniel, your other work is interesting of course, but, I think that you are much closer than you realize to having actually solved these modeling issues with the self-collision of spheres method. If we tweak the way that this organizes itself, (perhaps using a constrain to angle goal?) then the method you have developed will duplicate a snowflake. I am a little ignorant of some of the models developed in the chemistry world, ok, a lot, haven't kept up, but the reason that this is most fascinating is that we have grasshopper linked to rhino linked to a CNC and an endless supply of aluminum blocks. So, you are almost there, IMO. Is there an approach where we could tweak the script to align along a primary or secondary angle? and then let the thing run, it will organize itself as molecules do in nature, and there you have it.
And, if Not, C'est la Vie, still great work. Any one of the many scripts you have developed are equivalent to a masters or doctoral level thesis in computational geometry, IMO.
Daniel, proposition for you:
Create a template bunny file. That has saved camera and display settings. Then every time you make a bunny simulation use it. For the meshing, the duals, the cyto, the inflations/deflation, expansion etc.
In 5 years time compile them, creating an awesome chronicle of your ongoing experiments.
(bonus; make a poster as a gift for Nik)