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! The ZIM DPad() - directional pad - lets you move things about. Two can be used for horizontal and vertical motion like for quadcopters.
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!