I never tried this way but I don’t know if actually it works. I don’t think the same canvas can hold both webgl and 2d contexts.
What I usually do is to prepare 2 canvases - one for webgl (in my case hydra/regl but it can be three.js, babylon etc) and one for p5.js. Then you can either overlay two canvases using CSS, or copy one of the canvases to the other using p5’s image function (or directly call drawImage). In this case you may need to turn preserveDrawingBuffer flag on the webgl canvas to be copyable:
assuming you copy a canvas inside another canvas, there are two different approaches:
copy webgl canvas into p5.js and overlay UI
copy p5.js canvas and use it as a texture in three.js
if you want to use orbit controls, perhaps the latter is the way to go. What you probably need is a technique called billboarding - regardless of where the object is facing at, the texture looks as if it’s facing the camera. You can find some info here
if you go with this direction, I would suggest asking in three.js communities because this is not related to p5.js anymore - just to let you know
sorry to hear that - you can perhaps appeal about the suspension or find other places like discord server or some knowledgeable people on twitter. but unfortunately we can’t help you with this matter on the processing forum.