adaptive sampling

I got an interesting idea today.

As you may already know, I’ve been making models of Klein bottles an’ stuff; heretofore they’ve all been in the form of bent rods, but where possible I’d prefer a continuous surface. (A hollow body must have holes so that unused powder can be shaken out; but not all of my designs have enclosed spaces.) How to place a minimum number of vertices so that deviations from the abstract shape are within the resolution of the process? That’s less obvious with more degrees of freedom.

So, today’s idea. Start with an arbitrary set of sample nodes (in the abstract space of the parametric variables, rather than on the target surface itself), and their Delaunay triangulation. Along each edge of the triangulation, measure the deviation of the surface from a straight line; this gives the edge a weight. Move each node to the weighted average of its neighbors (with a bit of noise); thus, an edge whose image is strongly curved gets shorter.

After the movement phase, each edge ought to be checked, whether it’s still a Delaunay edge or needs to be replaced by the other diagonal of the quadrilateral formed by its two triangles. I don’t yet have criteria for adding nodes where existing nodes are too far apart, or merging them if they become redundant.

This entry was posted in mathematics. Bookmark the permalink.

2 Responses to adaptive sampling

  1. Anton says:

    How many wheels am I reinventing?

    Not sure how to measure “deviation”; perhaps by the difference in normal vectors at the two samples, or the vector projection of that difference along the image-edge.

  2. Bill Walker says:

    Hello Mr. Sherwood,

    I came across your page after following a bunch of tangents, and it seems you enjoy the same sort of mathematical puzzles as I do. I’ve had quite a bit of fun looking through your math and graphics sections. Very nice work. You’ve clearly put a lot of time into some of these little projects 🙂

    I’m currently thinking about “importance sampling”, and how to generate “random” samples that focus on regions “where the curve is” and minimize low-value / baseline regions. I thought perhaps you might have some ideas or advice.

    my current thoughts:
    http://news.povray.org/povray.binaries.images/thread/%3Cweb.57cb6721f854a3db5e7df57c0%40news.povray.org%3E/

    related to a discussion here:
    http://news.povray.org/povray.advanced-users/thread/%3C57c92c88%241%40news.povray.org%3E/

    and a “failed” interpretation
    http://news.povray.org/povray.binaries.misc/thread/%3Cweb.57c8fabeab8df165e7df57c0%40news.povray.org%3E/

    Thanks, and keep up the good work!

Leave a Reply

Your email address will not be published. Required fields are marked *