dfgHiatus / NeosVarjoEyeTracking

Integrates the Varjo's eye tracking into Resonite
MIT License
5 stars 5 forks source link

Sometimes I get multiple asks to calibrate #6

Open sirkitree opened 1 year ago

sirkitree commented 1 year ago

I have not been able to track it down just yet, but placing this here so that I remember to attach some logs next time it happens.

Basically I noticed that while being in Neos I sometimes get multiple requests (maybe every 5 minutes) to Calibrate in the Varjo Aero headset. I assume there's an error happening and I'll try to catch it next time it happens.

sirkitree commented 1 year ago

Console output:

20230413 15:18:36.174 --- [Varjo::RuntimeInterface::load] Trying to load VarjoRuntime from "C:\Program Files (x86)\Steam\steamapps\common\NeosVR\nml_mods\VarjoRuntime32.dll"...
20230413 15:18:36.179 --- [Varjo::RuntimeInterface::load] Trying to load VarjoRuntime from "\VarjoRuntime32.dll"...
20230413 15:18:36.180 --- [Varjo::RuntimeInterface::load] Trying to load VarjoRuntime from "C:\Program Files\Varjo\varjo-compositor\\VarjoRuntime32.dll"...
20230413 15:18:36.194 --- [Varjo::RuntimeInterface::loadGeneratedSymbols] Failed to find varjo_GetTeleportFrameMetadata from VarjoRuntime
20230413 15:18:36.194 --- [Varjo::RuntimeInterface::load] VarjoRuntime32.dll loaded from C:\Program Files\Varjo\varjo-compositor\\VarjoRuntime32.dll successfully.
20230413 15:18:36.194 --- [Varjo::CreateAndInitSession] clientSessionId: sdk#1000001960040936000, version: 3.5.0.5
20230413 15:18:36.195 --- [PipeSession::Run] Pipe1: Open
20230413 15:18:36.196 --- [PipeClient::OnSessionStart] Connected.
20230413 15:18:36.196 --- [PipeSession::Run] Pipe1: Disconnected
20230413 15:18:36.197 --- [Varjo::LayerClient::LayerClient] New LayerClient, unique client session id: 'sdk#1000001960040936000', sdk version='3.5.0.5'
20230413 15:18:36.224 --- [Varjo::HighPrecisionSleep::initialize::<lambda_c22cfbd34d2be4b145ca6f76f4017c22>::operator ()] HPSleep resolution: 500000 ns
20230413 15:18:36.224 --- [PipeSession::Run] Pipe2: Open
20230413 15:18:36.224 --- [PipeClient::OnSessionStart] Connected.
20230413 15:18:36.226 --- [Varjo::LayerClient::waitHandshake] Wait for handshake
20230413 15:18:36.234 --- [Varjo::LayerClient::waitHandshake] HANDSHAKE OK
20230413 15:18:36.234 *** [Varjo::LayerClient::waitHandshake] result OK
20230413 15:18:36.246 --- [Varjo::State::PropertyClient::waitForConnection] Trying to connect to PropertyServer
20230413 15:18:36.247 --- [Varjo::State::PropertyClient::onClientRoleRequest] Identifying as client role 'RUNTIME'
20230413 15:18:36.247 --- [Varjo::State::PropertyClient::waitForConnection] Connected to PropertyServer
20230413 15:18:36.249 --- [Varjo::State::PropertyClient::processOnPropertyDefinitions] Received definitions for 278 properties
20230413 15:18:36.249 --- [Varjo::State::PropertyClient::tryInitialization] Connection to Property Server established and property definitions initialized
20230413 15:18:36.250 --- [Varjo::Session::createCompositorLink] Create compositor link for sdk#1000001960040936000
20230413 15:18:36.250 --- [Varjo::LayerClient::createIPCAndWait] createIPCAndWait...
20230413 15:18:36.256 --- [Varjo::LayerClient::createIPCAndWait] createIPCAndWait... OK.
20230413 15:18:36.268 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230413 15:18:36.269 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230413 15:18:36.269 --- [Varjo::GazeClient::connectionThread] GazeClient 'sdk#1000001960040936000' with output frequency 100Hz and smoothing ON successfully connected to suitable gaze IPC stream
Eye tracking session has started!
20230413 15:23:36.301 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.4.Pool' time record: min: 6 us, max: 45320 us, avg: 40 us, measurements: 59980, ignored: 0
20230413 15:28:36.311 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.4.Pool' time record: min: 5 us, max: 45436 us, avg: 35 us, measurements: 59764, ignored: 0
20230413 15:33:36.320 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.4.Pool' time record: min: 6 us, max: 39041 us, avg: 24 us, measurements: 59905, ignored: 0
20230413 15:34:33.335 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'VarjoSystem.FoveatedViewManager' connection thread woke up
20230413 15:34:33.335 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' connection thread woke up
20230413 15:34:33.336 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' is disconnected from gaze IPC stream
20230413 15:34:33.336 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'sdk#1000001960040936000' connection thread woke up
20230413 15:34:33.335 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'VarjoSystem.FoveatedViewManager' is disconnected from gaze IPC stream
20230413 15:34:33.336 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'sdk#1000001960040936000' is disconnected from gaze IPC stream
20230413 15:34:34.608 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230413 15:34:34.608 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230413 15:34:34.608 --- [Varjo::GazeClient::connectionThread] GazeClient 'sdk#1000001960040936000' with output frequency 100Hz and smoothing ON successfully connected to suitable gaze IPC stream
20230413 15:38:36.408 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.5.Pool' time record: min: 5 us, max: 29050 us, avg: 34 us, measurements: 29410, ignored: 0

Neos Log from around the same timestamp as the calibration message came up:

3:28:32 PM.016 ( 56 FPS)    Finished Gather for: neosdb:///3c76d3159df7745e5186a901049ae1361efa04cf60d50bc0d689bdc52dbc2c84.7zbson. Elapsed: 0.09771 s
3:30:14 PM.176 ( 50 FPS)    OnDeviceConnected: 2
3:30:14 PM.176 ( 50 FPS)    DeviceClass: TrackingReference, error: TrackedProp_Success
3:32:20 PM.603 ( 48 FPS)    Starting GatherJob for neosdb:///ea4d95db45ea9338657b975178de453a06407f4becee206d227aad9002da525d?version=2&compression=BC1_Crunched&quality=100&width=128&height=128&mips=True&filtering=Box, AttemptsLeft: 5
3:32:20 PM.933 ( 46 FPS)    GatherJob for neosdb:///ea4d95db45ea9338657b975178de453a06407f4becee206d227aad9002da525d?version=2&compression=BC1_Crunched&quality=100&width=128&height=128&mips=True&filtering=Box FAILED! Reason: NotFound
3:32:21 PM.024 ( 46 FPS)    Starting GatherJob for neosdb:///ea4d95db45ea9338657b975178de453a06407f4becee206d227aad9002da525d?version=2&compression=BC1_Crunched&quality=100&width=256&height=256&mips=False&filtering=Box&legacyHDR=False, AttemptsLeft: 5
3:32:21 PM.172 ( 46 FPS)    Finished Gather for: neosdb:///ea4d95db45ea9338657b975178de453a06407f4becee206d227aad9002da525d?version=2&compression=BC1_Crunched&quality=100&width=256&height=256&mips=False&filtering=Box&legacyHDR=False. Elapsed: 0.1474069 s
3:32:21 PM.194 ( 46 FPS)    Starting GatherJob for neosdb:///ea4d95db45ea9338657b975178de453a06407f4becee206d227aad9002da525d?version=2&compression=BC1_Crunched&quality=100&width=128&height=128&mips=True&filtering=Box&legacyHDR=False, AttemptsLeft: 5
3:32:21 PM.268 ( 48 FPS)    Finished Gather for: neosdb:///ea4d95db45ea9338657b975178de453a06407f4becee206d227aad9002da525d?version=2&compression=BC1_Crunched&quality=100&width=128&height=128&mips=True&filtering=Box&legacyHDR=False. Elapsed: 0.0737366 s
3:35:23 PM.437 ( 56 FPS)    OldVersion: -1, NewVersion: 0, Modified: False
dfgHiatus commented 1 year ago

Thanks for the heads up. What version of the Varjo base are you using? Likewise, do you have any relevant logs I could take a look at

dfgHiatus commented 1 year ago

Oops, this page didn't update until I posted this. It looks like you have Varjo base 3.5.0.5, which is pretty old. You should update this to the latest version

sirkitree commented 1 year ago

I've upgraded, and while the problem doesn't happen as often it is still happening.

Logs:

