Grasshopper

algorithmic modeling for Rhino

# Delaunay from a single source

A bit ignorant of the underlying mathematics,
but is it possible to do a Delaunay Mesh where, instead of a base plane, it is a base point/projector instead?

So instead of doing delaunay triangulation in cartesian space, to do it in polar instead.. if that makes sense?..

The context is kinect pointclouds where the 'grid of points' is projected out from a single point rather than a single vector.
The current result being that Delaunay Mesh thinks a point that is further away (but closer to the center) is actually smack dab inside a shape/mass. Which can create all sorts of unwarranted spikiness.

Wondering if its feasible mathematically, and if anyone has implemented it in Gh before.

Views: 1175

### Replies to This Discussion

Something like this?

if you sketch on a napkin what you want and share it maybe someone can help you

Attachments:

gah, couldn't figure out a way to sketch..

Basically, Delaunay is normally done on a (cartesian) plane.
But pointclouds that you get from a single depth camera (ie. Kinect) are projected from a single point (the camera)
So while you can apply delaunay triangulation to a kinect pointcloud, the pointcloud doesn't actually conform to a plane so the component can only do a best-fit solution.

Question being, can Delaunay Triangulation be applied to say, the insides of a sphere? (from the inside)
(the use-case is not as extreme, as the Kinect is not a 3d depth camera, but the same principle applies, just to a sector of the sphere instead of the entire thing.)

e: made a napkin sketch after all

Attachments:

Maybe (just maybe) a decent (and working) BallPivot approach could address your issue? (or do a controlled proximity line graph and then use the usual connectivity data).

no dice :/
the mesh faces consistently stack on top of each other (if that makes sense), so you don't even end up with a single surface. perhaps because the pointcloud is not so clean? :/ messing with the variables didn't really help.
Thanks anyways though, didn't know about Lunchbox o .o

Lunchbox??? You mean Sandbox I suspect (for the connectivity stuff).

Anyway If I got it correctly is "kinda" making a prox graph out of points randomly placed inside something (say: a blob). This yields a "non-skin-deep" point collection and therefor not even HAL 9000 could make a manifold mesh out of these.

If however by some miracle you can get skin-deep-point collections then Ball-Pivot is the way to go.

But fact is that I hate meshes like my sins, he he.

oops, I meant Milkbox actually :p for the ball-pivot (unless this is also a part of another plugin?)

but yea, both techniques gave me weird results. Normal Delaunay Triangulation is pretty good at getting a skin-deep mesh, but can sometimes fail at the edges where something in the background/foreground gets incorporated in to the mesh instead, ending up with spiky points at some edges.

Which was why I was hoping Delaunay Triangulation could be done on the surface of a sphere, as kinect point clouds are basically projected out from a sphere/point, whereas normal Delaunay Triangulation is done on a flat plane :/

I use my own Ball Pivot stuff thus I don't know if MB has one (In general for real-life work in my practice I don't use any add-on except Kangaroo).

Delauney is NOT made for the collections that you have in mind by any means. NOTE: it works on "flattish" collections, not only in flat.

Here's some things that a BP thingy can do working against "skin-deep" pts Lists (auto RadiusSearch off [=user]/on[=code]):

And here's what happened if you use the totally wrong pt collection VS Delauney (shown a "biased" random collection ... meaning that the distribution is not "uniform" [follows some other rules]):

Now ... if the question is if a mesh exists that consumes all these points AND is manifold AND is closed ... well ... the answer is unpredictable and ambiguous.

That said BP algos invented years ago in order to support reverse engineering matters (LIDAR data > something etc etc) therefor ... er ... one expects skin-deep collections.