Geographic visualization for the Web and VR
Overview
In this article, we focus on our latest progress in visualization. We are going to elaborate the following topics:
- three-geo: a new geographic visualization library,
- development of geo applications, and
- in-situ VR experiments using geographic terrain data.
Publishing a new GIS library
As announced in the previous article, we have published three-geo, a JavaScript-based geographic visualization (geoviz) library that helps web developers display satellite-textured 3D terrains located at any GPS coordinates on the globe. Although we published several OSS repos in our Github space in the past, this time was a bit different in a sense that we were shipping a developer’s library related to a very domain specific topic: 3D GIS (Geographic Information Systems) in browsers.
We hoped the impact of this geoviz library was relatively higher than before considering its simple usage and across the globe visualization capability. Letting alone the underlying demand of 3D GIS tools in browser, we think the accompanying demo app (named geo-viewer) that’s easily accessible via URL could well convey what’s possible using the library. Especially, the 3D-rendering capability of arbitrary geo locations in near real-time has been our focus. Also, in geo-viewer, we carefully implemented and demonstrated simple but practical GIS features such as terrain measuring/marking. We designed geo-viewer extensible enough for its future evolution. We plan to keep adding more GIS operations into it.
Future of geo-viewer

For terrain geometry modes, we currently have “satellite” and “wireframe” supported. We initially planned to include “contour” mode where 3D contours are rendered at 10-meter interval, but we couldn’t finalize it in time. So we are adding it in the next minor version updates of three-geo. Also, we plan to support more variety of terrain textures available via OpenStreetMap and Mapbox including custom tilesets crafted by GIS mappyists.
From the application perspectives, we might spin off geo-viewer and set up a dedicated GitHub repo for it. We will be constantly adding new features useful for GIS experiments. Porting the GIS operations implemented by the Python GIS communities might be also interesting.
Finally, to bring GIS to VR, we use three-geo in our webcentric-VR platform. Since everything is written in the standard ES6 JavaScript and rendering is performed on top of three.js, VR-porting of the GIS features in geo-viewer is a rather straightforward task. This way, we can perform GIS application development targeting standard webapp and our VR platform at the same time.
In-situ experiences in webcentric-VR

In our VR-based GIS applications, we are going to investigate much more than merely showing the terrain as a 3D surface floating in space. In particular, we are now actively experimenting with using the 3D terrain as an environment, i.e. the terrain serves as a 3D background providing the user with in-situ experiences. Regarding this in-situ stuff, we’ve got valuable feedback citing a real-world application for space missions, and we are really excited about this direction.
We have already got working both terrain loading in VR and the in-situ context switching algorithm. We are now deploying an online version so that we can start asking for opinions/feedback from potential users. After this basic in-situ setup is completed, we have the following experiments in mind:
- refining terrain meshes by remote sensing data from drones, and/or locally patch higher resolution textures surrounding the in-situ agent.
- augmenting educational 3D models (such as CyArk’s works) into in-situ VR scenes. (Also, here’s our ongoing experiments with OpenStreetMap buildings.)
- multi-party participation in VR scenes via WebRTC.
We are going to start asking potential users to actually try out these prototypes and see if any of these prototypes could possibly solve their real-world problems.


