diff --git a/core/IvmiScene.gd b/core/IvmiScene.gd
index 05d54518949789f27d5c9795b5728aceb1d26821..41a0b1ee159e99c729ffd6a85a6fb2dfb6119c73 100644
--- a/core/IvmiScene.gd
+++ b/core/IvmiScene.gd
@@ -23,29 +23,22 @@ var _output_buffer
 var _buffer_size = 64
 var phase = 0
 
+@export var _debug_osc: bool = false
+
 #XR variables
 @export_group("XR")
 enum XRMode {Mono, OpenXR}
 @export var _xr_mode: XRMode = XRMode.OpenXR
 @export var _open_xr_passthrough: bool=false
 
-@export_group("ScreenVR")
-enum VRMode {SplitHorizontal, SplitVertical, Anaglyph, QuadBuffer}
-@export var _screen_vr_mode: VRMode=VRMode.SplitHorizontal
-@export var _screen_vr_iod=0.06 : set = set_screen_vr_iod
-@export var _screen_vr_head_position=Vector3(0,0,3) : set = set_screen_vr_head_position
-@export var _screen_vr_screen_size=Vector2(3,2) : set = set_screen_vr_screen_size
-@export var _screen_vr_window_size=Vector2(1024,600) : set = set_screen_vr_window_size
-@export var _screen_vr_window_position=Vector2(640,480) : set = set_screen_vr_window_position
 var _xr_interface : XRInterface = null
-var _config
 
 # Network variables
 @export_group("Network")
 enum NetMode {None, Peer, Client, Server}
 @export var _network_mode: NetMode = NetMode.None
-enum NetProto {Enet, WebRTC}
-@export var _network_protocol: NetProto = NetProto.Enet
+enum NetProto {Enet}
+var _network_protocol: NetProto = NetProto.Enet
 var _client_name = ""
 var _is_connected = false
 @export var _server_ip = "127.0.0.1" : set = set_server_ip
@@ -66,8 +59,6 @@ var _recording_time = 0
 var _recording_index = 0
 
 
-@export var _debug_osc: bool = false
-
 var _is_2D : bool = true
 var _ivmi_node = load("res://addons/ivmi-builder/core/IvmiNode.gd")
 
@@ -104,30 +95,12 @@ func _ready():
 						print("Error : Could not activate OpenXR Passthrough")
 			else:
 					print("Error : Could not initialize OpenXR interface")
-#		XRMode.ScreenVr:
-#			XRServer.add_interface(Gd4ScreenVR.new())
-#			_config = XRServer.find_interface("Gd4ScreenVR")
-#			if _config and _config.initialize():
-#				#get_viewport().arvr = true
-#				#get_viewport().use_xr = true
-#				#_config = load("res://addons/gdscreenvr/ScreenVRConfig.gdns").new()
-#				_config.set_intraocular_dist(_screen_vr_iod)
-#				_config.set_stereo_mode(_screen_vr_mode+1)
-#				_config.set_head_pos(_screen_vr_head_position)
-#				_config.set_screen_size(_screen_vr_screen_size)
-#				_config.set_window_size(_screen_vr_window_size)
-#				_config.set_window_position(_screen_vr_window_position)
-#				print("IVMI : Initialised ScreenVR Interface")
-#			else:
-#				print("Error : Could not activate ScreenVR")
-#			pass
 
 	# PureData mode
 	if _pd_mode==PdMode.LIBPD :
-		var gdpd_dir = FileAccess
-		var exists = gdpd_dir.dir_exists("res://addons/gdpd")
-		if exists :
-			_gdpd = load("res://addons/gdpd/bin/gdpd.gdns").new()
+		var gdpdir = DirAccess.open("res://addons/gdpd")
+		if gdpdir :
+			_gdpd = load("res://addons/gdpd/gdpd.gdextension").new()
 			add_child(_gdpd)
 			_input_buffer = PackedVector2Array()
 			_input_buffer.resize(_buffer_size)
@@ -233,17 +206,14 @@ func _process(delta) :
 
 func _on_found_server(server_ip, port) :
 	match _network_protocol :
