Для визуализации
используется three.js
Куб проецируется изнутри, на который накладывается кубическая текстура панорамы. Стрелочки это также 3d объекты, для который работает raycast (для событий мыши).
Боковая карта работает по другому принципу, там достаточно средств js