1. Install the OpenXR addon from the AssetLib (godot-openxr)
### Android based headset
1. Install the OpenXR addon from the AssetLib (godot-openxr)
2. Add an Android export (Project->Export) and choose OpenXR for the XR Mode
in XR Features
3. Install an Android compiling model (Project)
4. In the IvmiScene node, select **Open XR Hmd** in XR Mode
5. Plug-in the headset and authorize access to the headset
6. Start the application on the headset by clicking on the android logo
at the top right of the Godot window
If you are using the **Osc** Pd Mode, make sure the headset is on the same
network as your computer.
### Stereoscopic displays
### AR on Mobile devices
### WebXR
---
## Networking
### Release
---
## Creating your instrument
### IVMI-scene
### Godot IvmiScene
The root of your scene must extend from the IvmiScene class/script.
Attach a script to it and start it with :
...
...
@@ -108,7 +76,7 @@ IvmiScene provides a number of settings to help you design immersive instruments
* ...
### IVMI-node
### Godot IvmiNode
IVMI-node are the main components of any IVMI instruments. IVMI-node contains IVMI-properties. By inheriting IVMI-node.gd you are able to define a specific behavior/feedback for each IVMI-property change that occur within the node. You can for example write a code that change the size of the node's mesh when the node is selected.
...
...
@@ -125,26 +93,35 @@ func _ready():
# Add custom properties with array of values
_add_property("selected",[0])
# Properties are sent by default, optionnally deactivate sending
_properties["selected"].set_listen(false)
funcprocess(delta):
# Call default IvmiNode processing, required for updates
super._process(delta)
func_set_property(prop,vals):
# Call default properties handling
super._set_property(prop,vals)
# Handle custom properties
ifprop=="selected":
ifvals[0]:
get_node("MeshInstance").scale.x=3
matchprop:
"selected":
get_node("MeshInstance").scale.x=2.0*vals[0]+1.0
```
### IVMI-property
### IvmiProperty
IVMI-property are the messages sent to Pure Data.
The properties are composed of :
- A name : a simple string
- Values : An array of values
IvmiProperties are composed of :
- A name : A string
- Values : An array of values (floats, ints, bools, strings, ...)
Each property change is send to Pure Data along with the name from which the property originate.