-			NetProto.WebRTC :
-				#_network_client.connect_to_server(server_ip, port)
-				pass
-			NetProto.Enet :
-				if !_is_connected or _server_ip!=server_ip :
-					print("IVMI : Connecting to server ", server_ip, " ", port)
-					var peer = ENetMultiplayerPeer.new()
-					_server_ip=server_ip
-					peer.create_client(server_ip, port)
-					multiplayer.multiplayer_peer = peer
-					multiplayer.connected_to_server.connect(_on_network_ready)
+		NetProto.Enet :
+			if !_is_connected or _server_ip!=server_ip :
+				print("IVMI : Connecting to server ", server_ip, " ", port)
+				var peer = ENetMultiplayerPeer.new()
+				_server_ip=server_ip
+				peer.create_client(server_ip, port)
+				multiplayer.multiplayer_peer = peer
+				multiplayer.connected_to_server.connect(_on_network_ready)
 
 
 func _on_timeout() :
@@ -253,11 +223,6 @@ func _on_timeout() :
 		_network_mode=NetMode.Server
 		_network_discov.set_server(_server_port)
 		match _network_protocol :
-			NetProto.WebRTC :
-				_network_server = IvmiServer.new()
-				_network_server._port = _server_port
-				add_child(_network_server)
-				_on_found_server("127.0.0.1", _server_port)
 			NetProto.Enet :
 				var peer = ENetMultiplayerPeer.new()
 				peer.create_server(_server_port)
@@ -406,38 +371,6 @@ func get_xr_mode():
 func is_2D() :
 	return _is_2D
 
-func set_screen_vr_iod(iod) :
-	_screen_vr_iod=iod
-	if is_inside_tree():
-		_config.set_intraocular_dist(_screen_vr_iod)
-
-func set_screen_vr_head_position(pos) :
-	_screen_vr_head_position=pos
-	if is_inside_tree():
-		_config.set_head_pos(_screen_vr_head_position)
-
-func set_screen_vr_screen_size(size) :
-	_screen_vr_screen_size=size
-	if is_inside_tree():
-		_config.set_screen_size(_screen_vr_screen_size)
-
-func set_screen_vr_window_size(size) :
-	_screen_vr_window_size=size
-	if is_inside_tree():
-		_config.set_window_size(_screen_vr_window_size)
-
-func set_screen_vr_window_position(pos) :
-	_screen_vr_window_position=pos
-	if is_inside_tree():
-		_config.set_window_position(_screen_vr_window_position)
-
-func set_screen_vr_stereo_images(imgL, imgR) :
-	if is_inside_tree():
-		if imgL!=null :
-			_config.set_stereo_images(imgL,imgR)
-		else :
-			_config.unset_stereo_images()
-
 func vector3_to_array(vec):
 	return [vec.x,vec.y,vec.z]
 
diff --git a/techniques/manipulation/Cursor.gd b/techniques/manipulation/Cursor.gd
index 64290013745ce59a957ee76e62d8bff48ed1b4ad..c2e4f16446b1753895f89572f1960ab4ba115834 100644
--- a/techniques/manipulation/Cursor.gd
+++ b/techniques/manipulation/Cursor.gd
@@ -112,20 +112,20 @@ func _on_node_entered(node):
 		_grabbed[_parent.name] = false
 
 func _on_Controller_button_pressed(button):
-	if button == JOY_GR
+	if button == "grip_click" :
 		_grabbing = true
 		for k in _selected.keys():
 			_grabbed[k] = true
-	if button == JOY_VR_TRIGGER :
+	elif button == "trigger_click" :
 		for k in _selected.keys():
 			_selected[k].set_property("triggered", [1])
 	
 func _on_Controller_button_release(button):
-	if button == JOY_VR_GRIP :
+	if button == "grip_click" :
 		_grabbing = false
 		for k in _selected.keys():
 			_grabbed[k] = false
-	if button == JOY_VR_TRIGGER :
+	elif button == "trigger_click" :
 		for k in _selected.keys():
 			_selected[k].set_property("triggered", [0])