20230415 10:09:49.987 --- [Varjo::GazeClient::connectionThread] GazeClient 'sdk#1000002350486764800' with output frequency 100Hz and smoothing ON successfully connected to suitable gaze IPC stream
20230415 10:09:49.987 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230415 10:11:00.056 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'VarjoSystem.FoveatedViewManager' connection thread woke up
20230415 10:11:00.056 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'VarjoSystem.FoveatedViewManager' is disconnected from gaze IPC stream
20230415 10:11:00.057 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'sdk#1000002350486764800' connection thread woke up
20230415 10:11:00.057 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'sdk#1000002350486764800' is disconnected from gaze IPC stream
20230415 10:11:00.057 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' connection thread woke up
20230415 10:11:00.058 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' is disconnected from gaze IPC stream
20230415 10:11:01.497 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230415 10:11:01.498 --- [Varjo::GazeClient::connectionThread] GazeClient 'sdk#1000002350486764800' with output frequency 100Hz and smoothing ON successfully connected to suitable gaze IPC stream
20230415 10:11:01.498 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230415 10:12:42.770 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.2.Pool' time record: min: 6 us, max: 39984 us, avg: 41 us, measurements: 50460, ignored: 0
20230415 10:17:42.780 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.2.Pool' time record: min: 6 us, max: 37024 us, avg: 40 us, measurements: 59971, ignored: 0
20230415 10:22:42.789 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.2.Pool' time record: min: 6 us, max: 25373 us, avg: 34 us, measurements: 59979, ignored: 0
20230415 10:27:42.798 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.2.Pool' time record: min: 6 us, max: 38920 us, avg: 41 us, measurements: 59979, ignored: 0
20230415 10:28:21.907 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'VarjoSystem.FoveatedViewManager' connection thread woke up
20230415 10:28:21.908 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'sdk#1000002350486764800' connection thread woke up
20230415 10:28:21.908 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'sdk#1000002350486764800' is disconnected from gaze IPC stream
20230415 10:28:21.908 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'VarjoSystem.FoveatedViewManager' is disconnected from gaze IPC stream
20230415 10:28:21.908 --- [Varjo::GazeClient::waitConnectionThreadWakeup] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' connection thread woke up
20230415 10:28:21.911 --- [Varjo::GazeClient::cleanupOldConnection] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' is disconnected from gaze IPC stream
20230415 10:28:23.336 --- [Varjo::GazeClient::connectionThread] GazeClient 'sdk#1000002350486764800' with output frequency 100Hz and smoothing ON successfully connected to suitable gaze IPC stream
20230415 10:28:23.336 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230415 10:28:23.336 --- [Varjo::GazeClient::connectionThread] GazeClient 'VarjoSystem.FoveatedViewManager.Latency' with output frequency DeviceHz and smoothing ON successfully connected to suitable gaze IPC stream
20230415 10:32:42.807 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.3.Pool' time record: min: 5 us, max: 37257 us, avg: 45 us, measurements: 55617, ignored: 0
20230415 10:37:42.816 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.3.Pool' time record: min: 6 us, max: 41002 us, avg: 37 us, measurements: 59980, ignored: 0
20230415 10:43:38.457 --- [Varjo::IPC::BufferPool::addTimeRecord] IPC transfer 'Local\Varjo.GazeTrackingOutput.3.Pool' time record: min: 6 us, max: 25612 us, avg: 34 us, measurements: 25081, ignored: 0

Neos logs from around the same times; 10:10, 10:12, 10:28

10:09:40 AM.896 ( 80 FPS)   The Rotation (ID14AC7700 - FrooxEngine.Sync`1[BaseX.floatQ]) element on  () is currently being driven by _rotationDrive (ID14BDA000 - FrooxEngine.FieldDrive`1[BaseX.floatQ]) on FrooxEngine.LookAtUser (ID14BD9F00) and can be modified only through the drive reference.

   at void BaseX.UniLog.Error(string message, bool stackTrace)
   at void BaseX.UniLog.Warning(string message, bool stackTrace)
   at bool FrooxEngine.SyncElement.BeginModification(bool throwOnError)
   at bool FrooxEngine.SyncField<BaseX.floatQ>.InternalSetValue(in floatQ value, bool sync, bool change)
   at void FrooxEngine.SyncField<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.Sync<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.SlotGizmo.OnCommonUpdate()
   at void FrooxEngine.ComponentBase<FrooxEngine.Component>.InternalRunUpdate()
   at bool FrooxEngine.UpdateManager.RunUpdates()
   at bool FrooxEngine.World.RefreshStep()
   at bool FrooxEngine.World.Refresh()
   at void FrooxEngine.WorldManager.UpdateStep(double maxMilliseconds)
   at bool FrooxEngine.WorldManager.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngine.Engine.UpdateStep(double maxMilliseconds)
   at void FrooxEngine.Engine.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngineRunner.Update()
10:12:08 AM.605 ( 80 FPS)   The Rotation (ID15022E00 - FrooxEngine.Sync`1[BaseX.floatQ]) element on  () is currently being driven by _rotationDrive (ID15135700 - FrooxEngine.FieldDrive`1[BaseX.floatQ]) on FrooxEngine.LookAtUser (ID15135600) and can be modified only through the drive reference.

   at void BaseX.UniLog.Error(string message, bool stackTrace)
   at void BaseX.UniLog.Warning(string message, bool stackTrace)
   at bool FrooxEngine.SyncElement.BeginModification(bool throwOnError)
   at bool FrooxEngine.SyncField<BaseX.floatQ>.InternalSetValue(in floatQ value, bool sync, bool change)
   at void FrooxEngine.SyncField<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.Sync<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.SlotGizmo.OnCommonUpdate()
   at void FrooxEngine.ComponentBase<FrooxEngine.Component>.InternalRunUpdate()
   at bool FrooxEngine.UpdateManager.RunUpdates()
   at bool FrooxEngine.World.RefreshStep()
   at bool FrooxEngine.World.Refresh()
   at void FrooxEngine.WorldManager.UpdateStep(double maxMilliseconds)
   at bool FrooxEngine.WorldManager.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngine.Engine.UpdateStep(double maxMilliseconds)
   at void FrooxEngine.Engine.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngineRunner.Update()
10:13:47 AM.525 ( 80 FPS)   Target: 
Element: ID1556ED00, Type: FrooxEngine.Sync`1[System.String], World: Speech to  text, IsRemoved: False, Name: Content, Disposed: False, LastVersion: 0, LastConfirmedTime: 0, LastHostVersion: 0, LastModifyingUser: 
Element: ID1556E700, Type: FrooxEngine.UIX.Text, World: Speech to  text, IsRemoved: False, IsDestroyed: False, IsDisposed: False, Enabled: True
Element: ID1556D300, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Text, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID15566100, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Arc, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108CDA00, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: ArcLayout, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108CC600, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Radial Menu, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108C9300, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Visual, T: [0; 0; 0], R: [0; 0; 0; 1], S: [0.000390625; 0.000390625; 0.000390625], ActiveSelf: False, IsDestroyed: False
Element: ID108C5800, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Context Menu, T: [0.2227699; 1.273484; 0.9865913], R: [-0.1209606; 0.2988054; -0.03821054; -0.9458455], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108B2900, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: User <noparse=9>sirkitree (ID2C00), T: [2.03821; -0.326002; -4.526611], R: [0; -0.7071069; 0; 0.7071068], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID2100, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Root, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID0, Type: FrooxEngine.World, World: Speech to  text, IsRemoved: False

is already linked by:
Element: ID15570700, Type: FrooxEngine.FieldDrive`1[System.String], World: Speech to  text, IsRemoved: False, Name: Target, Disposed: False, LastVersion: 0, LastConfirmedTime: 0, LastHostVersion: 0, LastModifyingUser: 
Element: ID15570300, Type: FrooxEngine.LocaleStringDriver, World: Speech to  text, IsRemoved: False, IsDestroyed: False, IsDisposed: False, Enabled: True
Element: ID1556D300, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Text, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID15566100, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Arc, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108CDA00, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: ArcLayout, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108CC600, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Radial Menu, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108C9300, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Visual, T: [0; 0; 0], R: [0; 0; 0; 1], S: [0.000390625; 0.000390625; 0.000390625], ActiveSelf: False, IsDestroyed: False
Element: ID108C5800, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Context Menu, T: [0.2227699; 1.273484; 0.9865913], R: [-0.1209606; 0.2988054; -0.03821054; -0.9458455], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108B2900, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: User <noparse=9>sirkitree (ID2C00), T: [2.03821; -0.326002; -4.526611], R: [0; -0.7071069; 0; 0.7071068], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID2100, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Root, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID0, Type: FrooxEngine.World, World: Speech to  text, IsRemoved: False

