Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unexpected Binary Parameters converting #241

Open
Tr1turbo opened this issue Nov 18, 2024 · 0 comments · May be fixed by #242
Open

Unexpected Binary Parameters converting #241

Tr1turbo opened this issue Nov 18, 2024 · 0 comments · May be fixed by #242

Comments

@Tr1turbo
Copy link

I was expecting the conversion to use rounding, but instead, it round down.
I encountered this issue across modules for Quest VD, Pico, and VIVE Facial Tracker.
VRCFT version: I tested in 5.1.1.0 and 5.2.3.0

For 1-bit quantized parameters, such as converting:

JawOpen [float] to JawOpen1 [bool]

I expected values below 0.5 to convert to false, and values 0.5 and above to convert to true, like this:

  • JawOpen = 0 → JawOpen1 = false
  • JawOpen = 0.6 → JawOpen1 = true
  • JawOpen = 1 → JawOpen1 = true

However, in reality, JawOpen1 only turns true if JawOpen is exactly 1 or higher:

  • JawOpen = 0 → JawOpen1 = false
  • JawOpen = 0.6 → JawOpen1 = false
  • JawOpen = 1 → JawOpen1 = true

The same issue applies to higher bit quantization, but it’s most noticeable with 1-bit, where it can result in up to a 99% discrepancy.

This causes extreme cases where a value of 0.99 is still considered false.

For example, on the Pico 4 Pro, the TongueOut parameter only goes up to 0.99, meaning TongueOut1 from VRCFT is always false.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant