Alex: Ramping up for next week’s keynote presentation at EuroVis in Groningen and the following big presentation at IPS, I was fixing the small issues that have been left lying around so far. The 67P model now doesn’t disappear anymore during projections, it is easier to switch between high and low resolution textures for the New Horizons case, reenabling multi-viewport rendering. However the big part was a redesign of the image projection method. Now, all projections are stored into a separate layer, which makes blending and clearing a much more trivial task. Along these steps, the image projection for planets and models alike has been factored out into a common ProjectionComponent element.

Erik & Kalle: We spent more time working with different layers of datasets. Layers can be turned on and off from the gui and the shaders will recompile dynamically to account for the number of layers used in the rendering. We also created a class to handle temporal datasets such as the daily corrected reflectance map datasets of earth provided by GIBS. The textures can now be blended between different levels to avoid some of the popping artifacts that appear when the chunked-lod tree is updated.


Alex: This week was rather slow due to a visit to the SIGARD conference. However, I managed (with some help) to integrate the height map into Pluto and Charon. So now we can fly across the surface more realistically.

Kalle & Erik: We can now deal with sparse datasets. When a tile is unavailable due to missing data or IO error, this knowledge will be kept track of by the TileProvider, and a transformed parent tile will be used instead. The InteractionHandler has been refactored to be more modular. Besides the regular orbit interaction mode, a speicifc globebrowsing interaction mode considering the ellipsoidal shape of a planet were also implemented. To reduce precision errors, all interaction logic and matrix arithmetics are now done with 64 bit floating point precision. This theoretically yeilds a micrometer vertical resolution at the surface of Earth, instead of the larger-than-meter quantization given by 32 bit floating point arithmetics. Tiles are now rendered with skirts to avoid cracks between tiles of different level in the chunk tree.


Alex: In this week, I was focussing on preparing more features for the presentation at IPS in the end of June. However, I was only able to dedicate two days to this, so progress has been limited to only a few areas. For instance, the trails rendered behind the Rosetta spacecraft no longer produces artifacts when using high delta-time.

Emil: This week, I have continued to work on rendering of the Milky Way using volumetric and point based data provided by AMNH, and got the first visual results. I plan to continue improving the quality of the rendering in collaboration with Jon Parker who works for the museum, and previously worked on galaxy rendering for the dome movie production Dark Universe.

Michael & Sebastian: The past two weeks we finished visualizing Ionossphere data around Earth, and started a new feature in the iSWA module. So far we have been working with 2D data from iSWA because that is the only this that is reasonable to stream at runtime. Now we are working on rendering cutplanes from 3D data files, this will be visualized together with fieldlines. The plan is for this feature to be used at NASA/LWS Heliophysics Summer School.

Erik & Kalle: Rendering of multiple texture layers is done by providing an ordered list of texture data sets in the globe’s mod file. Prioritizing of tile requests makes it possible to browse different parts of the globe without needing to wait for unused tiles to load. We also fixed a bug that caused the chunk tree to repeatedly merge and split some nodes. Some time has also been spent on improving the camera class together with some parts of its interface.


Alex: This week nothing of great importance happened on the code base from my side. Being busy on a conference spreading the good word about the existence of OpenSpace and continuing the work on fixing the image rotations.

Eric: The semester has ended here and final exams have been graded, so I expect to have more time soon to work on OpenSpace. I’ve started learning how to use CMake and working toward getting the code to build on my Mac, with Windows to follow. I intend to document this as I go to help any new developers we may attract or add.

Emil: This week I have been working on conversion tools for between volumetric data formats, and a volumetric rendering of the Milky Way galaxy.

Erik & Kalle: This week was spent mainly on debugging our view frustum culling, tile fetching, height map scaling and texture data types were tackled. We have also started looking at solutions for rendering tiles with multiple texture layers. This will probably be solved with recompilation of shaders depending on the number of textures to sample from.


Alex: I cleaned up the data directory and sorted the different scenegraphnodes into folders grouped by their respective missions.  Unused, old folders were deleted in the process.  Furthermore, I started working on reviving the image projection on Rosetta and fixing a bug with inverted textures.

