Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Repulsive Curves (cmu.edu)
329 points by lnyan on April 23, 2022 | hide | past | favorite | 31 comments


If you liked repulsive curves, you may also enjoy repulsive surfaces:

https://www.cs.cmu.edu/~kmcrane/Projects/RepulsiveSurfaces/i...

Deep dive into repulsive geometry here: https://youtu.be/dtYGiCpzzbA


Hi Keenan. What do you use to generate your figures of surfaces with lines and other things drawn on them, e.g. figures 2-6 of the geodesic survey paper (http://www.cs.cmu.edu/~kmcrane/Projects/GeodesicSurvey/Geode...)? Lots of great pictures like that in the SIGGRAPH 2013 Course Notes too (https://www.cs.cmu.edu/~kmcrane/Projects/DDG/paper.pdf). I have made some similar figures with TikZ, but it's a lot of work and the results aren't as nice as I'd like.


He has a whole presentation about this: https://www.cs.cmu.edu/~kmcrane/Projects/Other/IllustratingG... . TLDR: it's a very manual process :) His lab is also working on Penrose, which is a domain specific language for mathematical diagrams: https://penrose.cs.cmu.edu/


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.


Not the author so I don't know for sure, but it does list Polyscope in the main link.

https://github.com/nmwsharp/polyscope


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?


Oh, that's actually the one I was looking for. I should have thought to check your publications page first.


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


This is immediately useful for a huge number of practical real-world applications.

Make sure to watch the short explanatory video (and turn the sound on) -- here's the direct link:

https://www.youtube.com/watch?v=-uXFYpVumh4

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!

--

EDIT: The senior author is here at https://news.ycombinator.com/item?id=31134139 -- his comment should probably be above mine. Please upvote it.


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.


Keenan Crane's [1] lab has been putting out some top notch research in recent years.

In particular, their work on discrete differential geometry [2] is really worth diving into (and Mr Crane is a really good pedagogue).

[1] https://www.cs.cmu.edu/~kmcrane/

[2] https://www.youtube.com/watch?v=mas-PUA3OvA&list=PL9_jI1bdZm...


I can think immediately of applications:

- bio engineering -- predicting (?) or designing (?) molecules that are large chains to perform some particular function

- coverage path planning -- sort of a "roomba" problem -- find a continuous path, through a space, that covers the space

- 3-D printing -- find the extrusion path that maximally covers some area or areas with high strength with a minimum amount of material


I'm also wondering if this might inspire ideas for how blood vessels end up getting placed by growing bodies, etc.


Keenan Crane simply makes the most beautiful papers out there


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.


He's a genius. A researchers best hope is that he doesn't stumble on their research subtopic.


FWIW, Nathan Dunfield's hand drawings are typically very difficult to improve upon.

This is an impressive paper. Thank you for sharing!


His latex templates, too.


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!


The graph layout example is really compelling.


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.


This could work well for PCB trace routing optimization too? Handling multiple layers might be bit difficult, but maybe not insurmountable?


Hold on, wasn't there a similar paper last year wrt non-intersecting shape/mesh optimization? (edit: I think it was a topology paper actually)

I found this: https://arxiv.org/pdf/2201.06256.pdf but I don't think it's what I'm thinking of.


This shape filling curve method probably isn't what you're thinking of either, but it's neat and similar to the OP linked paper in 2D: https://news.ycombinator.com/item?id=25905534 & https://www.vidarholen.net/contents/blog/?p=1062


Yes; Keenan Crane does amazing work; his book (and online video series) on Discrete Differential Geometry are really good.


Beautiful & compelling presentation


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.


The mobile experience is unfortunately quite repulsive so I didn’t read the article :( But wanted to..




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: