Customization VR enviornment

My problem is to customize Virtual reality space. In specifically

  1. I did render 3D and 4D data in the same VR environment at the same time.
  2. Where I did change the background color by using python interactor ( the problem is when I c
    load the scene want to change background color every time.)
  3. Where I need to customize VR space for an instance to add some sounds, fix the volume in the desired position and some more function etc.

Can someone help me how to develop those things ( how to develop the VR environment (functions )
I went through https://github.com/KitwareMedical/SlicerVirtualReality/blob/master/DeveloperGuide.md but I couldn’t understand that how to develop further.

If you directly manipulate renderers, render windows, etc. then their state is usually not saved in the scene. Make sure you modify MRML nodes instead. For example, you can change view background as shown in this example: Documentation/Nightly/ScriptRepository - Slicer Wiki

How do you add sounds?

You apply transform to a volume to set its position in the world coordinate system. A transform is automatically created if you grab and move a node using a controller. Transforms are stored in the scene and used when you reload the scene.

Currently we only save magnification component of PhysicalToWorld matrix in the view node (vtkMRMLVirtualRealityViewNode). View position and orientation is set when you activate virtual reality display, based on the view position/orientation in the regular 3D view. View position/orientation in the regular 3D view is saved in the scene. So, if you save the scene then view position/orientation in virtual reality should be saved/restored by scene save/load.

For low-level customization, you need to build Slicer and then build SlicerVirtualReality extension. However, you should be able to do many things by just Python scripting. Let us know what exactly you would like to do and we can give advice for implementation.