Erik & Kalle: It is now possible to specify GDAL config files for the tile datasets to use for both height mapping and color texturing of a planet.  Using GDAL RasterIO, we are now fetching arbitrary pieces of the datasets in a simple manner.  In order to enable efficient caching, however, we have specified our own tile scheme for carving out specific tiles using the GDAL interface.  Our standardized tiles matches 1:1 with ChunkNodes and provide aa efficient way of client side caching of tile data.

Michael & Sebastian: Last week we implemented support for loading images from a url in ScreenSpaceImage which led to a few new design choices in the iSWA module and DownloadManager as well.  We are currently waiting to get test data of the ionosphere to work with, and in the meantime we have started writing our final report.

2016-05-03 – Marching on

Alex: This week was, once again, focussed on cleaning up the code base. The static startup scripts have now disappeared and were replaced with Lua functions which are defined in the respective scene files. This allows us to finally use different keybindings etc for different scenes. Otherwise, I have been continuing to work on implementing Keplerian orbit definitions.

Michael & Sebastian: This last week we have done a litte bit of this and a little bit of that. We’ve achieved some bugfixes in screen space renderables, some cleanup, wrote some Lua scripts for creating screens space renderables and iSWA cygnets, fixed the fieldlines module, worked on the colormapping for the rendering of data, benchmarking, implemented groups for iSWA cygnets (so that you can manipulate more than one at a time, keeping them synced) and some other smaller things. Last Friday we took a half-day to visit Erik and Kalle in New York over the weekend.

Erik & Kalle: Enhanced file structure in globe browsing module. Planets are modeled using a 3-radii ellipsoid instead of a pure sphere. Doing this we can for example accurately model Earth using the standardized WGS84 ellipsoid. Added templated classes ConcurrentQueue and ConcurrentJobManager and are currently used for tile loading in a separate thread.

2016-04-26 – Progress I Say!

Alex: This week was mostly focussed on smaller changes and bugfixes, like removing SPICE dependencies from code that should not depend on it, writing a script that will download all of the LORRI images for New Horizons from the science webpage, and I started working on implementing Two-line elements sets and orbits based on Keplerian elements.

Erik & Kalle: This week we included GDAL as an external library and tried it out for loading local datasets. A simple proof-of-concept tile provider was implemented and used for rendering tiles of different resolutions. We used an open real-time dataset (NEXRAD Base Reflectivity) which provides a tiled heatmap of precipitation (water/snow/hail) in the atmosphere over the United States.

Michael & Sebastian: The past couple of days we have focused on rendering 2D magnetosphere data from the SWMF model on planes. This came with some issues regarding the processing of this data. Rendering the data as a texture, as is, makes it really hard to distinguish the interesting aspects of it. Because of this we’ve been experimenting a bit with different ways to normalize and process it, and we are now looking at the colormapping part. The processing needs to be kept computationally low to be kept at an interactive rate, which also needs to be investigated moving forward.

We have also talked about new features, regarding rendering fieldlines around our planes and rendering 2D Ionosphere data on spheres.

Niclas: Working on the new camera matrices. Starting to look into the math behind the numerical errors.

2016-04-19 – Enter Witty Text Here

Alex: In this week, a lot of different things happened. For once, I presented OpenSpace at a CCMC-organized workshop in Annapolis to the greater Space Weather community and some folks from NASA HQ. It included a demo of the New Horizons flyby and a second demo of the interactive volume rendering. On the code side of things, it was a week for fixing individual tickets. The Launcher is now fixed and it works again to download images from the web, a bit of cleanup in the module folder lead to grouping and removing modules that were not needed anymore, global Lua variables are now available for scene description files, and the LogManager will now log messages to the Visual Studio output window, if the application is attached to a debugger.

Emil: This week, I’ve been spending some time looking into how one should go about removing the power scale coordinates from the whole of OpenSpace. I learned that there are quite a few classes depending on this internal representation of vectors. A reasonable way to refactor this would be to create a separate branch, and temporarily disabling some of the more complex features such as planet proejctions, and rebuilding the affected parts of the rendering pipeline from ground up. Once the basic rendering is up and running again, the individual features can be modified to work again.

Niclas: Error-handeling for scalegraph related information from modfiles. Preliminary planning/work on new view/projection-matrices for the camera that should replace the old ones when rendering objects in other scenes.

