<p>Here are some papers and tools related to finding geodesics (or approximations) on a surface mesh:</p>
<p><a href="https://arxiv.org/abs/2007.10430" rel="nofollow noreferrer">A Survey of Algorithms for Geodesic Paths and Distances</a><br />
<a href="https://nmwsharp.com/research/flip-geodesics/" rel="nofollow noreferrer">You Can Find Geodesic Paths in Triangle Meshes by Just Flipping Edges</a> (<a href="http://geometry-central.net/surface/algorithms/flip_geodesics/" rel="nofollow noreferrer">code</a>)<br />
<a href="https://www.cs.cmu.edu/%7Ekmcrane/Projects/VectorHeatMethod/index.html" rel="nofollow noreferrer">The Vector Heat Method</a>
(<a href="https://www.cs.cmu.edu/%7Ekmcrane/Projects/HeatMethod/code.zip" rel="nofollow noreferrer">code</a>)</p>
<p>You can find more papers in the survey paper.</p>
<p>I implemented the algorithm you mentionned (MMP) a long time ago and it's quite difficult to get it right and quite time consuming since the number of splits along an edge grows quite fast.</p>
Shortest distance between two point on surface
<p>I'm working on my bachelor thesis (on Computer Science) and right now I'm having a problem about finding shortest path between two points on 3D triangular mesh that is manifold. I already read about <a href="https://www.cs.umd.edu/%7Emount/Papers/mmp-sicomp-87.pdf" rel="nofollow noreferrer">MMP</a>, but which computes distance function $d(x)$  between given point and vertex $x$ on mesh.</p>
<p>I got to know that the problem I'm solving is named Geodesics but What I really couldn't find is some good algorithm which uses A* for finding shortest path between two given points on two given vertices.</p>
<p>I 'invented' also algorithm which uses A* by using Euclidian Distance Heuristics and correction after finding new Point on any Edge..
I also have edges saved in half-edge structure.</p>
<p>So my main idea is this:</p>
<ol>
<li>We will find closest edge by A* algorithm and find on this edge point with minimalizing function $f(x) + g(x)$ where $f$ is our current distance and $g$ is heuristics(euclidean distance)</li>
<li>Everytime we find new edge, we will unfold current mesh and find closest path to our starting point</li>
</ol>
<p>So now my questions:</p>
<ul>
<li>Do you know some research paper which talks about this problem ??</li>
<li>Why nobody wrote about algorithm that uses A* ??</li>
<li>What are your opinions about algorithm I proposed ?</li>
</ul>