In SVG, two path d attributes only interpolate smoothly when they have the same number and type of points. A mismatched count makes the browser pop or fold oddly mid-transition — so shapes meant to morph into each other are drawn with matching point counts from the start.
You can animate the d attribute directly in @keyframes (Chromium-family browsers), or interpolate points with a JS library like Flubber. Common for blob backgrounds, icon transitions (play → pause), and logo intros.
The demo cycles through three blobs drawn with the same structure (a start point plus four curves) so they interpolate cleanly.
When to use
Only morph between shapes whose meaning is connected — morphing unrelated shapes just confuses.