1. Install the OpenXR addon from the AssetLib (godot-openxr)
### Patch creation
### 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
### Design process
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.
...
...
@@ -124,27 +92,36 @@ 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.