WEBVTT 00:00.000 --> 00:12.000 All right, our next talk is full by the tracking in SlangVR by SlangVR. 00:12.000 --> 00:30.000 Hello, everyone. It's been 15 years since I was presenting anywhere, so sorry. 00:30.000 --> 00:39.000 My name is Erin. I'm from SlangVR. We do that. I will explain more a bit later. 00:39.000 --> 00:49.000 There's a lot of people. I expect not many of you know what is SlangVR because I see a lot of older faces. 00:50.000 --> 01:06.000 So what does SlangVR do? You take a bunch of small records like that. Put your on your body like I have or like my partner on the photo. 01:06.000 --> 01:13.000 And those trigger connect to a server on your computer or your phone or your headset. 01:13.000 --> 01:22.000 I never worked with Google Slash show. We have Wi-Fi or like I do right now. 01:22.000 --> 01:36.000 We cast them to point four gears on goal. And it all feeds each trigger uses inertial measurement units, inertial measurement units to track their own rotation. 01:36.000 --> 01:47.000 And the server does a magic, which then turns you into I'm a girl, which can be used for VR motion capture. 01:47.000 --> 01:56.000 And we hope for more professional motion capture in the future, but for now you can do stuff like that. 01:56.000 --> 02:02.000 And this is a bad tracking quality, but this is mostly due to interference. 02:02.000 --> 02:09.000 So this is the gist of it. How it happened? 02:09.000 --> 02:23.000 I'm a lot to swear here. So here's the slangVR is a testament to the phrase background and find out. 02:23.000 --> 02:37.000 In late 2000, I bought a headset, which cost two, which cost only 250 dollars, which is pretty cheap for a headset, especially when it came out. 02:37.000 --> 02:48.000 And it was cool, I liked it, but I need more immersion. So I was looking for stuff that can track my body to have my avatar move with my body. 02:48.000 --> 03:01.000 And turns out the only good option was to buy Wi-Fi records, which is like house tracker, which was the previous presenter explained, is a whole different system. 03:01.000 --> 03:11.000 The total cost of entry would be $700, which is like three times more than the headset. And I was like, no, I'm not going to do that. Let's see what else is there. 03:11.000 --> 03:23.000 And until there wasn't much in there, it was mostly a few rough open source projects, specifically kidnapped. 03:23.000 --> 03:39.000 But one of them was an app called overdrag, which is Android app, you can install on your phone, put your phone on your waist, and it's going to track the rotation if you're waist. 03:39.000 --> 03:52.000 And it sounds kind of useless, but actually it increases your immersion because you can estimate the position of your heap, which makes your avatar not just move like that. 03:52.000 --> 04:02.000 But you can actually bend and VR, which already gives you a lot more immersion and a lot of your friends in VR can see more of that. 04:02.000 --> 04:19.000 So I joined their server and was like, hey, why don't you need to use the phone for this? It's used as VIFI, it's used as I'm you, I have ASP board line around, I have around the mind view line around, can I just connect it together and see if it works. 04:19.000 --> 04:34.000 And I ask people like, hey, can you give me like a safety check before order more parts to try and in an hour no one responded, but I was like whatever, I'm going to order it. 04:34.000 --> 04:41.000 So yeah, and while stuff was going like one tracker works fine, it was an easy open source project. 04:41.000 --> 04:49.000 So the problem is that only support is one tracker because who would strap more phones to your body? 04:49.000 --> 04:56.000 There's some people did, which is which time you are supports, you can replace any tracker with your phone. 04:56.000 --> 04:59.000 It's not recommended, don't do that. 05:00.000 --> 05:17.000 So I was like, hey, I need to convince the creator of the old drag to support for like 5 points, so you can have track your legs because you need to track each joints since it's only rotation, not position. 05:17.000 --> 05:22.000 And like, hey, it's open source, you can do it yourself. 05:22.000 --> 05:27.000 Well, I did. 05:27.000 --> 05:29.000 Now I'm any mobile phone. 05:29.000 --> 05:40.000 And without everyone was like, hey, that's kind of cool because a full set of those was like 100 bucks. 05:40.000 --> 05:53.000 It's not very precise as why, well, it can be, it is now, but back then it was pretty junk, but people got really excited about it. 05:54.000 --> 06:03.000 And this was the first, not the first choice, but this was what I did. 06:03.000 --> 06:13.000 It's the server written on Java using swing, which is if anyone knows swing, you would understand, it's very awful UX. 06:13.000 --> 06:26.000 It has purple outlines, so it was kind of pretty, but people said, yeah, but did I mention everything is open source. 06:26.000 --> 06:34.000 It was open source from the start, the project started and open source communities from open source up. 06:34.000 --> 06:42.000 So I put everything open source and people that super excited because when you combine open source and VR, you get you attract the most. 06:42.000 --> 06:46.000 Creative engineers in the world, Furies. 06:46.000 --> 06:58.000 And Furies did that, which sadly the project was 640 pixels, so you can see how pretty it is, but it is better than that. 06:58.000 --> 07:10.000 So we got people to rewrite everything, almost everything and redo the whole UX and proper type script in React. 07:10.000 --> 07:18.000 I help people get react and I also get react and I was like, no, we don't use react, let's keep swing, it's so cool. 07:18.000 --> 07:25.000 Turns out it's easier to support react, now we look pretty. 07:25.000 --> 07:31.000 That took a few years, but that was a journey, so everything is super open source. 07:31.000 --> 07:39.000 If you're interested, this is our stack, we have a lot of layers from here. 07:39.000 --> 07:43.000 I'm not sure if you can read it. 07:43.000 --> 07:57.000 So, I would say a request, and all right, so this is funny, it tracks only when they step, because I don't have a headset. 07:57.000 --> 08:12.000 So, we have six different languages in the project, six C, C++, Rust, Java, Kotlin, five, nice. 08:12.000 --> 08:18.000 And it's very close, it's very hard to support, so we are at least removing Java. 08:18.000 --> 08:33.000 Why Java? Because I started coding from Minecraft, and that was my best language when I started this, so it was Java, but Kotlin is better. 08:33.000 --> 08:50.000 Is anyone interested for me to explain that? Okay, so we have our server that runs on the backend, on Kotlin. 08:50.000 --> 08:59.000 And the GUI is actually a separate app, which is a very modern in this world, it's web app. 08:59.000 --> 09:12.000 But it's not trying chromium, at least it runs towering, which is a fancy wrapper to whatever the operating system has, which is web view on Windows and web key to another thing. 09:12.000 --> 09:23.000 Which non-server-fotent on TypeScript and React. So, that's a software, no, no, but that's not all. 09:24.000 --> 09:37.000 You can see the trackers, we have two different, they feed data into the server through one through Wi-Fi, those through USB. 09:37.000 --> 09:44.000 But that's not all, server does the magic and some apps, you know, have to work. 09:44.000 --> 10:03.000 Some apps can talk directly with our server through a few protocols that we support, like VMC, OSC, which is open sound control, which was invented to control lights for stage performance. 10:03.000 --> 10:08.000 But now is used for everything, basically. 10:08.000 --> 10:17.000 And, but VRChat, which is the main VR social app, actually uses custom open sound control. 10:17.000 --> 10:26.000 We also support that, there is also VMC, which is also, which is what I'm using right now, which is also open sound control. 10:26.000 --> 10:40.000 But, it's also different, and then there is our own solar XAR protocol, which based on flat buffers, which actually monada uses from the previous presenter. 10:40.000 --> 10:45.000 So, we can, our server can talk to monada with that. 10:45.000 --> 10:59.000 And, of course, for VR, you may only want to use steam VR, steam VR, which is a wrapper, which is a host on Windows for all the VR applications. 10:59.000 --> 11:10.000 And, we talk to it, we have a separate driver for it, which is written on C++, and also talk through our custom protocol. 11:10.000 --> 11:20.000 And, then, it talks to games, but we also have another app that talks to steam VR again, and talks to our server. 11:20.000 --> 11:29.000 Why, too, because steam VR is weird, it needs the driver and the app level have different data, so we need both of them. 11:29.000 --> 11:31.000 Yeah, it's a lot. 11:32.000 --> 11:39.000 Some of those more maintained than others, some less, but we are trying. 11:39.000 --> 11:46.000 Now, this is possible only because we are super open source from the start. 11:46.000 --> 11:59.000 I alone wouldn't be able to handle it, because running a business like this is a lot of stuff, and I'm okay programmer, not that good. 11:59.000 --> 12:13.000 So, we got a big community of contributors, and everything we do is completely open source under super permissive licenses, like a patch 2.0 MIT, and like all our software. 12:13.000 --> 12:20.000 And, all our hardware is also open source, that's why we have a lot of clones, which is fine. 12:20.000 --> 12:38.000 It's actually helped us at the start, because people were able to make hardware before we released our own, which sounds disastrous for any commercial company, but for us it was a blessing, because they tested our system. 12:38.000 --> 12:46.000 They found that it works, they found the problems with it, they found the problem with our hardware that we almost put into production. 12:46.000 --> 12:54.000 So, we were able to fix it, and that was great thanks to all of them. 12:54.000 --> 13:08.000 We have a new generation of hardware coming, which is based actually on the community design that community originally started, because they're like, hey, this is great, but there are other microcontrollers, there are other IMUs. 13:08.000 --> 13:14.000 That more energy efficient, that more, more precise. 13:14.000 --> 13:25.000 So, they, for them, for their hardware, they added support into our ecosystem, and then we took what they did, and we also built on top of that to make our next generation. 13:25.000 --> 13:31.000 So, it's a nice symbiosis. 13:31.000 --> 13:35.000 Yeah, we have a lot of consumers. 13:35.000 --> 13:44.000 Our GitHub is, you can see, but there's 186 consumers on GitHub, which I think is pretty big. 13:44.000 --> 13:58.000 Half of them probably are translators, because the system we use uses GitHub accounts, but we have a lot of people who contribute, and we are super proud of the nerves that we built, 13:58.000 --> 14:14.000 and get passionate about open source VR, which, great that we had monada before us, because we were very stand with what they do. 14:14.000 --> 14:20.000 And as I said, we are open hardware, so we have a very big DIY community. 14:20.000 --> 14:28.000 So, if you have a microcontroller and IMU right around, you can probably make slime VR trackers. 14:28.000 --> 14:36.000 From whatever you have, like, that's how I started. You saw the ESP board to the start. 14:36.000 --> 14:41.000 Just don't build a bomb, because they have batteries inside people. 14:41.000 --> 14:49.000 No one has been hurt. I hope not that least people have been hurt, not by our trackers. 14:49.000 --> 14:54.000 But it's just a blessing, but it's so beautiful. 14:54.000 --> 15:01.000 Yeah, we have a big DIY community, and they innovate in our own space, and we innovate in their spaces. 15:01.000 --> 15:09.000 So we provide the communication, we provide, we provide, we open our design, and they build a lot of their stuff. 15:09.000 --> 15:17.000 They make it smaller, faster, more energy efficient, and use different IMUs, and we try to support all of that. 15:17.000 --> 15:23.000 So, where to find us our site is slangware.dev, or you can join our Discord slangware. 15:23.000 --> 15:26.000 This is where we hand out mainly. 15:26.000 --> 15:36.000 We just have blue sky in YouTube, or, yeah, if you have anything like business related or collaboration related, 15:36.000 --> 15:42.000 which out of our support, it will get to correct people. 15:42.000 --> 15:48.000 And I move so far from there. 15:48.000 --> 15:52.000 Let me move myself. 15:52.000 --> 15:58.000 Actually, what I can do is that. 15:58.000 --> 16:01.000 Oh, see? 16:01.000 --> 16:08.000 Now, my head is wrong direction, because I was looking wrong. 16:09.000 --> 16:11.000 Let's call it a set. 16:11.000 --> 16:19.000 The one issue with IMU tracking is that if you know I'm used, it's the drift. 16:19.000 --> 16:25.000 So, like rotation, and especially if the right-to-back position is not, 16:25.000 --> 16:29.000 it's like the precision drops a lot over time. 16:29.000 --> 16:33.000 We have a lot of ways to mitigate it. 16:33.000 --> 16:38.000 So, for normal use, we get like 40 to an hour use. 16:38.000 --> 16:41.000 Of course, it's not like house trackers. 16:41.000 --> 16:44.000 So, we have five minutes left. 16:44.000 --> 16:48.000 Which means I'm ready to the questions, but also. 16:48.000 --> 16:51.000 I know there are people from community here. 16:51.000 --> 16:56.000 We do have a burst of a feather room, which check out our Discord. 16:56.000 --> 16:58.000 I forgot to reach one exactly. 16:58.000 --> 17:00.000 It's a new building. 17:00.000 --> 17:04.000 We will be there, so if you want to hang out, come by. 17:04.000 --> 17:06.000 Yes. 17:06.000 --> 17:08.000 Have a good afternoon. 17:08.000 --> 17:10.000 Have you been speaking to that? 17:10.000 --> 17:11.000 Yeah. 17:19.000 --> 17:21.000 Thank you so much for your report. 17:21.000 --> 17:23.000 Three questions. 17:23.000 --> 17:25.000 First one, do you have a quick start guide? 17:25.000 --> 17:28.000 Second one, what is the hardware? 17:28.000 --> 17:30.000 Is it hardware in or something? 17:30.000 --> 17:32.000 And third one is... 17:32.000 --> 17:34.000 I forgot. 17:34.000 --> 17:44.000 Is it possible to have been using for a VR chat or something? 17:44.000 --> 17:45.000 All right. 17:45.000 --> 17:47.000 I'll give you that. 17:47.000 --> 17:49.000 How do you do it? 17:49.000 --> 17:50.000 How? 17:50.000 --> 17:51.000 Okay. 17:51.000 --> 17:52.000 One, one. 17:52.000 --> 17:53.000 Okay, it works. 17:53.000 --> 17:57.000 Yes, we do have a quick start guide for both day-by 17:57.000 --> 17:59.000 and official ones. 17:59.000 --> 18:02.000 Docs.slimeyard.dev is where you start. 18:02.000 --> 18:06.000 Both, if you want to make your slimes or if you want to use... 18:06.000 --> 18:08.000 Find the someone made. 18:08.000 --> 18:13.000 The hardware is for previous generation that uses Wi-Fi. 18:13.000 --> 18:15.000 We use expressive chips. 18:15.000 --> 18:17.000 We support all of them. 18:17.000 --> 18:21.000 It's built on Arduino framework. 18:22.000 --> 18:24.000 But we use platform I.O. 18:24.000 --> 18:26.000 So we don't use Arduino. 18:26.000 --> 18:28.000 We use platform I.O. 18:28.000 --> 18:30.000 But it is Arduino based. 18:30.000 --> 18:31.000 Yes. 18:32.000 --> 18:33.000 Oh, yeah, VR chat. 18:33.000 --> 18:34.000 Of course. 18:34.000 --> 18:38.000 VR chat is our main is literally what it was built for. 18:38.000 --> 18:41.000 What I'm showing right now is actually like... 18:41.000 --> 18:45.000 More experimental use case, which goes mocap mode, 18:45.000 --> 18:47.000 which makes it track without headset 18:47.000 --> 18:50.000 by counting my steps, basically. 18:51.000 --> 18:52.000 So, yeah. 18:52.000 --> 18:53.000 Thank you. 18:53.000 --> 18:55.000 All right, my questions. 18:55.000 --> 18:56.000 Go. 18:59.000 --> 19:01.000 Yeah, thanks for the talk. 19:01.000 --> 19:02.000 Very cool project. 19:02.000 --> 19:06.000 I was wondering, since you benefit so much from the contributions 19:06.000 --> 19:10.000 back from the community, why didn't you pick a copyright license 19:10.000 --> 19:14.000 that enforces companies who would take your stuff 19:14.000 --> 19:17.000 and add something to it to contribute it back as open source. 19:18.000 --> 19:19.000 That's a good question. 19:19.000 --> 19:21.000 I really hate GPL. 19:21.000 --> 19:24.000 And all copyright licenses. 19:24.000 --> 19:27.000 I don't think that free software, 19:27.000 --> 19:30.000 if you will place a burden on it. 19:30.000 --> 19:32.000 I understand why it quite exists. 19:32.000 --> 19:35.000 It's a good thing for like, subject Linux. 19:35.000 --> 19:38.000 But for us, we wanted something easy. 19:38.000 --> 19:42.000 And it's a mixed bag. 19:42.000 --> 19:45.000 Some people give back, some people don't. 19:45.000 --> 19:49.000 We're trying to build the community that based on 19:49.000 --> 19:52.000 sharing on the open source. 19:52.000 --> 19:55.000 So, most people try to do try to give back. 19:55.000 --> 19:59.000 And I think the software should be free in general, 19:59.000 --> 20:02.000 like MIT and Apache is what I personally stand for. 20:02.000 --> 20:04.000 So, that's why it's that. 20:04.000 --> 20:09.000 And a lot of our maintainers also think similar. 20:09.000 --> 20:10.000 All right. 20:10.000 --> 20:13.000 Time for maybe one more question. 20:15.000 --> 20:28.000 Cool. 20:28.000 --> 20:34.000 By the way, and the next speaker, please come over to the station. 20:34.000 --> 20:35.000 Hi. 20:35.000 --> 20:39.000 I see a lot of, like, your demo. 20:39.000 --> 20:43.000 And the presentation was about having a, 20:43.000 --> 20:47.000 I guess, like, a laptop or a server or something nearby. 20:47.000 --> 20:51.000 Has there been any use or any consideration for doing, 20:51.000 --> 20:56.000 like, a mobile or something that you could put in, 20:56.000 --> 20:58.000 like, a backpack or something. 20:58.000 --> 21:03.000 If I wanted to say, like, record myself out, like, 21:03.000 --> 21:06.000 skateboarding or snowboarding or something like that. 21:06.000 --> 21:07.000 I don't want to display. 21:07.000 --> 21:10.000 I just want to record and then play back later. 21:10.000 --> 21:11.000 Yes. 21:11.000 --> 21:14.000 So, you actually can do that already. 21:14.000 --> 21:17.000 The slender server runs on Android. 21:17.000 --> 21:20.000 We do have some plans to get to iOS, 21:20.000 --> 21:23.000 but the ecosystem is very complicated. 21:23.000 --> 21:27.000 And it can run on any, like, Raspberry Pi on, 21:27.000 --> 21:30.000 have set itself for standard sets. 21:30.000 --> 21:35.000 So, you can run slender server on pretty much anything. 21:35.000 --> 21:39.000 And if you have a, you need the Wi-Fi hotspot. 21:39.000 --> 21:43.000 If you use the Wi-Fi slimes, or you need a dongle. 21:43.000 --> 21:44.000 But it works. 21:44.000 --> 21:46.000 And the server itself supports, 21:46.000 --> 21:51.000 recording into a motion capture from at which calls BVH, 21:51.000 --> 21:55.000 which does record all your movements. 21:55.000 --> 21:58.000 It might, it's still experimental, 21:58.000 --> 22:00.000 even though it existed for three years. 22:00.000 --> 22:02.000 Because not many people use it. 22:02.000 --> 22:05.000 But if people are interested in that, 22:05.000 --> 22:08.000 and start using it, there will be more development 22:08.000 --> 22:09.000 than it. 22:09.000 --> 22:14.000 And we are really, we really want to try to push the motion capture of SlangVR 22:14.000 --> 22:16.000 forward more. 22:16.000 --> 22:18.000 So, yeah, you can do that. 22:18.000 --> 22:19.000 All right. 22:19.000 --> 22:20.000 Thanks a lot. 22:20.000 --> 22:22.000 Unfortunately, we are at a time, so you can. 22:22.000 --> 22:24.000 Thank you.