Erik + Kalle: We started working with integrating textures using a general interface to fetch tiles. This now works for both chunked lod and geometry clipmap rendering. The splitting and merging mechanism of chunked lod nodes is done not only based on distance to camera, but also with view frustum culling which speeds up the rendering significantly as opposed to do the frustrum culling in the rendering step.

Sebastian + Michael: We just got back from an interesting week in Annapolis at the CCMC workshop. Now we have started to look at the new data we revived. So far we are able to get the metadata and images from our own server. Then we can read the metadata correctly and place the image in the right location and with the right orientation. Now we are working on visualizing the data files that contains the same sampled values as the images.

2016-04-12 – Planes and Planets

Alex: This week, I have been dealing with closing a lot of the small tickets that have been collecting over the past months. For instance, it is now possible to use keyboard modifiers in the keybinding, modify the transparency of stars, added methods to dynamically add scenegraph nodes at runtime using C++ functions or through Lua, and implemented more efficient texture handling. Not every luminance texture is now automatically converted into an RGB texture, but a method has to be called if that is required. Otherwise, texture swizzling is now supported to be able to stick with a Red texture. In addition, I started converting files into untabbed format in my spare time.

Emil: This week, I’ve been focusing on the time-varying multi-resolution volume rendering module, and making it compatible with the new volume rendering interface. This means that we are now able to visualize time varying space weather simulation-data using both the abuffer renderer, and the framebuffer renderer. The code is merged into the develop branch, so for the first time we can combine space weather visualizations all the way out to Pluto, with our already existing New Horizons visualization.

Niclas: Finalizing scene selection for the scalegraph. Fixing some issues in the scenegraph structure. Adding ephemereis for objects that require them.

Kalle + Erik: We have been working on rendering spherical patches that can be used both for clipmap geometries and chunked LOD rendering. The patches can be rendered using NURBS surfaces which perfectly represent spherical patches and we implemented such a method. The problem is that the UV-coordinates that later will be used for texure lookup was not uniformly distanced along the patches. Now patches are rendered by converting lat-lon coordinates to global cartesian coordinates in the vertex shader.

We have also implemented a proof of concept for the chunked LOD algorithm which splits and merges patches depending on distance to the camera.

Sebastian + Michael: Last week we came to the conclusion that CCMC will povide us with new cygnets through iSWA that are adapted to suit our needs. The first cygnet that we received is from the SWMF model which gives us x, y and z slices of the global magnetosphere. Together with the generated images we also get the data and metadata that we need to place the slices correctly in OpenSpace. This is however not yet available through the iSWA API, so we have created a temporary local server that can serve the cygnets to us in the meantime. This week we are at the CCMC workshop in Annapolis enjoying a week full of intresting talks about space weather.

2016-04-05 – Working-working-working

Alex: After finishing with the deadline last Thursday, I’m finally free to put some more effort into the development. Currently, I’m preparing for the presentation of OpenSpace next week at the International CCMC workshop in Annapolis, where we will show off some of the cool features to the Space Weather community. Very exciting!

Emil: I have received high-resolution volumetric data of the Milky Way from Jon Parker, the Lead Technical Director of the space show Dark Universe, produced at AMNH. The data set contains 8096x8096x512 voxels originating from a simulation. I am working on integrating the data into OpenSpace, and investigating how we should handle pre-processing of large volumetric data sets like this one

Erik & Kalle: We talked to Lucian Plesea over Skype regarding the use of GDAL in OpenSpace to handle queries and transformation of map data. We are also aiming at implementing simplified versions of two methods in parallel and compare them once they are done: Chunked Tile tessellation using quad trees and Ellipsoidal ClipMaps. A basic class structure around the existing planet rendering structure has been designed. A general Geometry class, a GridGeometry subclass, and a DistanceSwitch class have been implemented so far.

Michael & Sebastian: Last week we started to work with the iSWA api to get cygnet images in runtime. For the moment these cygnets provide no metadata so we use screen space images to show them. The images are updated with respect to the time in OpenSpace. We will soon get new iSWA cygnet types that comes with metadata that will allow us to place them in the world.

1 2 3 4 5 6 7