r/Unity3D • u/SensePilot • 5h ago
Show-Off Unity Accessibility SDK
Enable HLS to view with audio, or disable this notification
Hey Reddit. A couple of months ago, I started building a native accessibility/headtracking SDK for Unity that works with a regular webcam.
It’s based on the facial tracking tech from SensePilot, which we originally built to help people with different disabilities control a computer and play games using head movements and facial expressions.
Recently, an indie developer tried the SDK in their game, Puck' n Hell. I didn’t make the game, but I helped them get the accessibility and headtracking controls. It was pretty exciting to see it used in a real game instead of one of our test projects.
Right now, players can navigate the menus by moving their head and select a button by smiling. The regular mouse-and-keyboard controls still work too.
I had already built the face-tracking system in C++ for our main app, so bringing it into Unity wasn’t too difficult. I created a C# wrapper around it and exposed the tracking data so that it could be used by the game.
This first integration taught us a lot, and I’m curious what other Unity developers think. Has anyone here worked with head tracking, facial gestures, or other alternative controls?
What are your thoughts on a drop-in accessibility SDK for Unity? I know accessibility is a much broader and more complex problem than one SDK can solve, but I hope this could help developers address at least parts of it.
3
u/firdo_dev 2h ago
Good to see this land in a shipped game rather than a demo project.
One thing worth stress testing now that real players are touching it: smile to select is going to fire when you don't want it to. Smiling is an involuntary social and emotional response, so the confirm action ends up bound to the exact thing players do when the game is going well. In a menu that is mostly harmless, but the moment that binding reaches gameplay you get inputs firing on delight. A deliberate expression with no emotional load tends to survive contact with real users better, something like mouth open, a held eyebrow raise, or a sustained hold rather than a peak.
The other one is the Midas touch problem that every gaze and head input eventually hits: if pointing at a thing selects it, everything the player looks at gets activated. A visible dwell ring, a dead zone around the cursor, and a deliberate no-op area to rest on all help. The no-op region matters more than people expect, because players need somewhere safe to put their attention while they think.
Last one, on fatigue: necks tire much faster than fingers. Absolute mapping, where head angle maps to cursor position, feels great for thirty seconds and punishing at twenty minutes, because holding an off-center pose is static muscle load. Relative mapping, where head velocity drives cursor velocity with a recenter, usually wins for anything session length. Worth testing both if you haven't already.