Giter Club home page Giter Club logo

openspace / openspace Goto Github PK

View Code? Open in Web Editor NEW
721.0 59.0 114.0 420.81 MB

This is the official GitHub repository for OpenSpace: an open source astrovisualization project. For instructions on how to build and run OpenSpace, see the Getting Started Guides on the wiki page at http://docs.openspaceproject.com

Home Page: http://openspaceproject.com

License: Other

C++ 75.15% CMake 1.56% Lua 19.25% GLSL 3.75% CSS 0.01% Python 0.14% JavaScript 0.06% Objective-C++ 0.06% Handlebars 0.01% Batchfile 0.01%
visualization astronomy data-visualization planetarium space science universe

openspace's Introduction

OpenSpace Logo 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.

License Download Size

System Paper GlobeBrowsing Paper

Contributors Commits

Image

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.

Image

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.

Image

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/C++23 (MSVC 19.39, GCC13, Clang17, AppleClang 15.0.0)
  • 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.

Image

License

The contents of this repository provided under an MIT license.

Support

OpenSpace is supported by the following institutions:

Image

openspace's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openspace's Issues

Mirror projection

Projection method for Paul Bourke-ish projection methods using a reflective mirror

RenderableModel is dependent on Spice

Issue by alexanderbock
Thursday May 05, 2016 at 21:31 GMT
Originally opened as https://github.com/OpenSpace/OpenSpace-Development/issues/42


The RenderableModel should not be dependent on the Spice library as it might be instantiated with a StaticEphemeris. It should ask for the ephemeris for positioning instead

double time = openspace::Time::ref().currentTime();
    bool targetPositionCoverage = openspace::SpiceManager::ref().hasSpkCoverage(_target, time);
    if (!targetPositionCoverage){
        int frame = _frameCount % 180;

        float fadingFactor = static_cast<float>(sin((frame * M_PI) / 180));
        _alpha = 0.5f + fadingFactor * 0.5f;
    }
    else
        _alpha = 1.0f;

    glm::dvec3 p =
    SpiceManager::ref().targetPosition(_target, "SUN", "GALACTIC", {}, time, lt);
    psc tmppos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);

Handling of Multiple Textures

Issue by alexanderbock
Thursday May 05, 2016 at 21:24 GMT
Originally opened as https://github.com/OpenSpace/OpenSpace-Development/issues/28


Is this still relevant?

Moving the ghoul::opengl::Texture member variable out of the RenderablePlanet? and into the specific subclass of PlanetGeometry?

  • Add a method to deal with onChange methods for texture changes (virtual method call) that handles the new path
  • Add a virtual method that is called in the RenderablePlanet::render method that gets the program object and sets the uniform variables necessary to deal with the textures
  • Maybe include a callback for generating the programobject to inject the correct number of uniforms

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.