Index Controllers Grip Issues

This appears to be a "feature" rather than a bug, but I've never benefited from it and I can't imagine anybody else benefiting. I have the Valve Index and the controllers for it make a difference between all fingers curled around the controller properly, and actually squeezing the controller. Unfortunately OpenBrush does not use the squeezing feature, and instead uses the contact feature, so it's extremely easy to accidentally trigger the grip behavior. One way in which this is a huge problem is when I am painting, and naturally my hand shifts in various ways over time with different strokes, and inevitably I'll hold the controller such that it triggers the gripping feature, and suddenly my brush is interrupted. Over and over and over. If it only triggered with squeezing pressure then it would be fine because that's an unreasonable amount of force for using a brush, but as it is, it's a hair trigger and cuts me off way, way too much. It's the only problematic aspect of the app but it's so significant because it can happen at any time and very easily. Needing to hold my controller so lightly like it's a dry leaf in danger of crumbling is ridiculous and even then often fails based just on how it sits in my hand. If I have too much contact, that's it, brushing interrupted. Please tell me that this is something that can be fixed. My experience with a really amazing, extraordinary app is being ruined thoroughly.
46 Replies
mikesky
mikeskyβ€’16mo ago
Hi, I'm really sorry you're hitting this issue. Interestingly, we are actually using the squeeze rather than the contact input! It's unfortunately a bug with Unity's input system that means their per-input deadzones aren't respected, which means your grip is activating far lower than it should be doing (0.1 vs 0.5~). We finally had the bug accepted by Unity's QA team (we submitted it back in august last year...) so we're hoping it can be fixed really soon.
lolrus
lolrusβ€’16mo ago
This is good to hear as I also noticed the same issue. It is manageable but it just feels a tad too sensitive.
Krax27
Krax27β€’16mo ago
Could you compensate for Unity's issue by for now making brushing override gripping instead of vice-versa? I can't ever imagine a circumstance where I'm brushing and would want to grip while I'm still pressing the trigger yet I don't want to be brushing anymore...
andybak
andybakβ€’16mo ago
That does sound like a good idea. When painting why would anything override that except releasing the trigger? I'll try and have a look today or tomorrow to see how easy it is to untangle this part of the code.
Krax27
Krax27β€’16mo ago
Thank you, my thoughts exactly! If it's possible, it could only benefit users. πŸ™‚
AncientWorlds
AncientWorldsβ€’16mo ago
Only reason I can think of is if it affects combination things, like some of Moat's work, or scaling or similar. Can't think of any specific instances off the top of my head right now, but there might be some?
Krax27
Krax27β€’15mo ago
I feel like mods should account for a base behavior that doesn't do this kind of thing by default, rather than expecting it to do such weird things I'm new so I'm unsure what kind of pace development happens or how things are prioritized and really everything, so I'm just curious about this.
mikesky
mikeskyβ€’15mo ago
We're all volunteers, so features and fixes happens as and when people have time to work on it I'm afraid! We're always looking for more contributors of course πŸ™‚
andybak
andybakβ€’15mo ago
Yeah - sorry. I meant to look at this and got sidetracked. I'll bump it up my list.
Krax27
Krax27β€’15mo ago
Indeed, I meant specifically that I don't know what the pace is. I wouldn't mind waiting however long but just wondered about the process so I could decide whether to wait or to use the app anyway. This is nice to hear though!
andybak
andybakβ€’15mo ago
This is interesting. It looks like the code intends to prevent you grabbing whilst drawing:
//if the pointer manager is processing, we don't want to respond to input
if (!PointerManager.m_Instance.IsMainPointerProcessingLine())
{
//see if we're grabbing a widget
UpdateGrab();
//if the pointer manager is processing, we don't want to respond to input
if (!PointerManager.m_Instance.IsMainPointerProcessingLine())
{
//see if we're grabbing a widget
UpdateGrab();
UpdateGrab handles more than just widgets - it's the only method that calls "UpdateGrab_World". I think we should be checking MainPointerIsPainting rather than IsMainPointerProcessingLine:
public bool IsMainPointerProcessingLine()
{
return m_CurrentLineCreationState == LineCreationState.ProcessingStraightEdge;
}

public static bool MainPointerIsPainting()
{
if (
m_Instance.IsMainPointerProcessingLine()
|| m_Instance.IsMainPointerCreatingStroke()
|| m_Instance.IsLineEnabled()
)
return true;

return false;
}
public bool IsMainPointerProcessingLine()
{
return m_CurrentLineCreationState == LineCreationState.ProcessingStraightEdge;
}

public static bool MainPointerIsPainting()
{
if (
m_Instance.IsMainPointerProcessingLine()
|| m_Instance.IsMainPointerCreatingStroke()
|| m_Instance.IsLineEnabled()
)
return true;

return false;
}
@ancientworlds and @zandyxr - can you think of any situation where grabbing should be allowed whilst painting?
Zandy
Zandyβ€’15mo ago
To alternate between functions Like if you use the trigger it does one thing but if you use trigger and grip another is activated It’s used a lot on gravity sketch Not so much with grabbing alone
andybak
andybakβ€’15mo ago
I mean in Open Brush. I'm proposing we change the current behavious so grabbing is disabled during any painting action. At the moment it seems to be allowed unless you're using the Straight Edge Tool. It's just with the Index controllers - it's really easy to grab by accident.
Zandy
Zandyβ€’15mo ago
Yeah really no need for it while painting
Krax27
Krax27β€’15mo ago
Index here, not sure if the architecture is the same I can imagine using one hand to hold a selection and rotate it around while the other hand paints on its local position on the fly (new strokes added to the selection). However, aside from being cool, I don't think it's actually super useful, especially since selection obscures paint for highlighting purposes. So aside from that (not so useful) case, it would be highly unusual, I would imagine.
andybak
andybakβ€’15mo ago
Ha! I never thought to actually try it. It's fine with Quest controllers (running on PC - guess it's the same with standalone) i.e. grip doesn't interrupt painting. so it's weird that it's different on the index... @mikesky ☝️
mikesky
mikeskyβ€’15mo ago
wait what? now i'm even more confused...
andybak
andybakβ€’15mo ago
me too. it seems specific to index controllers. do you have any handy? my vive isn't set up
mikesky
mikeskyβ€’15mo ago
rather dead ones, but due to other commitments it's gonna be tomorrow night but realistically the weekend before I can try it πŸ˜…
Krax27
Krax27β€’15mo ago
Is it reasonable/okay to ask about this again?
andybak
andybakβ€’15mo ago
Hiya. Sorry - I keep forgetting to dig out my Vive to test this. I got as far as checking if "grip interrupts drawing" is a general thing and to my surprise it wasn't. (tested on the Quest). Seems strange that grip interacts differently with drawing only with the Index Controllers? That's what I want to check.
Krax27
Krax27β€’14mo ago
Oh, so it's not just that it's easier to set off than with the others. That's very weird Has anything changed for this? Hope it's cool for me to inquire πŸ™‚
andybak
andybakβ€’14mo ago
Yeah sorry - I've been having too much fun working on the new plugin stuff and testing on the Vive/Index controllers involved tidying up the spare room. I've now (finally) done the latter so I'll try and give this a test in the next couple of days
Krax27
Krax27β€’14mo ago
Cool! Yeah, it is unfortunate that the Index doesn't have a standalone mode, sure does make setting up annoying. Maybe the Index 2 in, like, 2024/25? I presume they'll make one someday...
andybak
andybakβ€’14mo ago
Kyle Melnick
VRScout
Report: Valve Is Working On A New VR Headset
A follow-up to the Valve Index may be in the works according to a recent interview with Product Designer Greg Coomer.
Krax27
Krax27β€’13mo ago
Good to know sales were enough to merit a second one. I know that Valve thought of the Index as a dev platform and priced it accordingly (aka high), so they might not ever think of making one that can stand alone (being without a cord would really stifle its power and maximum potential), but VR is also about freedom so if they're finally interested in exploring that avenue then hopefully the next one will be amazing. My mind sort of deviated there, it's also the more niche audience that risked lesser sales on its own. Good to see it was enough of a success. I think Valve can do really good stuff for the industry compared to broader monsters like Meta and Apple who want to control all that you do everywhere you go Just checking in πŸ™‚
andybak
andybakβ€’13mo ago
Hey - I finally got my Vive working again. Using Index controllers and it seems to work fine for me. I can't recreate the problem
Krax27
Krax27β€’13mo ago
I'll try to check today in case some seemingly unrelated fix had a domino effect and it's just not there anymore Then I can reinstall in case it's somehow on my end From there I'd have no clue what to do though So hopefully it's one of those
andybak
andybakβ€’13mo ago
I can think of one thing to try - I didn't try the actual build version. It should be the same but maybe that's it.
Krax27
Krax27β€’13mo ago
Bit unfortunate that the high entry price for Index means there's not many people talking about it or developing solutions for it. For example, I've tried looking up keyboard mods for the floating keyboard and people don't seem to make any, which just feels baffling to me. People love modding that kind of stuff usually.
andybak
andybakβ€’13mo ago
Yeah. I can't test on an actual index - just a Vive with Index controllers
Krax27
Krax27β€’13mo ago
It's hard to imagine the HMD itself could be an issue since (nearly?) all the software is hosted on the computer rather than the physical devices (which I imagine are all firmware and hardware) but if there was something about how the HMD and controls communicate with each other that caused the problem, it wouldn't be easy to test.
andybak
andybakβ€’13mo ago
So - just tried with the Steam regular release version and again - it's fine. I can grip all I want and it doesn't stop the brush stroke. Changed anything in the controller configuration? Steam has so many complex settings for controller mapping
Krax27
Krax27β€’13mo ago
Not before/when I used Open Brush last If the issue is still there when I try in a few hours I could at least demonstrate how it looks, although it's nothing special, just exactly what it sounds, so I'm not sure anything would come of that. But again, hopefully it's just magically gone. Given the lack of issues on your end @andybak It does work fine... but not for every tool, it seems In fact, here is what I observe: - Brush: If painting, neither grip squeeze interrupts or activates in any manner. If not currently painting, painting completely overrides left squeeze, while right squeeze cannot be overridden by painting (trigger), thereby blocking it. - All other tools: If using, left grip does not override the tool usage, but will still activate (visually, at least), so they both work at the same time -- but for this same situation, right grip overrides active tool. Meanwhile, if the tool is not yet active, left grip will allow the tool to activate, while right grip will override tool. The same situation as if the tool was used beforehand, for both. So interestingly for one situation the squeeze behaviour is dependent of order, while for the other it's independent (yet still not mirrored left to right). This is the rather inconsistent outcome that I have observed. It is definitely fair to say that painting is the most important tool so it's nice to see that unlike what I noticed before, it does not get overridden mid-task, but all those other behaviours are still troublesome. Oh yeah, also I confirmed what you said before that grip isn't initiated purely by finger contact but just a really light squeeze, and yeah I see that, it's a touch more than just contact. It is unfortunate what you said about how this can't really be changed because of Unity, but I think fixes with regard to these above behaviors would make that an irrelevant quirk, which would be just as good! I'm glad that it seems I didn't make you get all your setup out for nothing, ha ha.
AncientWorlds
AncientWorldsβ€’13mo ago
Interesting. I wonder how controller swapping affects this? (Left handed usage?)
Krax27
Krax27β€’13mo ago
I would have guessed it would flip things, but I didn't try. I could see later tonight.
AncientWorlds
AncientWorldsβ€’13mo ago
Ya, hard saying, might help diagnose it though
Krax27
Krax27β€’12mo ago
@andybak I can confirm the same issues in reverse when I switch the hand settings. Just checking in about this πŸ™‚ Should I submit a new ticket called "Gripping Behavior Inconsistent Between Hands Can Override (Supercede) Non-Brush Tools and Can Block Brushing"?
andybak
andybakβ€’12mo ago
Hiya - I can edit this post title. @mikesky - do you have a working Index controller setup yet so you can try to reproduce this?
mikesky
mikeskyβ€’12mo ago
I can put things on to charge, just having covid made me not want to put on a headset anytime soon πŸ˜…
andybak
andybakβ€’12mo ago
Fair enough!
mikesky
mikeskyβ€’12mo ago
I thought I did test this and struggle to reproduce it though?
andybak
andybakβ€’12mo ago
This one has been hanging around for a while and we've now got a fairly clear description of the issue (pinned). And poor @krax27 has been very patient πŸ™‚ but - on the other hand - nobody else has reported it. I tried to repro the original report but that was before we had the clear explanation
mikesky
mikeskyβ€’12mo ago
Gotcha
Krax27
Krax27β€’11mo ago
I cannot confirm whether the original issue I experienced disappeared through a coincidental domino from some unrelated patch or if I simply was lazy in my original experimentation because whatever did happen annoyed me into not thinking too hard. But I can say that I repeatedly tried things now and it is highly consistent with my newer description (...on my system, anyway). Just a little check-in πŸ™‚ Hi Sorry if it feels like I'm impatient! (And for having a weird issue nobody else is reporting)
andybak
andybakβ€’11mo ago
Oh god. I'm sorry too. Just not had time to look into this. The fact I have to set up the lighthouses even to test it doesn't help.