So here's the latest challenge: create an interactive 3D user experience without the help of 3rd-party development tools
Determining the best development route was actually the most time-consuming part of the entire process. Having committed ourselves to native WebGL, we decided the three.js library would speed things up considerably.
Initially we attempted to render 3D environments onto equirectangular images, and map these onto the internal surfaces of spheres. Just pop a camera inside and Bob's your uncle! However, we encountered a couple of serious usability/quality issues and eventually ditched this approach.
Our preferred method now is to render and map 6 x distorted images onto the internal surfaces of a cube. Much faster & better quality than the sphere. We then added both mouse and touch controls so the cube can be rotated, and reversed them so you appear to spin in the direction of drag.
Our friends are pleased with the results and anticipate demand for real-world applications very soon.