Commit Graph

209 Commits

Author SHA1 Message Date
Roxeena 6204b2e6b9 Fix example sonifications' ambient sound level 2025-06-13 11:56:55 +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
Anders Lundkvist 327a0693c4 Add distance-based scaling to RenderablePlane (#3598)
This commit adds optional distance-based scaling to RenderablePlane, enabling it to scale dynamically based on its distance from the camera.
2025-05-18 13:30:09 -04:00
Alexander Bock f16288f53f Relocated dashboard examples. Add missing documentation entries 2025-05-18 15:44:45 +02:00
Adam Rohdin 0a82796f0f ScreenSpaceInsetBlackout (#3657) 2025-05-16 23:34:19 +02:00
Alexander Bock 5c15bf74b7 Harmonizing OrientationRenderOption and Billboard settings. Make RenderablePlanes use the new setting (#3630) 2025-05-15 22:02:00 +02:00
Anders Lundkvist a05380779e Add time varying screen space image online class (#3646)
New screen space renderable class, ScreenSpaceTimeVaryingImageOnline, for displaying online time-dependent images from a JSON file.

This class loads a JSON file containing timestamped image URLs and displays the image that corresponds to the current simulation time. It only renders during the valid time interval defined by the dataset and updates automatically as time progresses.
2025-05-13 08:00:54 -04:00
Alexander Bock 22735c5aaf Add support for non-numerical values to the DashboardItemTimevaryingText (closes #3653) 2025-05-12 21:19:24 +02:00
Anders Lundkvist 517e44db5a Add time varying dashboard item text class (#3621)
New dashboard item class, DashboardItemTimeVaryingText, designed to display numeric values from a JSON time series, dynamically updating based on time. Also added examples for this.

Useful for displaying dynamic values like KP index or solar wind parameters in sync with time.
---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2025-05-05 15:31:02 -04:00
Anders Lundkvist ad786f7d5c Add RenderableSwitch class (#3597) 2025-04-23 16:44:24 +02:00
Alexander Bock b02680a360 Add new TimeFrame that parses Spice kernels (#3600) 2025-04-22 20:47:17 +02:00
Alexander Bock 80955e3ec1 Add ScreenSpaceRenderableRenderable class (#3575) 2025-04-01 12:45:35 +02:00
Alexander Bock 5008aa7cd7 Adding documentation and examples (#3541)
- Make the SourceType and DestinationType parameters required in the DashboardItemAngle
  - Shift the "UTC" string in the DashboardDate from the FormatString to the TimeFormat
  - Make the SourceType and DestinationType parameters for the DashboardItemDistance required
  - Add new "Deltatime" option to the DashboardItemFramerate.  Add examples for the DashboardItemFramerate
  - Fix issue where the inputstate would not update if no option was selected
  - Automatically disable simplification if a unit is requested in the asset for a DashboardItemSimulationIncrement or DashboardItemVelocity
2025-03-14 11:25:26 +01:00
Alexander Bock 7328a94fb1 TimeFrame specification and status (#3553)
* Makes Translation/Scale/Rotation all able to have a TimeFrame, not just the SpiceRotation.  Add read-only BoolProperty to the TimeFrame that indicates whether the current time is a in the timeframe

---------

Co-authored-by: Emma Broman <emma.broman@liu.se>
2025-03-10 13:53:32 +01:00
Alexander Bock b6d380d84c Add new class TimelineScale (#3536) 2025-03-06 13:06:19 +01:00
David Wagner cb66065445 Add a "time offset" option to the SpiceRotation and SpiceTranslation (#3544)
Lets SpiceTranslation and SpiceRotation compute the transformation with a given time offset compared to the simulation time (or fixed date if one is configured)
2025-03-03 10:17:20 +01:00
Alexander Bock 3c811a488f Add a new DashboardItem to show the camera orientation (#3542) 2025-02-28 16:50:33 +01:00
Alexander Bock 588c4a6f86 Fixing assets that had problems loading (#3528)
- Correctly remove interpolating render program to prevent invalid shader access
 - Fix Apollo 11 location
 - Fix Apollo 17 location
 - Replace errors with warnings for Gala and Rime instruments for Juice
 - Correctly rely on the solarsystembarycenter asset in the Voyager/Pioneer asset
 - Use correct identifier for the Jupiter barycenter
 - NASA Treks assets
 - Slidedeck
 - Fix unloading of missions
 - No longer crash when loading and unloading image sequence assets
2025-02-17 14:08:53 +01:00
Emma Broman 7f4bf73993 Cleanup and add some more examples (#3506)
* Remove duplicated node line example

* Update `ScreenSpaceBrowser` example to new format

* Add screenspace image examples

* Add docs and examples for `RenderableGrid`

* Add docs and examples for `RenderableRadialGrid` + create 10 grid segments per default

* Add docs and examples for `RenderableSphericalGrid`

* Remove the old, combined, grid example

* Apply suggestions from code review

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

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2025-02-11 09:37:57 +01:00
Alexander Bock fc0e3959ac Add new types for Scale, Translation, and Rotation that combines multiple instances together 2025-02-05 21:56:41 +01:00
Emma Broman 3d3580fa65 Polish and docs for RenderableDistanceLabel and docs for RenderableNodeLine (#3485)
* Update add add documentation for `RenderableDistanceLabel`

* Move distancelabel to `base` module and remove now empty `vislab` module

* Add examples for `RenderableNodeLine` and `RenderableDistanceLabel`

* Fix faultily formatted documentation ID for `RenderableNodeLine`

* Make `RenderableDistanceLabel` unit use units from distanceconversion file

And simplify how the different names for a unit are specified

* Use new distanceUnitList() function for other classes that uses the units

* Change default unit to correct option according to documentation

* Make the text property readonly for `RenderableDistanceLabel`

* Add property to specify the precision of the number

distance label precision to docs

* Add examples with different units and descriptors

* Add docs description to `RenderableNodeLine`

* Update name in one of the examples

* Remove redundant switch cases

* Apply suggestions from code review

Co-authored-by: Ylva Selling <ylva.selling@gmail.com>

---------

Co-authored-by: Ylva Selling <ylva.selling@gmail.com>
2025-01-29 16:11:47 +01:00
Emma Broman c4cf883ec9 Docs and examples for RenderableDisc (#3482)
* Add description and update GUI property values

* Add examples with a single color

* Remove old example file

* Rename ellipse example and remove width

* Apply suggestions from code review

Co-authored-by: Ylva Selling <ylva.selling@gmail.com>

* Address review comments

* Also update renerable description

---------

Co-authored-by: Ylva Selling <ylva.selling@gmail.com>
2025-01-17 14:16:01 +01:00
Emma Broman 0dbc331ebf Docs and examples for RenderableBoxGrid (#3479)
* Add boxgrid examples

* Add description about the box grid renderable for the docs page

* change phrasing in example assets slightly

* Apply suggestions from code review

Co-authored-by: Ylva Selling <ylva.selling@gmail.com>

* Remove labels support for `RenderableBoxGrid`

---------

Co-authored-by: Ylva Selling <ylva.selling@gmail.com>
2025-01-17 13:50:40 +01:00
Emma Broman e643e8d653 Make debug plane a ScreenSpaceRenderable and add documentation (#3483)
* Add screenspace version of debug plane, and an example

* Remove the old renderable

* Apply suggestions from code review

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

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2025-01-17 13:47:37 +01:00
Emma Broman 16aa150f10 Polish RenderableCartesianAxes - documentation, examples, and make fading work correctly (#3478)
* Make `RenderableCartesianAxes` fade and fix opacity setting

* Update existing documentation of cartesian axes

* Add example with custom colros and parent node

* Apply suggestions from code review

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

* Include earth asset instead of using string identifer

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2025-01-17 13:18:45 +01:00
Alexander Bock 820e90eab4 Happy new year 2025-01-14 16:21:08 +01:00
Emma Broman d281b6c33b Fix error in deinitilialize of distance-to-earth example asset 2025-01-09 11:44:33 +01:00
ElonOlsson aad10ec154 Added support for coordinate systems: old GSM as Static, real GSM, SM, GSE and time dependent GSM and SM (#3392)
* added old GSM as Static, real GSM, SM, GSE and time dependent GSM and SM

* small formating

* i dont rember changing this, so taking it back

* added support for time dependent GSM and SM to work to year 2099

* added newer kernel

* added HEEQ and HEE

* better naming and descriptions

* rename lowercase

* naming rewrite

* fix after name change

* added earth centric tf files. sun centric left to do and .bpc files and .bsp files

* including kernels with asset.resource now. Left is weather to move or change examples/debugcoordinateaxes

* minor naming cleanup

* cleanup. remove comment

* getting rid of debugcoordinateaxes example asset
2024-12-10 18:05:40 -05:00
Andreas Engberg 0fc9265837 Feature/assetvalidation (#3396)
# To run the script
Make sure to install the latest Python API version `openspace-api 0.1.2`
The script is located in `OpenSpace/support/assetvalidation`, the main script takes a few command line arguments

`--dir` - specify the OpenSpace directory 
`--filter` - optionally supply a regex string to filter which assets to validate
`--verbose` - flag to print debug info to log and also console (default off), if off only warnings and errors are logged
`--start` - flag to start OpenSpace as a subprocess (default on) if this is off it assumes OpenSpace is already running, useful if you want to run OpenSpace via Visual Studio for example. 
`--at` - specify an index to start at a specific asset

run eg: 
`python main.py --dir="C:/User/Desktop/OpenSpace" --filter="examples" --verbose=True --start=False --at=35`
2024-10-10 15:55:53 +02:00
Alexander Bock 125114cad5 Add documentation for TileProviderByLevel (#3446)
---------

Co-authored-by: Ylva Selling <ylva.selling@gmail.com>
2024-10-10 09:48:39 +02:00
Emma Broman acc6e41f3d Screenspace dashboard distance to earth example (#3428)
* Add screenspace dashboard example for showing distance to earth in lightyears

* Address review comments
2024-09-25 09:45:05 +02:00
Alexander Bock 5fdc2c4bb8 Add examples for SpiceTranslation (#3413) 2024-09-23 11:35:01 +02:00
Alexander Bock d0b3cd6e89 Add example for ConstantRotation (#3384) 2024-08-21 10:34:08 +02:00
Alexander Bock a138be3f92 Add example for StaticTranslation (#3385) 2024-08-21 10:33:59 +02:00
Alexander Bock 9decd9aad2 Add examples for SpiceTranslation (#3376) 2024-08-16 13:45:40 +02:00
Alexander Bock 7ec6b6cfb5 Add examples for GlobeRotation (#3377)
* Add examples for GlobeRotation and make the longitude and latitude defintion non-optional
* Remove old GlobeRotation example
2024-08-16 13:45:24 +02:00
Alexander Bock 0b91fd2642 Global cleanup pass over asset files
- Lua style guides
- FrameConversions
- unloadMission, Add mission identifiers
2024-08-14 10:22:20 +02:00
Alexander Bock 99a976a53c Add an example to show the current in-game time in a screenspace object (closes #3312) 2024-07-18 12:02:09 +02:00
Malin E 01483ef982 Add support for model vertex colors (#3346)
* Add model vertex color support

* Fix an issue with the Tiangong model not loading properly and set a correct bounding sphere size for it

* Update caching for models

* Update previous model examples to the new format

* And add a new example to test the new vertex colors support

* Apply suggestions from code review

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

* Add a model example with lighting

* Improve the basic example and add a separate example for vertex colors

* Add visual test for vertex colors (#3348)

* Update the readme file for the visual tests

* Add asset instruction to the visual testing readme

* Add visual test for RenderableModel with vertex colors

* Apply suggestions from code review

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

* Update test when asset changed name

---------

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

* Update Ghoul

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2024-07-17 15:56:06 +02:00
Alexander Bock b8e9193bc7 Add Lua function to calculate the number of seconds between dates and use it in assets (#3332) 2024-07-11 10:34:06 +02:00
Emma Broman fcba068aca Add a point cloud example that changes the point orientation (#3327)
* Add a point cloud example that changes the point orientation

Note that it is really difficult to see what is going on without a texture, so added a texture to this exmaple as well.

* Apply suggestions from code review

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

* Update example identifier to be unique

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2024-06-26 10:44:09 +02:00
Emma Broman c53a747ed5 Fix a faulty example GIU path 2024-06-20 16:11:43 +02:00
Alexander Bock 807699a890 Remove the large data files from the URLSynchronization example to make the file loadable 2024-06-20 11:49:46 +02:00
Alexander Bock 2cc5a53aaa Remove version numbers from asset files 2024-06-19 11:26:07 +02:00
Emma Broman 62b2a8c8c1 Fix renderable sphere example and add one for using local image (#3306)
* Fix renderable sphere example and add one for using local image
2024-06-13 10:43:54 +02:00
Emma Broman 8a42657deb Feature/examples naming (#3305)
* Update name and path format of examples that follow the new structure
* Fix a broken (updated) property name in an example
* Make other examples' GUI paths more consistent
* Put them all in the Examples folder
2024-06-13 10:42:00 +02:00
Alexander Bock f82dc0371b Add example to TimelineRotation. Also fix bug where a non-interpolating timelinerotation would disappear before the first keyframe (#3310)
* Add example to TimelineRotation. Also fix bug where a non-interpolating timelinerotation would disappear before the first keyframe

---------

Co-authored-by: Emma Broman <emma.broman@liu.se>
2024-06-11 22:16:16 +02:00
Alexander Bock 6a1a22b485 Improve documentation and add examples for the StaticRotation (#3309)
* Improve documentation and add examples for the StaticRotation

---------

Co-authored-by: Emma Broman <emma.broman@liu.se>
2024-06-11 22:06:33 +02:00
Alexander Bock 62a01ea317 Add example and fixes for the LuaTranslation (#3284) 2024-06-03 09:57:26 +02:00
Alexander Bock 2ab09b50e5 Add example for the LuaRotation class and fix it at the same time (#3285)
* Add example for LuaRotation class and make it work again
2024-06-03 09:57:15 +02:00