Three.js interactive viewport