Wow, my laborious-seeming TikZ workflow actually looks pretty simple in comparison! It's all in the one tool and the entire picture code is right there in the Latex source, easy to edit and version control. Shading on a surface is not something I've got nice yet, and lines becoming occluded is a manual effort, but I'm pretty sure I could produce something like the 6 hour figure on p24 in quite a bit less time than that.
Edges of surfaces caused by things like hills obscuring other parts of the same surface, or the surface curving back behind itself (many examples of both on p2 of this) are something I don't have a good way to do. I have done it by doing edge detection on an OpenGL depth buffer and vectorising the results, but that's hard to integrate with TikZ, and changing view angle means doing it all again. Shadows are another problem.
Nice talk! This seems like it could be an interesting tool model real phenomena. Have you considered if you can invert this to derive which constraints and energy function best match a particular sample? Say, take a video of cars entering and exiting a highway ramp, what constraints and energy functions best model the paths taken? This could be individual as well, for example a particular car may be driven "aggressively" according to humans, if you derived the constraints this way could you reliably predict humans' scoring?
Hi Keenan. Do you have advice for how a programmer can get started with implementing repulsive curves if they’re not familiar with the mathematics in the paper and video?
that talk made it really clear how tangent-point energy is easier to compute than mobius energy but not why it's a good proxy for it, it seems like a semihack
The short video is great. The paper looks great (based on a very quick skim; this is an area in which the authors have far more expertise than me). The high-level explanations are great. The web page is great -- informative and to-the-point. Really impressive work!
The use as a pathfinding technique immediately stood out to me. If I'm understanding the way it works it results in variable speed, making it less useful for some game purposes. But this is super useful for animation. If you are trying to model crowd behavior your entities will seemingly speed up and slow down to allow others to pass but still arrive where you need them to at specific times.
One thoughts I had when first I skimmed the paper is that it should be straightforward to train a small, fast DNN to approximate the technique, and then use the DNN for applications that have more stringent performance requirements, including games.
The video has some really interesting / creative examples. Using this for path planning by treating paths as curves through space-time was particularly impressive.
He's really inspirational. He's always really helpful has a wonderful energy on twitter and the geometry discord he's part of, and seems like a really great (and very intelligent) guy all around.
One of the insights here is using the “tangent point energy” as part of the repulsion loss function. If anyone’s used, or knows of, a python implementation of this TPE function then please lmk!
Wow, imagine this could be very useful for a variety of logistics/routing applications (IE train routing, assembly line optimization, self-driving cars). Perhaps this kind of stuff is in play there already and this just helps make it easier to visualize?
Lovely visualizations as well. Really makes it tangible.
The applications in particular are the piece I find most enjoyable about this publication. The robot path distance maximization, space-filling, and auto-earbud-untangler are pretty neat.
https://www.cs.cmu.edu/~kmcrane/Projects/RepulsiveSurfaces/i...
Deep dive into repulsive geometry here: https://youtu.be/dtYGiCpzzbA