Part of my work in robotics programming involved computing ‘motion paths’, I’m considering taking a closer look at this issue, as I think the current results are unacceptable - the wireframe in particular displays some fundamental issues in the way the tri-strip is being tesselated, including slivers generated by vertices which are very close to others, and rightly should have been ‘welded’ with some distance threshold, although the overdraw caused by z-fighting overlapping triangles can probably be eliminated by drawing the trail geometry in two passes - the first with depth-writing enabled, as a depth-only pass, and the second as the full pass, with depth-testing enabled.
PS - ugh, they’re not even tri-strips, they are quads in our current implementation. I think that a possible solution to the issue of overlaps is to generate two Catmull-Rom splines, and then generate a tri-strip based on sampling the two curves. But using two render passes as mentioned above would likely be more performant.