Commit Graph

403 Commits

Author SHA1 Message Date
Alexander Bock
3168ef1f5a Improve stack output and enable stack walking for OpenGL error messages 2025-09-02 13:40:12 +02:00
Alexander Bock
6b0de702fa Adjust indentation for openspace.cfg file to the rest of the Lua files 2025-08-07 15:03:52 +02:00
Alexander Bock
e4f32c0218 Better document the SGCTConfig and Profile options in the openspace.cfg 2025-08-04 19:43:04 +02:00
Alexander Bock
2048a1b5df ShowComposer (#3707)
- Updated webgui config and paths for ShowComposer
  - Update backendhash, download showcomposer.  Fix issue with sorting dictionary keys
  - Update the hashes for the backend and showcomposer

---------

Co-authored-by: dmelancon <mr.dmelancon@gmail.com>
2025-06-09 21:14:21 +02:00
Malin E
ac3e30c24e Sonification/Telemetry (#3461)
* Add sonification module

* WIP: Extract planet positions in own thread

* WIP Extract camera position and angle

* Extract distance to camera and fix angle

* WIP: Extract focus node

* Optimize and clean up

* Fix signed angle for surround sound

* WIP add solar system view sonification

* Extract time
Extract the speed of time in OpenSpace and send it to supercollider.
Needed to scale the sonification time in sync with OpenSpace

* Extract moon angles
Extract the angle from the planet to the major moons. Used in
sonification to position the moons in surround.

* Add easy change of angles
Easier to switch what angle is calculated and sent to the sonification.
Preperation for test in Dome

* Fix shutdown error and nullptr error
Add deinitialize for sonification module. Make sure pointers are
initialized to nullptrs at start. Check in sonification main in the
start if the scene is initialized

* Add properties to contol sonification
* Add property to turn on/off sonification for each planet

* Change so the data only send for those planets that are enabled with the property

* WIP: Improve GUI for sonification control
* Add GUI for every sonification parameter per planet

* However, only for Earth and Mars so far

* Make data send more often and not just when the planet is enabled

* Add sonification GUI for Mercury and Venus
* GUI for each parameter for Marcury and Venus

* Send a shutdown message to SuperCollider during deinitialization

* Group properties together
* Gather the planets properties under a planets property owner

* Prepare to expand GUI

* Name changes

* Add Solar view in GUI
* Add GUI that controls the solar sonification

* Remove the all enabled slot in the settings arrays

* No longer sends the all enabled slot in teh settings arrays

* WIP Compare view

* Add compare view in GUI. Allows to compare two planets sonification.

* Finish compare view

* Add connection to sonification for compare view

* Improve responsiveness of GUI

* Expand GUI with the outer planets

* Add GUI for the outer planets

* Increase array sizes to compe with all the planets

* Add functionality for the outer planets GUI

* Add temperature option in GUI

* Fix so that compare cannot compare to itself

* Scale selected planets in compare view

* Fix reset of compare view

* Add Rings sonification to GUI

* Fix solar sonification GUI

* Bind onChange function for the outer planets in the solar GUI

* Add comment about where in the settings array the setting for rings
are

* Add master buttuns in GUI

* Add button to turn on/off all the planets

* Add button to turn on/off everything, solar when sun is in focus and
planetary otherwise.

* Add function to easier turn on/off all the parameters of solar and
planetary

* Only master start sonification module

* Add check that only the master start the sonification thread

* Clean up a few lines in the angle calculation

* Optimize the sending of time

* Time is not sent with every message but only when it changes instead

* Add GUI for choosing what parts to compare

* More GUI in compare view to control which sonification to compare

* Fix deinitialize turn off sounds

* Make sure the auto (enable all) now also work with the new compare GUI

* Fix socket problem and code clean up

* Only use one socket to send information to supercollider

* General code clean up

* Remove sending of focus node since supercollider does not use it

* Adjust to new master

* Fix oscpack linker issues

* Update to new master

* Add start of SonificationEngine

* Move osc code into SonificationEngine

* Add function for the planetary settings

* Add function to access SonificationEngine via the module

* Add base sonification class

* Start seperating into different sonification classes

* Add PlanetarySonification to the internal list

* Move osc to its own module

* Seperate planet sonifications into seperate sonification classes

* Make time sonification its own class

* Some clean up

* Update to new cmake version

* Add proper module dependency for the sonification module

* Fix thread issue

* Temporary fix with a sleep, works for now

* Fix log messages issue

* Add enabled property for the sonification module

* Some clean up

* More clean up

* More clean up

* Make it possible to send in node position directly for helper function

* Add stop function for sonifications

* Make possible to specify sonification destination ip and port in cfg file

* Use Parameters struct for the sonification module dictionary

* Make sonification module a singleton

* Minor code style fix

* Use module engine module function for singleton pattern instead

* Add angle calculations for the surround modes

* Use codegen map function for surround mode enum

* Improve data storage and sending for planet sonificaitons

* Add focus sonification

* Fix elevation angle calculation for circular surround mode

* Add Lua function to add entries for the PlanetsSonification

* Add sonification profile

* Add lua library file for planets sonification

* Fix gui osc messages sending

* Update to latest master

* Rename planets sonificaitons to reflect they only work for planets

* Add generic nodes sonification

* Clean up Time sonification

* plus a little in the nodes sonification

* Add current time information to the time sonification

* Add precision propertysubowner to structure Gui and make it flexible

* Some general clean up

* Rename solar sonification to planets overview sonification

* Add Camera sonification

* Fix some bugs with the camera sonificaiton

* Make sure the sonificaiton thread is synced with the main thread

* Fix camera and scene bug in sonificaiton

* Dont hold up the main thread while sonificaiton thread does its work

* Use the current frame time for speed calculaiton instead of average

* Fix osc::Blob memory bug

* Wait max 30 seconds in the sonification thread for the main thread

* Make sure deinitialize of sonificaiton thread does not halt

* Add the mode sonification as a proper sonification

* Add nodes sonification example with ISS and Tiangong

* Some renaming and restructuring

* Add more detailed documentation for the sonification math

* The util functions for different angles in the sonificaiton/telemetry module

* Major clean up and restructuring

* Rename module to telemetry to make it more clear that we do not
  produce the sonifications, we just spit out data used by a
  sonificaiton software

* Add the new moon of Neptune to sonification and add sonification files

* And add the test osc supercollider file

* Add the OpenSpace header to the supercollider example file

* Apply suggestions from code review

Co-authored-by: Alexander Bock <alexander.bock@liu.se>

* Adjust suggestions to fix errors

* Address more PR comments

* Address more PR comments

* More PR comments

* More PR comments

* More PR comments

* Even more PR comments

* Update to latest master

* More PR comments

* Add OSC as a submodule

* NOTE that due to path issues this commit will not build with the osc
  module, you will need to change the paths inside two osc files for it
  to build. Will fix very soon

* Fix issue with oscpack not setting correct include directory

* Address PR comments

* Address PR comments

* Update the SuperCollider files

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
Co-authored-by: Ivar Gorenko <ivago071@student.liu.se>
2025-05-19 15:02:48 +02:00
Alexander Bock
9b3dd36dc5 Move the OpenSpaceFolder by default into the user folder (#3567)
Breaking change
2025-03-24 09:08:06 +01:00
Alexander Bock
86dd037870 Window Configuration Generation (#3550)
* Use built-in toJSON converter instead of manually creating the string. Also removes the ability to create fisheye configuration files from the Lua script directly
2025-03-24 08:49:37 +01:00
Alexander Bock
d21d1e4dcf Add the ability to disable accelerated rendering for CEF. Disable it for AMD cards as it causes a crash (#2488) 2025-02-17 18:25:14 +01:00
Alexander Bock
ff345006d1 General code cleanup (#3445) 2024-10-10 09:49:02 +02:00
Alexander Bock
fd64fe7c96 Improvements to the ScriptLog logging (#3389)
* Restructuring the queueScript function
* Don't log the contents of actions that are triggered.  Add the ability to do verbose logging in the scriptlog
2024-09-09 21:16:57 +02:00
Alexander Bock
f2a9477eb5 Lua Securty Sandboxing (#3378)
* Add Lua sandboxing
* Convert existing files to use custom functions instead of now-prohibited library functions
2024-08-16 13:46:39 +02:00
Alexander Bock
f4bdb294f8 Request global customization script from the User folder instead (closes #3198) 2024-04-19 13:48:05 +02:00
Alexander Bock
50dadb37a8 Rename filesystem token from USER_PANELS to USER_WEBPANELS 2024-04-16 20:40:17 +02:00
Micah Acinapura
cfb400e7b8 added user panel token and folder needed for webgui pr (#3141) 2024-04-16 08:15:03 +02:00
Alexander Bock
97d1dc163b Add the ability for the log file to rotate (closes #2995) 2024-01-08 11:30:46 +01:00
Andreas Engberg
6281da6798 Fixed loading screen log messages taking up real estate if set to false 2023-12-20 10:02:54 +01:00
Malin E
690878bc87 Layers maintenance (#2917)
* Separate layers for the Moon and Earth

* One asset each for each server, New York, Utah, and Sweden

* Add the layers asset files for Earth and Moon

* Add new layers structure for Mars and Europa

* Add layers assets for Mercury and Enceladus

* Add more layer assets for all servers

* Add layer assets for each server on the top asset level

* Rename Venus Utah cloud combo layer asset (breaking change)

* Clean up layer asset descriptions

* Update layer asset version name

* Fix base layers error

* Add configuration option to choose layers server

* Add Lua functions to access configuration settings

* Extend configuration Lua function

* Add layer server setting in setting gui + add 'None' as a server option

* Add base layers when server 'None' is used

* Add tests for the new Layer Server setting
2023-12-06 16:17:23 +01:00
Andreas Engberg
9343c6315d Adds warning and error messages on loading screen (#2941)
Fixes task 1 of (#494)

* Removed loading screen progress bar

It was removed because it does not show an accurate estimation of load times and is rarely used (off by default)

* Add status info to the loading screen on warnings and errors 

Add: Warning logs and above to loading screen, fixes task 1 of (#494)
Removed code duplication in openspanceengine.cpp
Fixed some bugs where completed assets would not disappear from the screen

* Update the design & address PR comments

* Address PR comments & add bool to show/hide log msg

* Delete test_configuration.cpp

* Update Ghoul submodule

* Renders number of warnings and errors to screen

* Update renderengine.cpp

* Adapt new function to the coding style

---------

Co-authored-by: Alexander Bock <mail@alexanderbock.eu>
2023-11-14 15:40:30 +01:00
Alexander Bock
098cced1e7 Undo accidental removal of UI code 2023-11-13 10:17:22 +01:00
Alexander Bock
b62e604b2e Adds a persistent file used to store user settings (#2931)
* Enable the loading of settings
* Add a user interface for changing the settings in the launcher


Co-authored-by: Emma Broman <emma.broman@liu.se>
2023-11-13 08:52:51 +01:00
Alexander Bock
38308a4cde Store the mrf cache in a mrf_cache subfolder inside the OPENSPACE_GLOBEBROWSING instead if it is provided 2023-09-27 23:48:37 +02:00
Alexander Bock
357f58ccfe Use OPENSPACE_GLOBEBROWSING instead of OPENSPACE_MRFCACHE 2023-09-25 16:54:10 +02:00
Alexander Bock
30003ae20f Add new environment variable flag to control the MRF cache location 2023-09-21 20:51:33 +02:00
Adam Rohdin
8a68825d48 updated example to use pos instead of windowPos 2023-08-07 16:24:33 +02:00
Alexander Bock
006aefdff0 Remove explicit specification of read-only profiles and read-only configuration files and use a filesystem lookup instead 2023-05-11 16:03:13 +02:00
Adam Rohdin
c0a726a55b Fixed Property URI in asset and added Juice as Read-Only profile 2023-04-26 11:16:22 +02:00
Alexander Bock
548dd31513 Add commented line to support local hosting of the BigBang server 2023-04-23 12:13:14 +02:00
Alexander Bock
27ba567af8 Add the ability to set the default property visibility in the openspace.cfg file, which can be overridden with the OPENSPACE_LEVEL environment variable 2023-04-15 18:22:21 +02:00
Emma Broman
c714a7f57d Feature/geojson (#2595)
Add the option to add geojson components to globes, from geojson files. One geojson file creates one GeoJsonComponent, which in turn may contain multiple GlobeGeometryFeatures

Geojson is a format that supports points, lines, and polygons. In addition to the basic functionality, extra features have been added that will long-term allow rendering the geometry needed to represent KML files (another format for geospatial geometry data). Here are links to references for both formats:

    Geojson: https://geojson.org/
    KML: https://developers.google.com/kml/documentation/kmlreference

data/assets/examples/geojson includes some example files that I have used for testing. Any geojson file can also be added through drag-n-drop. Note however that you might need to change the AltitudeMode or HeightOffset properties for the feature to be visible.
2023-04-15 11:35:28 +02:00
Gene Payne
cec6e05ff1 Allow Window Config GUI to Edit Files (#2574)
* 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>
2023-04-14 18:28:31 -06:00
Malin E
72c66da7b7 Artemis mission (#2597)
* First version of co revolving reference frame for Artemis trail
* Add Orion model
* Add Artemis profile
* Add Moon trail and other small tweaks
* Use NOAA20 cloud layer instead of VIIRS
* Add some useful actions
* Add event to toggle trails on Approach/Receding
2023-04-13 21:18:31 +02:00
Joakim Kilby
b219638e29 Add ability to cache globe data using MRFs (#2565)
Enables globe-browsing data to be cached using caching mrf's as it is loaded from the original dataset. Subsequent reads of tiles that have been cached do not query the original dataset but picks it up from the mrf data.
Supports anything that can be used a dataset for a gdal raster but raw images such as JPGs are explicitly disallowed as they lack necessary geotransform data.

Activated on a global scale by setting the following keys in openspace.cfg (ModuleConfigurations/GlobeBrowsing)
MRFCacheEnabled = true,
MRFCacheLocation = "<somepath>",
Settings can be overriden on a per-layer basis by adding the following entries to the layer entity of an asset
CacheSettings = { Enabled = true, Compression = "LERC", BlockSize = 512, Quality=25 },

The following per-layer settings are available and override the global module settings:
Enabled : enable/disable caching for this layer.
Compression: The compression algorithm to use for tile cache storage. (JPEG, PNG, or LERC)
BlockSize: Size of tiles in cache, should be a multiple of 2 although this is not required.
Quality: The quality setting of the JPEG compression (when used)

Note that heightlayers must use LERC compresison and this is the default unless overridden by a layer.
2023-04-11 08:46:25 +02:00
Alexander Bock
0e2d5e245d Add the ability to configure the Console key through the openspace.cfg (closes #2573) 2023-04-03 10:53:09 +02:00
Alexander Bock
34de727dd7 Rename bastille-day profile to bastilleday2000 (#2089) 2022-05-06 14:25:00 -04:00
ElonOlsson
9f463ed09f a new profile for the 2012 solar storm event, with looping hotkeys (#2071)
* a new profile for the 2012 solar storm event, with looping hotkeys

* added interaction spheres, profile cleanup + better discription

* better actions and moved to assets instead of in profile

* Set unique names for the different fieldline data synchronizations

* single dataset in sequence now rendered before its associated timestamp

* fix read access violation + added redundancy

* load at start up instead of on runtime

Co-authored-by: Alexander Bock <mail@alexanderbock.eu>
2022-05-06 10:23:45 -04:00
Ylva Selling
71d73fbd59 Make update time 50 ms for skybrowser topic 2022-04-27 11:41:53 -04:00
Ylva Selling
8a292c1645 Expose time interval to user in config file for sky browser topic. This will give the user control over how often data is passed. Hopefully a future proof fix for GPU crash 2022-04-26 14:39:00 -04:00
Emma Broman
92eefa8189 Add enabled property to Exoplanets and Skybrowser module (#1945)
* Add enabled property to exoplanets and sky browser module

* Create assets for default settings and restructure assets into a components folder

* Update exoplanets data

* Set sky browser enabled to true per default and include hover circle asset

* Add name and description of hover circle, and used synced version of ring image
2022-04-25 15:10:08 +02:00
Micah Acinapura
48b89a08a6 Issue/1824 (#1983)
* update globebrowsing customiztion to use env_var and added earth; closes #1824

* updated globebrowsing.asset
2022-04-08 12:49:17 -04:00
Alexander Bock
6a708b1f18 Implement new Spout input methods to Tileproviders and new Renderables (#1901)
* Implement new Spout input methods to Tileproviders and new Renderables

Co-authored-by: Marco Silva <marco@elumenati.com>
2022-03-03 23:47:09 +01:00
Alexander Bock
76dd45e5ce Event System (#1741)
* Add implementation of the EventEngine to handle global event chains
* Add properties to SceneGraphNodes to determine two distance radii for camera-based events
2021-10-11 21:53:00 +02:00
Alexander Bock
dfca605d63 Add the optional ability to print a stacktrace with an OpenGL error (closes #1700) 2021-07-30 15:37:03 +02:00
Alexander Bock
c4bddacfeb Remove nonfunctioning ABufferRenderer from RenderEngine 2021-07-30 12:01:07 +02:00
Alexander Bock
724ad5b553 Reduce fontsize of shutdown warning and center it instead with a dimming of the rendering (#1675)
* Reduce fontsize of shutdown warning and center it instead with a dimming of the rendering
2021-07-03 19:00:12 +02:00
Alexander Bock
b1f10b1b70 Add the ability to specify RenderEngine font sizes in the configuration file (closes #1653) 2021-06-17 15:39:16 +02:00
Malin Ejdbo
03a55c930d Make JWST profile read-only 2021-06-16 11:47:36 +02:00
Alexander Bock
abd084c0a9 Only use the adaptive level-of-detail when actually rendering out frames in a session recording (closes #1292); Remove OpenGL performance warning messages when writing frames due to expected GPU-CPU sync 2021-05-08 19:53:40 +02:00
Alexander Bock
4c80577d4b Rename PerSceneCache to PerProfileCache and make it work again (closes #1577)
Breaking change in openspace.cfg file:   PerSceneCache -> PerProfileCache
2021-05-05 16:14:00 +02:00
Alexander Bock
6aad31000f Don't produce OpenGL performance warning on Intel chips 2021-03-27 22:16:08 +01:00
Micah Acinapura
eec6b15781 Feature/user profiles assets (#1496)
* added user profile/asset tokens to config, launcher and profile editor


* creating one user directory for data, config, screenshots, recordings
2021-03-02 01:36:32 -05:00