2 ms·
This is a really nice to have detailed write up of a common and vexing problem: how best to combine to curves for (insert your problem here). A few years ago
by tobmlt 6y ago
This is a really nice to have detailed write up of a common and vexing problem: how best to combine to curves for (insert your problem here).
A few years ago I faced A good many curve splitting and curve join issues when automatically building topologically complex shapes out of simpler bspline primatives — where things had to conform to various layers of constraints along the way.
Seeing something like this could have been helpful!
Ah, and because I can’t help myself, here is a sketch of the things I was building-together for this bspline generation/optimization extravaganza. Eh hem,
I’ve had much fun in related spaces...
Automatic differentiation of B-splines let’s you optimize (Newton style) Bspline curves and surfaces (and if efficiency matters not, higher dimensional bsplines I suppose).
The solver I made allowed you to compose constraints and objectives on the fly, and it would build and solve the newton system for you.
Then I tried it with interval valued control points. That worked too. Plus you get to use, e.g. Brouwer's fixed point theorem and simpler tests to exclude infeasible portions of the space. That was fun, but it needed help getting started when intervals where big. It needed a constraint solver to narrow the space first.
So I made an interval valued constraint solver based on minikanren, extended to handle interval arithmetic of course.
Worked beautifully.
As a demo I had it randomly sample the design space (to a point or to a finite interval) 1D at a time, let the constraint solver kill off everything made infeasible by that choice in the other design dimensions, and then sample the next design parameter. Carrying that through the design spec arrived at a random design quickly. Then the newton solver took over and generated the geometry. At that point I realized I didn’t need the interval Newton solver for my problem... the interval constraint solver was good enough and then the real valued Newton solver could finish the job.
(Of course it could also tile the space entirely, but I’d need some fancy compute to get something back for a real problem.)
Lots of fun anyway! I still think i should make something of it, as soon as I have time... ah well
- srean 6y agoThat seems a lot of fun. Would love browsing through that code