* Added pboettch/json-schema-validator submodule * Added initial code for selecting window config to edit * Use updated sgct submodule with json-validate * Bump sgct submodule version reference * Bump sgct submodule version reference * Version checking of sgct window config in progress * Json schema validator submodule is now in sgct * Added support for read-only window configs, and additional changes * More changes with opening config in window edit, plus schema files added * Update sgct schema version with more defs to work with sgctedit schema * Fixes to get sgct edit schema working with dialog for error messages * Improvements in exception handling * Improved handling of multiple sgct & json exception types * Minor improvements in exception messages * Extra spaces in error message output * Fixing importing of json config data from launcher to sgctedit * Fixed window size & position update * Changes for preserving settings in edit vs new mode * Changes to import settings from config file * More changes for importing testing of config file based on file tests * Fixed window placement dims in monitor, and some code refactoring * Move json validation before initial read * Add CMake copy of sgct schema file to OpenSpace post-build * Bump sgct submodule reference * Modify calls for json schema validation and bump to latest sgct * Bump to new sgct repo with unit testing and updated schema * Added first test for window config editor schema * Finished tests for sgcteditor validation * Code cleanup pass * Fix of sgctedit test for remove description * CMake and include config changes to fix build after merge * Bump sgct submodule version * Improve paths in sgctedit test * Bump sgct reference for test path fix * Check for imported monitor number being in valid range * Make sgct config 'monitor' key/value optional * Have 'save' or 'save as' buttons depending on edit or new modes * Code review feedback changes * Fix to include the last file in the user config dir list * Addressing some PR request * Change to pass-by-reference in editRefusalDialog * Separating errors into summary and detailed messages in error dialog * Disable edit button with hover text if config read shows invalid format --------- Co-authored-by: Alexander Bock <alexander.bock@liu.se>
OpenSpace is an open source, non-commercial, and freely available interactive data visualization software designed to visualize the entire known universe and portray our ongoing efforts to investigate the cosmos. Bringing the latest techniques from data visualization research to the general public, OpenSpace supports interactive presentation of dynamic data from observations, simulations, and space mission planning and operations. The software works on multiple operating systems (Windows, Linux, MacOS) with an extensible architecture capable of powering both personal computers and also high resolution tiled displays and planetarium domes. In addition, OpenSpace enables simultaneous connections across the globe creating opportunity for shared experiences among audiences worldwide. The target audience of the software reaches from the general public who wishes to explore our universe, enthusiasts interested in hacking the underlying components in OpenSpace to create unique experiences, informal science institutions wishing to create a low-cost, yet powerful exhibition piece, but also scientists desiring to visualize their datasets in a contextualized, powerful software.
Background
OpenSpace started as a collaboration between Sweden's Linköping University (LiU) and the American Museum of Natural History (AMNH). Development of the software began several years ago through a close collaboration with NASA Goddard's Community Coordinated Modeling Center (CCMC) to model space weather forecasting and continued with visualizations of NASA's New Horizons mission to Pluto and ESA's Rosetta mission to 67P/Churyumov-Gerasimenko. This promising set of preliminary work provided a foundation for continued funding from NASA, the Swedish eScience Research Centre, and the Knut and Alice Wallenberg foundation, which has extended the collaboration to include the University of Utah's Scientific Computing and Imaging (SCI) Institute, New York University's Tandon School of Engineering, multiple informal science institutions across the world, and multiple, international vendors.
Features
Some of the high-level features supported in OpenSpace are:
- AMNH's Digital Universe catalog of extrasolar datasets (stars, galaxies, quasars, ...)
- High-resolution planetary images for major objects in the solar system (Earth, Moon, Mars, Venus, ...)
- Animated 3D models representing space missions (ISS, New Horizons, JWST, ...)
- Support for custom profiles with arbitrary user-defined content
- Ability to drive any type of display environment (flat screen, multi-projector, planetariums, ...)
- Lua and JavaScript interface into the engine allowing highly customized controls
- Native support to export an interactive sessions as individual frames for video export
- much much more (see our Changelog)
OpenSpace requires at least support for OpenGL version 3.3, some custom components require at least version 4.2.
Getting Started
This repository contains the source code and example profiles for OpenSpace, but does not contain any data. To build and install the application, please check out the GitHub Wiki. Here, you will find two pages, a build instruction for all operating systems and then additional instructions for Windows, Linux (Ubuntu), and MacOS. Please note that the Apple Silicon series of chips do not support OpenGL natively and Metal 2 does not support double precision accuracy (see here Section 2.1), therefore only the Intel processors for MacOS are supported and maintained.
Requirements for compiling are:
- CMake version 3.25 or above
- C++ compiler supporting C++20 (MSVC 19.31, GCC11, Clang14, AppleClang 13.1.6)
- Boost
- Qt
Feel free to create issues for missing features, bug reports, or compile problems or contact us via email. Regarding any issues, you are very welcome on our Slack support channel to which you can freely sign-up.
License
The contents of this repository is under an MIT license.



