[HN Gopher] Repulsive Curves
       ___________________________________________________________________
        
       Repulsive Curves
        
       Author : lnyan
       Score  : 260 points
       Date   : 2022-04-22 10:52 UTC (1 days ago)
        
 (HTM) web link (www.cs.cmu.edu)
 (TXT) w3m dump (www.cs.cmu.edu)
        
       | yowlingcat wrote:
       | 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.
        
       | shadowgovt wrote:
       | 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.
        
       | zokier wrote:
       | This could work well for PCB trace routing optimization too?
       | Handling multiple layers might be bit difficult, but maybe not
       | insurmountable?
        
       | lewiso1 wrote:
       | 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!
        
       | iandanforth wrote:
       | The video has some really interesting / creative examples. Using
       | this for path planning by treating paths as curves through space-
       | time was particularly impressive.
        
       | ThouYS wrote:
       | Keenan Crane simply makes the most beautiful papers out there
        
         | natly wrote:
         | 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.
        
       | rland wrote:
       | 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
        
         | cryptonector wrote:
         | I'm also wondering if this might inspire ideas for how blood
         | vessels end up getting placed by growing bodies, etc.
        
       | arc-in-space wrote:
       | 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.
        
         | thechao wrote:
         | Yes; Keenan Crane does amazing work; his book (and online video
         | series) on Discrete Differential Geometry are really good.
        
         | mkl wrote:
         | 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
        
       | nateburke wrote:
       | FWIW, Nathan Dunfield's hand drawings are typically very
       | difficult to improve upon.
       | 
       | This is an impressive paper. Thank you for sharing!
        
         | ykonstant wrote:
         | His latex templates, too.
        
       | bwestergard wrote:
       | The graph layout example is really compelling.
        
       | keenancrane wrote:
       | 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
        
         | [deleted]
        
         | arc-in-space wrote:
         | Oh, that's actually the one I was looking for. I should have
         | thought to check your publications page first.
        
         | mkl wrote:
         | 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/Proje
         | cts/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.
        
           | hcrisp wrote:
           | Not the author so I don't know for sure, but it does list
           | Polyscope in the main link.
           | 
           | https://github.com/nmwsharp/polyscope
        
           | wbrbr wrote:
           | He has a whole presentation about this: https://www.cs.cmu.ed
           | u/~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/
        
             | mkl wrote:
             | 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.
        
         | quag wrote:
         | 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?
        
           | [deleted]
        
       | lordleft wrote:
       | Beautiful & compelling presentation
        
       | cs702 wrote:
       | 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.
        
         | dwallin wrote:
         | 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.
        
           | cs702 wrote:
           | 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.
        
       ___________________________________________________________________
       (page generated 2022-04-23 23:00 UTC)