Add 2D interactivity on any 3D surface in three.js with ZIM TextureActive. Visit the TextureActive Studio at https://zimjs.com/studio to see how! ZIM Blob() and Squiggle() are shapes that can be changed with Bezier curves. The user can add and remove points and change their types. Use https://zimjs.com/paths to start off with shapes or use an SVG path.
See https://zimjs.com/015 for an intro to TextureActives.
ZIM at https://zimjs.com is a JavaScript Canvas Framework - code creativity - visit us at https://forum.zimjs.com for questions and more examples!