Description
With increasingly detailed digital elevation models (DEMs), it is possible to render 3D terrain with very high resolution. In our weBIGeo project, we explored real-time 3D visualization of big geographic data on the web using the web graphics API WebGPU. There are multiple opportunities how students can enhance our web-based 3D geovis framework:
weBIGeo Student Projects
Currently available topics in the weBIGeo project:
(BA / PR / DA): 3D labels: 3D geographic visualization can only work effectively when users can orient themselves. Labels are therefore essential. We have the technical foundation to load vector tiles and render text labels for our WebGL implementation. In this project, this functionality shall be adapted to WebGPU and potentially extended to improve the view-dependent visibility of labels. Depending on the project type, different levels of labels could be combined (e.g., mountain peaks and regions), and the results should be thoroughly evaluated.
(BA / PR / DA): Avalanche animation: our weBIGeo prototype includes a simple real-time avalanche simulation routine. At the moment, we only support a static visualization. In this project, avalanche simulations should be animated. This also allows for interesting new interactivity, such as placement of barriers and adapting release areas. Depending on the project type, the resulting prototype should also be evaluated with domain experts.
(BA / PR): Point clouds: at the moment, our weBIGeo renderer only supports 2.5D elevation models. In some situations, we might want to exchange some objects (like huts or trees) with point clouds. In this project, our renderer should be extended with a flexible possibility to smoothly integrate more detailed 3D point clouds of selected objects.
Student Projects in Collaboration with Skitourenguru
Skitourenguru is a web-based tool to support the selection and planning of ski routes with respect to avalanche danger and other criteria. Interested students should not only have excellent programming skills but also be passionate about winter sports. Students will collaborate with the founder of skitourenguru in the course of their project. Experience with skitourenguru from a user perspective is a definitive advantage.
(BA / PR / DA): Route rendering and exploration in 3D: When selecting a route for closer inspection, skitourenguru color-codes segments of the selected route according to the computed avalanche risk and also shows additional icons, such as key danger points or past avalanche events. Currently, this information is shown on a 2D map. This work should visualize the selected route and its associated risk information in 3D. The implementation could use the weBIGeo framework or other 3D map rendering tools like MapLibre or Cesium. The objectives are performance, readability of route and terrain information on the 3D visualization, as well as usability (intuitive navigation, getting details on demand etc.). Depending on the type of work and the user interest, the strengths and limitations of 3D vs. 2D route representations should also be compared in a small user study.
(BA / PR): Client-side route planning: Skitourenguru supports automatic optimal ski touring route finding based on few input control points by the user. The algorithm is explained in this paper. Currently, the client sends the input points to the server where the routing is computed. In this work, route planning functionality should be ported to the weBIGeo client. Extensions of the work to an DA (master thesis) can be discussed.
Requirements
- Strong interest in (web-based) visualization and rendering
- Very good programming skills
- Experience with graphics programming (OpenGL, Vulkan, ...) is a big advantage
- Experience with web technologies (WebGPU, WebAssembly, ...) is also advantagaeous
- A good feeling for creating appealing graphics is a plus
- Being excited about mountaineering is definitely also a plus
Environment
The weBIGeo project is based on C++ with Emscripten, WebAssembly, Qt, and ImGui. The concept and implementation is described in more detail in this preprint. The code can be found on GitHub. A first demo version is also online (a current version of Chrome is required).