Use ForceLink() if you wish to link it from: Element: ID15574500, Type: FrooxEngine.FieldDrive`1[System.String], World: Speech to  text, IsRemoved: False, Name: Label, Disposed: False, LastVersion: 0, LastConfirmedTime: 0, LastHostVersion: 0, LastModifyingUser: 
Element: ID15574000, Type: FrooxEngine.ValueOptionDescriptionDriver`1[FrooxEngine.MicrophoneTip+RecordFormat], World: Speech to  text, IsRemoved: False, IsDestroyed: False, IsDisposed: False, Enabled: True
Element: ID15566100, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Arc, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108CDA00, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: ArcLayout, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108CC600, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Radial Menu, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108C9300, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Visual, T: [0; 0; 0], R: [0; 0; 0; 1], S: [0.000390625; 0.000390625; 0.000390625], ActiveSelf: False, IsDestroyed: False
Element: ID108C5800, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Context Menu, T: [0.2227699; 1.273484; 0.9865913], R: [-0.1209606; 0.2988054; -0.03821054; -0.9458455], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID108B2900, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: User <noparse=9>sirkitree (ID2C00), T: [2.03821; -0.326002; -4.526611], R: [0; -0.7071069; 0; 0.7071068], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID2100, Type: FrooxEngine.Slot, World: Speech to  text, IsRemoved: False, Slot name: Root, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID0, Type: FrooxEngine.World, World: Speech to  text, IsRemoved: False

   at void BaseX.UniLog.Error(string message, bool stackTrace)
   at void BaseX.UniLog.Warning(string message, bool stackTrace)
   at void FrooxEngine.LinkBase<FrooxEngine.IField<string>>.set_Target(IField<string> value)
   at ValueOptionDescriptionDriver<RecordFormat> FrooxEngine.RadialMenuItemExtensions.AttachOptionDescriptionDriver<RecordFormat>(ContextMenuItem item)
   at ButtonValueSet<RecordFormat> FrooxEngine.RadialMenuItemExtensions.SetupValueSet<RecordFormat>(ContextMenuItem item, IField<RecordFormat> target, RecordFormat value, Nullable<OptionDescription<RecordFormat>> enabled, Nullable<OptionDescription<RecordFormat>> disabled)
   at ButtonValueSet<RecordFormat> FrooxEngine.RadialMenuItemExtensions.SetupValueSet<RecordFormat>(ContextMenuItem item, IField<RecordFormat> target, RecordFormat value, color enabled, color disabled)
   at void FrooxEngine.ContextMenu.AddValueSetItems<RecordFormat>(IField<RecordFormat> field, color enabledColor, color disabledColor, ValueSetOption<RecordFormat>[] options)
   at void FrooxEngine.ContextMenu.AddEnumSetItems<RecordFormat>(IField<RecordFormat> field, string label, color enabledColor, color disabledColor, List<OptionDescription<RecordFormat>> labels)
   at void FrooxEngine.MicrophoneTip.GenerateMenuItems(CommonTool tool, ContextMenu menu)
   at void FrooxEngine.CommonTool+<>c__DisplayClass333_0+<<OpenContextMenu>b__0>d.MoveNext()
   at void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<<<OpenContextMenu>b__0>d>(ref <<OpenContextMenu>b__0>d stateMachine)
   at void FrooxEngine.CommonTool.OpenContextMenu(MenuOptions options, Nullable<float> speedOverride)+() => { }
   at Task FrooxEngine.CoroutineManager.StartTask(Func<Task> task, IUpdatable updatable)
   at Task FrooxEngine.Worker.StartTask(Func<Task> task)
   at void FrooxEngine.CommonTool.OpenContextMenu(MenuOptions options, Nullable<float> speedOverride)
   at void FrooxEngine.CommonTool.TryOpenContextMenu()
   at void FrooxEngine.CommonTool.StartMenu()
   at void FrooxEngine.CommonTool.FrooxEngine.CommonTool.OnInputUpdate_Patch0(CommonTool)
   at void FrooxEngine.InputGroup.Update(float deltaTime)
   at void FrooxEngine.InputBindingManager.Update()
   at bool FrooxEngine.World.RefreshStep()
   at bool FrooxEngine.World.Refresh()
   at void FrooxEngine.WorldManager.UpdateStep(double maxMilliseconds)
   at bool FrooxEngine.WorldManager.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngine.Engine.UpdateStep(double maxMilliseconds)
   at void FrooxEngine.Engine.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngineRunner.Update()

10:28

   10:26:27 AM.338 ( 74 FPS)    The Rotation (ID19CE4100 - FrooxEngine.Sync`1[BaseX.floatQ]) element on  () is currently being driven by _rotationDrive (ID19DF6A00 - FrooxEngine.FieldDrive`1[BaseX.floatQ]) on FrooxEngine.LookAtUser (ID19DF6900) and can be modified only through the drive reference.

   at void BaseX.UniLog.Error(string message, bool stackTrace)
   at void BaseX.UniLog.Warning(string message, bool stackTrace)
   at bool FrooxEngine.SyncElement.BeginModification(bool throwOnError)
   at bool FrooxEngine.SyncField<BaseX.floatQ>.InternalSetValue(in floatQ value, bool sync, bool change)
   at void FrooxEngine.SyncField<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.Sync<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.SlotGizmo.OnCommonUpdate()
   at void FrooxEngine.ComponentBase<FrooxEngine.Component>.InternalRunUpdate()
   at bool FrooxEngine.UpdateManager.RunUpdates()
   at bool FrooxEngine.World.RefreshStep()
   at bool FrooxEngine.World.Refresh()
   at void FrooxEngine.WorldManager.UpdateStep(double maxMilliseconds)
   at bool FrooxEngine.WorldManager.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngine.Engine.UpdateStep(double maxMilliseconds)
   at void FrooxEngine.Engine.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngineRunner.Update()
10:26:27 AM.801 ( 74 FPS)   The Rotation (ID19E3B200 - FrooxEngine.Sync`1[BaseX.floatQ]) element on  () is currently being driven by _rotationDrive (ID19F4DB00 - FrooxEngine.FieldDrive`1[BaseX.floatQ]) on FrooxEngine.LookAtUser (ID19F4DA00) and can be modified only through the drive reference.

   at void BaseX.UniLog.Error(string message, bool stackTrace)
   at void BaseX.UniLog.Warning(string message, bool stackTrace)
   at bool FrooxEngine.SyncElement.BeginModification(bool throwOnError)
   at bool FrooxEngine.SyncField<BaseX.floatQ>.InternalSetValue(in floatQ value, bool sync, bool change)
   at void FrooxEngine.SyncField<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.Sync<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.SlotGizmo.OnCommonUpdate()
   at void FrooxEngine.ComponentBase<FrooxEngine.Component>.InternalRunUpdate()
   at bool FrooxEngine.UpdateManager.RunUpdates()
   at bool FrooxEngine.World.RefreshStep()
   at bool FrooxEngine.World.Refresh()
   at void FrooxEngine.WorldManager.UpdateStep(double maxMilliseconds)
   at bool FrooxEngine.WorldManager.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngine.Engine.UpdateStep(double maxMilliseconds)
   at void FrooxEngine.Engine.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngineRunner.Update()
10:31:07 AM.879 ( 72 FPS)   The Rotation (ID1A52E500 - FrooxEngine.Sync`1[BaseX.floatQ]) element on  () is currently being driven by _rotationDrive (ID1A640E00 - FrooxEngine.FieldDrive`1[BaseX.floatQ]) on FrooxEngine.LookAtUser (ID1A640D00) and can be modified only through the drive reference.

   at void BaseX.UniLog.Error(string message, bool stackTrace)
   at void BaseX.UniLog.Warning(string message, bool stackTrace)
   at bool FrooxEngine.SyncElement.BeginModification(bool throwOnError)
   at bool FrooxEngine.SyncField<BaseX.floatQ>.InternalSetValue(in floatQ value, bool sync, bool change)
   at void FrooxEngine.SyncField<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.Sync<BaseX.floatQ>.set_Value(floatQ value)
   at void FrooxEngine.SlotGizmo.OnCommonUpdate()
   at void FrooxEngine.ComponentBase<FrooxEngine.Component>.InternalRunUpdate()
   at bool FrooxEngine.UpdateManager.RunUpdates()
   at bool FrooxEngine.World.RefreshStep()
   at bool FrooxEngine.World.Refresh()
   at void FrooxEngine.WorldManager.UpdateStep(double maxMilliseconds)
   at bool FrooxEngine.WorldManager.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngine.Engine.UpdateStep(double maxMilliseconds)
   at void FrooxEngine.Engine.RunUpdateLoop(double maxMilliseconds)
   at void FrooxEngineRunner.Update()