0.21.0
You can download pre-built binaries from here or find more information on our homepage.
Features
- The entire user interface of OpenSpace is reworked to be more user friendly and provide more flexibility when using the software (#3608)
- Better organization of the scene menu and the properties contained within it
- All windows are now resizable and dockable
- Complete control over which buttons are shown on the toolbar
- Added support for internationalization of the front-end text
- A new notification system informing of warnings and errors
- The Getting Started Tour now is displayed automatically the first time OpenSpace is started on a computer
- A new panel designed for Night Sky shows
- Support for a greater range of dates
- Redesign and future-proofing of all aspects of the user interface
- Added a new webpage "ShowComposer" accessible through the user panels or opening a new browser to (http://localhost:4680/showcomposer) with the ability to create custom interfaces for specific shows
- The documentation page (https://docs.openspaceproject.com) has been overhauled and now contains a lot more information to both present existing assets in OpenSpace, as well as example files helping the creation of new datasets
- It is possible to store the profile and configuration that were used for the last start of OpenSpace from the Launcher (#3410)
- Adding support for sending Telemetry about OpenSpace using the opensoundcontrol protocol, making data available for Sonification purposes (#3461)
- The
OpenSpaceDatafolder that can contain optional maps has now been moved from living next to the OpenSpace installation to be being place inside theuserfolder with the nameglobebrowsing(#3567) - When using the
ZandXkeys, the sensitivity change now increases gradually (#3064, #3065) - Exoplanets
- Add the ability to show a label for added Exoplanet Systems (#3318)
- Each exoplanet now has a color layer indicating their size (terrestrial, super-earth, neptune-like, or gas giant and larger) (#3412)
- Add the option to specify a default texture for added exoplanets (#3353)
- The entire exoplanet generation logic is now accessible (and modifiable via a Lua script
- Add the movement of stars according to their proper motion if velocity information is included in the star datasets (#3561)
- Add the ability to drag and drop WMS files to add them as a layer to the current anchor node
- Add the ability to drag and drop an entire folder, which will add all files contained within
- Make it possible to feather the border frame color of ScreenSpace objects
- Add support for correction meshes created by the ScalableSDK (sgct/sgct#101)
- Add support for sending OpenSpace windows via the NDI library (sgct/sgct#102)
- Improvements to the logging of elements in the ScriptLog (#3389)
- The contents of actions that are triggered are no longer stored in the script log file
- Added a new option
VerboseScriptLogto theopenspace.cfgto re-enable the old behavior and include a lot of more information in the script log
- Add the ability to configure the horizontal field of view per window (#3584)
- Cleanup and simplify the properties in
RenderableGlobe(#3408)- Restructure "general properties" into shadow mapping and regular ones
- Add values that could not be set from parameters (e.g. from asset or script)
- Add the ability to control the horizontal field-of-view for each window individually instead of providing a single slider. The old slider in the
RenderEnginehas been removed in favor of a newWindowinggroup inside theRenderEngine(#3584)- Add the ability to prevent windows from taking screenshots (sgct/sgct#87)
- Geodectic position and distance of the camera now correctly displays for non-globe objects
- The version request at the start of OpenSpace now also transfers the profile name unless the profile is user profile
- When hiding the user interface with F1, an informative text is now displayed explaining how to bring the user interface back into view
- Add support to mirror any window horizontally or vertically
- The
DebugModulenow also shows the node ID in the frame information overlay - Add the ability to offset the Debug statistics window in addition to scaling it
Launcher
- The Launcher application now respects the operating system's darkmode settings when in the profile editor and Window Configuration editor (#3369)
- Add support for subfolders to better organize both configurations and profiles
- The Profile editor now uses a normal Save dialog instead of the previous need to use the duplicate + renaming paradigm
- Add a submenu to the "New" button to either duplicate an existing profile or create a new empty profile (#3601)
- Add a new Notification section to the Launcher window in which important information will be shared (#3595)
- Improve the graphic design to indicate when a button is currently unavailable
- Change the layout of the Window Configuration editor to provide more explicit options which window should have Overlay rendering and 3D rendering
- Add a new panel to the Profile editor to control which WebUI button appears on the taskbar (#3569)
- User-generated profiles and window configurations now show a small "U" icon in the profile selection (#3611)
- Add keyboard shortcuts for adding and removing windows in the Window Configuration editor
- Add the option to select the tilt of a fisheye rendering
- Make it possible to pick window blitting when selecting a projection (#3568)
- The time picker in the Profile editor is now a tabbed window (#3562)
UI
- Add a new hint to determine if a scene graph node should focusable and only provide user interface elements to focus on scene graph nodes that are focusable (#3508)
- The first time OpenSpace is started on a computer, the Getting Started Tour will now appear automatically
- Fix a large amount of user interface accessibility issues (#3088, #3089, #3090, #3092, #3094, #3096, #3097, #3098, #3099, #3100, #3101, #3103, #3441, #3443, #3616)
- Improve the contrast ratios for many elements for better visibility
- The entire user interface is now keyboard navigable
- More consistent coloring of user interface elements
- Add support to enable future localization of the user interface
- Add the ability to specify a background color and a text color for actions buttons (#3551)
- Add a new optional parameter to overwrite an existing session recording file
- Change the visibility level setting of the "on-screen version" setting to "User"
- Improve the naming of the GeoJSON component in the RenderableGlobe (#2883)
- Add a new iput field in the window control to change the default field-of-view for fisheye images
Content
New Profiles
- Added a new "Today's Sun" profile that shows the state of the magnetic field around the Sun
- Add new calibrator asset and profile (closes #2268)
New Assets
- Add Kuiper constellation of satellites
- Add a new asset defining the supergalactic transformation matrix once and reusing it in other assets
- Add new assets for defined new coordinate systems related to Earth's magnetosphere (#3392)
New Maps
- Add Esri Wayback layers (#3382)
- Add WMS layer for Titan HiSAR map (#3565)
- Add new maps for the Globe representation of Phobos (#1397)
Updates to existing Assets/Profiles
- Remove the
default_fullprofile as it has outlived its usefulness and it now can be replicated user-side through the Profile editor - Updates to the
nightsskyprofile - Apply the new Focusable tag to many objects in the scene that are not meant to be focussed on
- Remove the
touchprofile as it did not have a coherent use-case apart from showing a now-defunct user interface - Remove
Uparrow keybind and retire theproperty_helperandrenderable_helperassets (#3604) - Change the tint of the SunGlare to be more yellow (#3459)
- Neptune and Uranus now use the correct period length
- Unify the
earth_satelliteandearth_satellitestags - Remove the Indian anti-satellite debris asset as the last of its known debris has reentered the atmosphere (#3529)
- Updated the exoplanet, exoplanet candidate, and brown dwarf datasets of the Digital Universe
- Updated the exoplanet data set with the newest data from the Exoplanet Archive
- The Digital Unierse assets have been rearranged and reordered in the user interface (#3460)
- Update SPICE kernel data for the Rosetta spacecraft (#3370)
- Utilize the
toggleFadefunction in more actions to ensure better functionality - Add a new Sweden-based WMS caching server to access Earth map layers
- Split up the JWST and Lagrange points assets into smaller assets (#3432)
- Change the color of the constellation boundaries (#3458)
- The Milky Way galaxy object is now parented to the root, making it not disappear when SPICE information for the solar system runs out (#3232)
- Add missing tags for the Moon (#3406)
Content creation
- Add new
ScreenSpaceInsetBlackoutclass that can be used to display a configurable black-out frame allowing to overlay secondary projectors onto the dome surface (#3657) - Add new
ScreenSpaceRenderableRenderableclass that allows the rendering of anyRenderableclass into a screenspace object using a custom camera location (#3575) - Add the ability to add base64-encoded images from webpages as ScreenSpaceImages
- Add the ability to specify longitude and latitude subdivisions in RenderableSphericalGrid (#3494)
- Add horizons-based NewHorizons asset
- Move Voyager and Pioneer horizons files into separate folders
- Create new interstellar horizons file that replaces previous voyager-pioneer one (#3273)
- Harmonizing
OrientationRenderOptionandBillboardsettings. Make RenderablePlanes use the new setting (#3630) - Add a new image plane class that displays online images keyed by the current simulation time (#3646)
- Exoplanets added through the user interface now have the
{exoplanet_planet}tag - The
SampleIntervalparameter option for theRenderableTrailTrajectoryis now optional and uses a default of 2 days by default - Add a new time-varying dashboard item class that can display information from a local disk keyed to the current simulation time (#3621)
- Add new Kepler data reader for the IAU's Minor Planet Center database files (#3591)
- Add new class
TimelineScaleto complementTimelineRotationandTimelineTranslation(#3536) - Invalid GeoJSON geometries will now load after attempting to fix them (#3452)
- Add a "time offset" option to the
SpiceRotationandSpiceTranslation(#3544) - Add the ability to run a task file at startup (#3612)
- Automatically reload texture for
RenderableSphereImageLocalwhen the file on disk changes (#3500) - Add new renderable
RenderableSwitchclass that switches between two renderables (#3597) - Add the ability to the
RenderablePlaneto perform distance-based scaling (#3598) - Allow OptionProperty to receive either indices or the textual representation of the value when setting them through the
openspace.setPropertyValuefunction (#3524) - Add the ability to choose the domain filtering in the asset for a fieldline sequence (#3437)
- Add new types for Scale, Translation, and Rotation that combines multiple instances together
Lua
- All Lua environments used for executing scripts and loading assets are by default now sandboxed and no longer have access to operating system functions (#3378)
- Improve performance when using the
setPropertyValuefunction (#3579) - Add the ability to combine Tags in the
openspace.setPropertyValuefunction supporting the operations of intersection (&), union (|), and negation (~) (#3638) - Add a new Lua function
openspace.navigation.setFocusthat simplifies the programmatic setting of the current focus node (#3534) - Moved a number of functions related to globe locations from the
globebrowsingandpathnavigationnames into thenavigationname (#3613)jumpToGeo,flyToGeo,flyToGeo2,localPositionFromGeo,isFlying,flyTo,flyToHeight,flyToNavigationState,zoomToFocus,zoomToDistance,zoomToDistanceRelative,jumpTo,jumptoNavigationState
- Add a new Lua function
openspace.asset.reloadto reload a dynamically loaded asset (#3543) - Add new Lua function
openspace.scheduleScriptwith the the ability to schedule scripts based on wall-clock time - When copy-pasting text into the in-game console, “ and ” are replaced with " to make them functional. When copy-pasting text with , replace them with / instead (#3683)
- Add possibility to set timestamp when using
openspace.pathnavigation.jumpToNavigationState - Add new Lua functions (
openspace.registerRepeatedScriptandopenspace.removeRepeatedScript) to repeatedly execute Lua scripts (#3416) - Add a new Lua function (
openspace.readFileLines) to read a file line-by-line - Add support to
openspace.addCustomPropertyto add TriggerPropertys (closes #3487) - Add a new Lua function (
openspace.resolveShortcut) that can resolve ShellLink files on Windows - Missions use an identifier instead of the user-facing name as a unique identifying string in all functions that operate on missions
- The
LuaTranslation,LuaRotation, andLuaScalescripts now have access to theopenspaceLua function table - Add two new functions, and , to report an estimate of the amount of memory and video memory currently being in use by OpenSpace
API
- A few number of breaking changes have been made to the JavaScript and Python APIs see the "Breaking Changes" section below for more detailed information
Bug Fixes
- With large screens, the user-interface did become sluggish and unresponsive (#3386)
- Trying to delete a globe layer through the user interface crashed the application (#3357)
- Adding an atmosphere at runtime would sometimes crash the application (#3498)
- Enabling the shadow component on a planet that doesn't have a ring system crashed the application (#3404)
- Models with baked animations would occasionally lead to a crash (#3395)
- The initial LoadingScreen froze when displayed in a small window while trying to load a profile with a large number of scene graph nodes (#3473)
- Using an invalid vector in the asset file crashed the application (#3635)
- The operating systems locale was used in a number of file reading operations, causing issues for languages where the decimal separator is not
.(#3474) - Moving a globebrowsing layer to the top of a list that only has two layers crashed the application (#3414)
- Specifying IPv4 addresses with leading 0s would cause the autodetection of the cluster ID to fail
- WMI privilege errors crashed the application (OpenSpace/Ghoul#112)
- A number of assets caused crashes and errors when loading and unloading them (#3430)
- The field lines for the Ganymede magnetic field were not shown correctly in the JUICE profile
- Many images embedded in the missions panel stopped working (#3700)
- Stars disappeared when setting the MilkyWaySphere opacity to 1 (#3304)
- The
RenderableSphericalGridwas not layered correctly with regard to other elements in the scene - Some moon assets had inconsistent naming
- Saturn's rings were experiencing shadow acne when the rings were pointing directly at the Sun (#3596)
- It was not possible to use all keys on a non-English keyboard in the user interface (#3594)
- The computation of field-of-view settings for viewports that are rotated was incorrect (SGCT/SGCT#96, SGCT/SGCT#97, SGCT/SGCT#98)
- The
Rotationof aScreenSpacewas not settable from an asset file - The
openspace.fadeOutfunction did not disable the object at end of the fading - Some of the dwarf planets were misclassified as planets in their tags
- The Horizons file editor was not using the correct ID for the "Center Body"
- TLE files with CRLF line endings did not parse correctly on Linux (#3326)
- Shader files with CRLF line endings did not parse correctly on Linux (#3472)
- Fix issues with MacOS compilation (#3695)
- Displaying multiple items with different font sizes and spacing caused layout issues in Dashboards (#3614)
Breaking Changes
Content
- The Touch profile no longer exists.
Lua
- Sandboxing the Lua environment will now make it impossible for Lua scripts to access functions from the
os,io, andpackagetables. In many cases, these functions were used to load files or get a list of files in a directory, and there have been native OpenSpace functions added to achieve this functionality. If you desperately need a non-sandboxed Lua, theopenspace.cfghas a new keySandboxedLuawhich if it is set tofalse, will disable sandboxing. Please be aware that this opens up the installation to a whole host of potential remote code execution issues - The
openspace.sessionRecording.startPlaybackfunction no longer inspects openspace.scriptScheduler.setModeApplicationTime,openspace.scriptScheduler.setModeRecordedTime, andopenspace.scriptScheduler.setModeSimulationTimeremoved- FBX format handling in Assimp has changed and causes a 90 degree rotation (assimp/assimp#849)
openspace.pathnavigation.jumpToNavigationStatetakes three arguments instead of two. The second argument is new and lets you set the timestamp in the jump.- Updated paths for lagrange point assets. For example:
assets\scene\solarsystem\planets\earth\lagrange_points\l2.asset->assets\scene\solarsystem\planets\earth\lagrange_points\l2\l2.asset openspace.exoplanet.addExoplanetSystemcan no longer take a list of star names. Instead, use the new functionopenspace.exoplanet.addExoplanetSystemsto add multiple exoplanet systems in one function call- AllowAdresses has been moved back into the individual socket definitions. To adapt to this change, move the
AllowAddressesdefinition next to theDefaultAccessdefinition inside theInterfacestable (#3445) openspace.fadeOutnow also disables the object once it has faded out
Asset creation
RenderableBoxGridno longer takes aLabelsComponent(#3479)RenderableDebugPlaneno longer exists. It has been replaced by a new screenspace type:ScreenSpaceDebugPlane. (#3483)RenderableDistanceLabelnow takes a string for itsDistanceUnit, instead of a number (#3485)- Default blending for
RenderableSpheres have changed from additive to "normal" blending. This may change the visuals of any created spheres. The classesRenderableSphereImageOnlineandRenderableSphereImageLocalnow have two new settings for controlling how they are endered:BlendingOptionandDisableDepth. https://github.com/OpenSpace/OpenSpace/commit/3c61857127eb97908a877738885d6fb10b21af97 RenderableRadialGridnow creates a grid with 10 segments in the radial and angular direction. Previously, it was a ring per default (https://github.com/OpenSpace/OpenSpace/commit/7f4bf7399397227bdd8dcec701139d0d9dac3f2a). To fix it, set theGridSegmentsattribute to{1, 1}in your asset that creates theRenderableRadialGrid.- Assets
property_helper.assetandrenderable_helper.assethave been removed in favor of functions in Lua API (#3604) - The
default_keybindings.assethas been split up into two assets, one with keybindings (default_keybindings.asset) and one with just the actions (default_actions.asset). As a result, the previousdefault_actions.assethas been renamed tosolarsystem_actions.asset. - Asset
scene/solarsystem/missions/voyagerpioneer/voyager1_2__pioneer10_11.assethas been replaced withscene/solarsystem/missions/interstellar_horizons.assetand now also includes New Horizons (https://github.com/OpenSpace/OpenSpace/commit/b111b24e8ae49a23b90cef608a42a45a9d9fa35e) - The y-value for Dashboard location is now inverted compared to how it was before, so that the y-values are specified as positive values instead of negative (#3614)
RenderablePointCloudsOrientationRenderOptionparameter/property has been renamed toBillboard(https://github.com/OpenSpace/OpenSpace/pull/3630)RenderableFieldlinesSequences PropertyInfo identifierReversedrenamed toReversedFlowto match input parameter name.RenderableFieldlinesSequences PropertyInfo identifierSpeedrenamed to to match input parameter name.
Properties
- Changed identifier of property
EnabledMinimumAllowedDistancetoEnableMinimumAllowedDistancein order to matchEnableMaximumAllowedDistance(https://github.com/OpenSpace/OpenSpace/commit/5a862c27d8b0d85c11d79300c7a60f1a077732e8) - Changed identifier for property owner in
RenderableGlobefromGeoJsontoGeographicOverlays(https://github.com/OpenSpace/OpenSpace/commit/e93ad7910f2bc93d884aab6b8a3d3535538b75e9)
Other
- This release includes a number of keybindings changes, partly motivated by the UI redesign:
- Removed keybinding to
Uparrow key (that interpolated the time to now). The action still exists in the actions panel
- Removed keybinding to
ESCto exit OpenSpace has been replaced withCtrl+QTABandShift+TABfor showing/hiding UI features have been replaced withF1andShift+F1Alt+Rto hide rendering on master node has been removed. The action still exists in the actions panel