Another distributions test, this time iteratively growing a colony of points over surfaces.
test one
I have been working on my random point distributor nodes in XSI ICE. Now it can generate new candidates nearby existing points.
Once the successfully placed points reach a certain age, they stop attempting to place new points.
It works well, reaching a nice, surface-covering state quite quickly. Just like my last test, this system is never aware of a completely packed state, but it’s really easy to see when the point-addition is exhausted.
Here is a vimeo of it in action
XSI ICE colony 1 from benp on Vimeo.
I have quite a way to go towards packaging this into a compound.
I will definitely provide a download when I do, though.
The process of adding new points to the cloud conditionally has been quite an effort to work out.
Imagine what it would look like with two colonies, different colours, collide and start wiping each other out!
Tags: 3d, ice, particles, softimage, xsi
have you seen this from felix gebhardt?
http://www.vimeo.com/1724706
unfortunately he hasn’t shared any information about how this was done, i am looking forward to learning about your method for the point distribution
Yes. Felix’s work is fantastic!
I will try to add a post dedicated to explaining the method some day. Keep watching :)
Really nice effect there!
I’m pretty sure Felix used signed-distance fields fields in forest vs. mankind.
Something similar here?
Thanks!
I am not using signed distance fields directly in this setup. I had never heard of signed distance fields, and I’ve only just read up about them after your post.
As for fast lookups from points onto meshes and clouds, I leave all that heavy lifting up to the Get Closest Location and the Get Neighboring Particles ICE nodes.
I don’t know exactly what kind of space partitioning structure ICE uses.
trying to recreate what you are doing. getting similiar results. so far only creating points on a grid. i cant get that distribution right on complex objects. do you sample locations on geomtry for distributing nearby points? sorry for my bad englisch ;)
Yes, I do sample locations on geo for distributing nearby points.
Have you looked at this post?
There is a link to a download for an ICE node at the bottom of the page. It is a fairly different approach, only generating random points across the whole surface, but that is what this effect is built upon.
For this method, I generate a random vector nearby each existing one, use a Get Closest Location node to project onto a surface, call Get Neighboring Particles to find existing points, measure distances to those returned, and use the result to qualify an Add Point node (or Clone Point node) to add the new point.
If you can’t make the distribution work on complex objects, maybe you are having trouble generating your nearby test-points?
I find the normal of the surface at the point, then generate a random vector rotated around this normal.
I am still working on my toolkit for this effect and I’ll release some nodes when I’m done.
hey thanks for the reply. hours after my post ive figured it somehow out. in my setup i generate random positions from the existing point(s) and than set that back on the surface per get closest location. after that i determine if this points are valid thru a delete point with your get neighbouring particles tree (which you stated). its working quite nice. but the relationship between variance of the random distr. and the “spacing” between points is quite sensitive. im looking forward to your solution.
after reading your post a second time, ive notice that we have the same solution ..hahaha.
This is an extremely cool effect, do you have any newer compounds you can share?
Thanks Phil!
I plan to do some more ICE (and compounds to share) very soon. I’ve been busy at work so I haven’t had any time to play around with xsi.
Stay tuned and thanks for your interest.
Any news about the compound?