jankVR
My project to create a Python-based customizable pipeline for frankensteining together cheap VR setups from random components (game controllers, webcam-based trackers, etc).
Born from many, many previous attempts at doing the same thing and getting frustrated that the software side just isn't quite there yet. (I did a short presentation about these attempts: slides, in Polish.)
Currently still in the “design phase”. An implementation was attempted, but was extremely incomplete.
Original infodump#
anyways i mentioned this during the meet but i think my mic was borked so nobody heard: i wonder if osc fbt works in desktop mode
the idea is that we could theoretically set up some face tracking model based on webcam input, route that through osc, and get webcam tracking for free, no vrc+ required, and with linux support
half-relatedly i was entertaining the idea of making a magic box for these kinds of janky vr setups
the idea is: you have a single app that gathers inputs from various peripherals (controllers, webcam-based trackers, etc.) and sends them to outputs (slimevr, vrchat osc, steamvr custom driver?)
the whole thing is based on a plugin architecture so you don't have to set up a completely separate app for each peripheral (like you do with the various non-slimevr-tracker-as-slimevr-tracker solutions, iirc)
...and by "entertaning the idea" i mean i started writing it
my initial idea was to have a system of peripherals where each peripheral maps to a joint on a skeleton, and the joint data is then parsed by the output plugins
this works fine for things like single controllers, but it gets more complicated once you get one "peripheral" or source that exposes data for multiple joints (for example, a webcam-based tracker will expose data for hand and head position, and both are returned from one process that does the tracking)
i think the best solution would be to have a node-based system
where a single node can have as many inputs and outputs as necessary
then we can have one node for the webcam tracker, one node for each individual controller, and one node for the output (say, passthrough to slimevr or vrc)
bonus points since it would let you combine single pieces of data from peripherals, or map them to aggregators (say, a filter that averages imu data from multiple sensors)
but could probaby be dumbed down ui-side for easy setup