Show HN: A tool for motion-capturing 3D characters using a VR headset (diegomacario.github.io)
Hi everyone! I'm one of the authors of this project. The demo you see here is powered by a tool that I recently helped develop and open-source at Shopify called handy. You can find the repo here: https://github.com/Shopify/handy
Most people don't realize that VR headsets have become really capable motion capture platforms, so we decided to release this tool to bring motion capture into the hands of everyone who owns a headset.
With a cheap Quest 2 you can capture your hands using the headset's hand-tracking feature and your head. With an expensive Quest Pro you could capture your facial expressions using the headset's eye and face-tracking features.
Thanks for checking this project out! I'm here to answer questions if you have any.
31 comments
[ 3.2 ms ] story [ 86.8 ms ] threadAlthough in my opinion the arms still look a bit janky. You can see a demo of a sample they included with the SDK here: https://youtu.be/IQt4wTdGK64?t=419
Animating hands by hand (no pun intended) is horrendously difficult, so our 3D artist asked if we could help.
We built this within Shopify's Spatial Commerce team, which is a team that explores the intersection between AR/VR and commerce. Here are some of our other projects:
https://twitter.com/StrangeNative/status/1544666221181734912... https://twitter.com/StrangeNative/status/1562450155080597505...
I started to build something like this early last year, but got too busy with another pet project and having a baby. Here's some demos and notes if you're interested. https://twitter.com/convey_it/status/1433163282597171200
Our library is not the best at that, since it simply records everything to Alembic files, which are quite heavy.
Best of luck with Explayn. I really like the idea of learning from mocapped lessons.
So for a full body you should be able to compress to 200 bytes per frame for 50 joints. That would mean 300k for 1 minute of animation at 30fps. Interpolate to get 60fps. That doesn't include faces.
If you do faces like Apple does, which IIUC is just N morph targets where N is like 15? Those are 1 weight each and you could easily make those 1 byte per weight or less so that's 27k for 1 minute of animation
Both of those could probably easily be compressed by storing deltas like draco or fit to curves for lots more compression.
Any more on this?
As for hands - is it able to track hands and fingers only or also an object within a hand? I can see this being useful to 'puppeteer' a 3D object by hand used as a proxy of it... Or a simple object within a hand.
Outside of maybe a cliff-climbing game I struggled with finding a reason for buying a headset at all. This seems like a plausible use for animation.
Our tool could record those facial expressions into an Alembic file.
And as for holding objects, our tool could capture those too. Meta's Interaction SDK is excellent. Here's another sample they provide: https://youtu.be/WS4vtcwm8Zw?t=1
And I have to say that the cliff-climbing game is really fun.
I haven't much of a clue on motion capture. But, the capture I want to do requires feet, hands, face, shoulders, arms, knees, fingers, AND the ability to do it in any position. Curl up in ball. Roll over on the floor. I want to capture more than just a head and hands upright but AFAIK there's no solution under $20k.
See user name. if I want to make pr0n, I need to be able to capture those positions. Is there anything that can do it on the cheap?
Have you tried getting a bunch of Kinects and doing some kind of sensor fusion? I don't know what the current state of the software is but you can buy the hardware for <$100 each used.
Not open source but pretty cheap and does 80% of what you want, especially if you combined it with this.
I assume the hand capture (+ head position) doesn't give you enough to apply inverse kinematics reliably (i.e. better than VRchat), is that correct? It's a naive assumption on my part given that wrists aren't captured, but perhaps there are really smart ways to solve this. It feels like it could be a "next step" to have upper-body motion capture.