This is a transcript of The Resonance from 2024 December 22.
00:00: Announcements, the first announcement posted, posting livestream announcement, there we
00:13: go.
00:14: Okay, so we should be alive, let me also open this up on Twitch, just to make sure everything
00:22: is working, Twitch, Twitch TV, there's another, okay we should be alive, yeah, okay, we're
00:37: alive.
00:40: It seems like everyone, oh, I heard a thing, it seems like everyone's hiding back here
00:46: for some reason.
00:47: Why are you hiding in the bushes, why is everyone like, why are you down there, come on.
00:52: Come out, come over here, there we go, hello, hello everyone, hello Kundilaj, hello Kool
00:58: on Twitch, yes, bush camera, we are coming to you from the bushes apparently today, actually
01:05: no, you are coming from the bushes, the audience is hiding, yeah the audience is hiding in
01:12: the bush, I don't know why but like, we lured everyone out, hello everyone, hello WarSiary,
01:21: and yes, Kool on Twitch was enjoying the bushes character development, yes, oh Death Hammer,
01:28: hello everyone, this is another episode of The Resonance, this is the sixth one, and
01:35: this one, I'm actually streaming from the US, I'm in like Washington right now, I'm
01:40: visiting here like you know my boyfriend, visiting some more friends, I should have
01:50: I think he's recording me as well, thank you for the gift, give us up Geb,
01:59: so yeah, we have a bunch of people, Cyra's actually, you're gonna be here tomorrow,
02:03: Cyra's kind of punking right now as well, so like he's a bit distracted, my setup is a bit
02:09: different, well thank you for subscription like so, and I will check the folks out there,
02:14: also check the folks out there, no the travels were very unsafe, like we crashed and died,
02:22: yeah I can't wait, no thank you, so no the travel was very good, I kind of slept through most of
02:30: the trip, like I usually do, so like I fell asleep like somewhere like above Europe, and then woke
02:36: up like when we were like people of Canada, so it was most of the time skip, which was kind of nice,
02:42: nice travel, but yeah, and I stole a hotel room like when I was staying a night in Prague,
02:52: might spawn it, maybe, but yeah, so this is for anyone of you who don't know, the Resonance,
03:00: it's sort of like a combination of office hours and a podcast where you can ask us any questions
03:06: about Resonite, about its past, future, you know technology, philosophy, like whatever
03:11: whatever you want to know and we'll try to answer as best as we can, but just like a little bit of
03:16: like a podcast element where, you know, like especially me, I tend to like around Boulevard
03:21: stuff and be like, you know, this is like what we're doing, it is why we're doing things this way
03:24: and so on, so some of the questions, you know, they might get like very sort of like off tangent,
03:31: you know, like as well to kind of give you more high level insight into Resonite. Also, my god,
03:37: thank you so much to Talibius for all the gifts and thank you to Roborg as well.
03:44: And also check the folks out there, show that to Cyro for helping me with PhotonDust.
03:47: Yes, yeah, they're like you've been helping out with the texture thing.
03:52: The texture force thing is technically Cyrus' fault, he's like, I wanted him,
03:56: like this literally takes like a little, like, you know, like a few minutes to write with this
04:00: new system, so I'm just gonna add it. Yeah, we might want to turn off the popping for the chat.
04:12: Where is it, where is it? Sounds, there we go, message sound. There we go, there we go.
04:17: So is our audio coming out okay? Like, because I'm using a different headset,
04:22: I'm the processor right now, I usually use the Viper Eye, I'm using its microphone.
04:29: You sound fine to me. Do I sound like okay to everyone on the stream? Are audio levels okay?
04:37: Can you hear us? They're saying audio is okay. I think that's good enough.
04:44: We can tweak it a bit. So just to get us started, if you have any questions,
04:51: oh my god, we've got so many pin messages because of the, because of all the subscriptions.
04:59: Me, when I invite a pin on questions board, yes, sure it works. You have invited a questions board.
05:04: So if you want your questions to throw up on the thing, make sure you know the other question
05:09: mark and it pops and we'll be sure to get to it. If you do have any follow-up questions or
05:16: clarification, please add context to your follow-up question because sometimes you
05:21: cannot get to it later and we cannot lose the context. But yeah, you can ask us anything about
05:27: Resonite, how things are going and so on. And when we're just kind of free time, we're gonna ramble.
05:32: I also see how long I'll keep this one because of the different setup and
05:37: this thing over here has people around. So we might make this one shorter, maybe. I'll see
05:42: kind of how it goes. But yeah, we should be ready to start accepting questions or whatever you'd
05:49: like to know. So there's no actual questions, so I guess we can just talk all about
05:57: before we even get done, there's some nice stuff. I hope everybody is excited for the holidays,
06:02: for Christmas and New Year's and so on.
06:09: I'm very excited. I'm very excited to be coming to Seattle and stuff and seeing everyone.
06:14: Yeah, there's gonna be lots of exciting people. I'm very excited too. I was actually the first
06:18: one to arrive because I'm international and the flight was cheapest on the day.
06:23: And with the cabulation, we have two more people arriving today and then a bunch more and
06:28: people are gonna be trickling in. So it's gonna be a lot of fun. There's also
06:32: gonna be kind of quieter, you know, it's gonna be a little bit quieter, you know, with updates
06:38: and everything, but I think it's kind of okay for the holidays. Also Kep is asking,
06:44: can you believe it's Christmas just three days away? Yes, it's soon. It's so weird.
06:51: Like literally a few days ago, like I was like,
06:59: it felt like the travel was like months away and I'm like, okay,
07:02: it's time for it. So we're actually getting some more questions. Are you getting rest
07:10: and doing fun things for yourself for the holidays? Yes, I'm pretty much like, you know,
07:13: staying with a bunch of vloggers and like I've been working on like a fun side project,
07:18: like kind of just like, you know, a hobby thing. I started working on some of the
07:26: Gaussian Splat things, so like it might be something coming with that. Just no specific
07:32: but I've been kind of doing around with some of the code around those, seeing kind of how
07:36: it works. Nobody, I mean like I know you're gonna be here as well. So yeah, I might like
07:44: turn my attention to some of like my, some more of my like personal projects maybe. You know,
07:51: just over like the, just over like some winter break, you know, I've been working on like a
07:56: thing to get iron face tracking for the Quest Pro working on Linux, which I mentioned, I think,
08:04: ago, I think I mentioned that on. Yeah, we got a bit of talking about it a bit.
08:08: It might have been the last one actually, maybe, or the previous one, yeah. Yeah, one or two,
08:12: one or two streams ago I was mentioning that, and I might, I might try and finish that up
08:16: with some, now that I will have a little bit of extra time on my hands. I really like Linux users
08:22: like would like that, you know, like just be able to run it like glitch. You're like, I don't know
08:28: who uses Arch by the way. I use EndeavorOS by the way. I don't think I've, I don't think I heard
08:36: because I haven't summoned him that way. Anyway, L. Tremendo like Artro is asking,
08:42: Love Resonite, is there any ETA for Quest 2 native version? End of 2025, perhaps. Right now we
08:49: unfortunately don't have any ETA. Right now the focus is, you know, on the kind of the big
08:53: performance update. Once it kind of goes through, that's going to make it more feasible.
08:58: But there's still going to be a fair amount of work. So we're not sure. And right now, like,
09:04: right now, like I don't feel confident giving any sort of like estimates. It's, there's a bunch of
09:09: sort of like, you know, prerequisite work needs to happen to the client. We'll probably need to
09:13: switch, you know, to the customer rendering engine before it happens as well. So once these things
09:18: go through, I think that's going to be, that's going to make it easier to have like, you know,
09:23: firmer estimate. Like be like, you know, I feel like, you know, like within this time frame,
09:29: but right now we need to get these things through and then, you know, it's going to sort of clear
09:34: up things, you know, we could like clear data, like what is needed for it to happen. Well,
09:40: we kind of know roughly, but also like, you know, there's a lot of kind of cool things.
09:44: One of the things that Quest needs, because it's a mobile platform, it cannot handle, you know,
09:49: as much as your PC can. It has much, you know, lower performance, you know, it's much like lower
09:56: like amount of memory, it's a lot of kind of hardware limitations, so the optimizations,
10:03: they're like crucial for it to happen, but also it needs a system for sort of like content
10:08: segregation, because like, you know, even with the best optimizations, your desktop GPU, you can throw
10:14: at it, like, you know, something, you can throw it at a model, like, you know, that has like one
10:18: million triangles and kind of like it eats that for breakfast, because like it has a lot of, you
10:24: know, hardware, but a mobile GPU doesn't have that, so if you throw, you know, the same model on it,
10:28: it's gonna choke, which means like you need a way to kind of like segregate the content to make sure
10:34: you only run optimized, like, you know, content specifically for the mobile platform, and you
10:39: cannot do as much as you can on your PC, so having a system for that is going to be also
10:43: one of the things needed to support those platforms natively.
10:50: Next question is, Alexa was asking a question,
10:53: what is the reason for datetime and time spent input nodes for progress being blank?
10:58: It's pretty much because we haven't implemented the UI for them. Any, you know, data types,
11:04: we need to actually like implement handling for them, so it probably generates the UI.
11:08: If they're blank, it means like that just hasn't been done yet.
11:13: If there's no make sure like, you know, there's a GitHub issue, like this should be relatively easy,
11:17: Todd, like I think we have, we don't have a proper editors for those, they're kind of like weird.
11:22: Yeah. In the inspector, because it's kind of, they're using the same ones,
11:26: but yeah, like if there's a GitHub issue, like we should be able to get to it at some point.
11:34: AppleButter180 is asking, question, is there a plan to have standardized release cadence
11:37: for client headless updates? At some point, yes. One of the things we would want to do
11:43: kind of streamline the process is implement our system, you know, for sort of like
11:48: version updating, version tracking called Molecule. Right now, whenever we release,
11:54: there's like a lot of kind of manual steps, which makes it more kind of error prone,
11:59: and it makes it kind of harder, kind of like, you know, schedule things and so on, have multiple
12:03: sort of branches that we can, you know, be testing in parallel and then approving those changes and
12:07: so on. Once we have that system in place, that's going to provide us, you know, the necessary
12:13: tooling to be able to do something like that. And, you know, at that point, like we can start being
12:19: talking about like, you know, maybe like we're going to be releasing updates, you know, every
12:22: Tuesday by like, you know, default. And we have all these branches where it's like, you know,
12:26: the features that are being worked on. Once we're sure like these are good, they get merged in.
12:30: And if they make it, you know, for Tuesday, you know, it's going to get released.
12:35: Bearing, you know, any sort of like emergency hot fixes and so on. So it's going to happen
12:39: at some point. We do need to work on some of the tooling to enable that first.
12:43: And also just, you know, remove all of the manual work. Because whenever I make a release,
12:49: I have to collect all the change nodes and all the credits for everyone. And I have to, you know,
12:56: read this change and this change and kind of track everything. It's just going to look at manual work
13:00: and sometimes I make mistakes with that. So having that system automated is going to save a lot of
13:06: time and also like, you know, send it as well. Plus enable these things.
13:12: It's also like, actually one of the things that also like ran into is, since we don't have like
13:17: one pre-release branch on Steam, if we want to like, you know, test multiple things at the same
13:23: time, it makes it a lot more difficult. So it's, you know, like sometimes we're like,
13:33: we cannot start testing this thing and it's kind of how it's the development of this thing because
13:37: this thing is being tested and it just causes all kinds of, you know, issues. So having a system
13:43: this feature and this feature and this feature, it opens up like, you know, a lot more options and
13:49: stream-wise the development. Is it known that Twitch stream has an audio inside Resonite?
13:56: Works fine in a browser. I mean, I would check if there's a GitHub issue. Like, I think it's like,
14:02: last time I checked like it worked. The one thing is like, if you pause it, like you cannot pause
14:07: streams, but when you pause a stream in Resonite, it keeps playing it, but it just mutes the audio.
14:13: You know, it's not paused. Even when it's un-paused and you're still not getting audio,
14:19: like, certainly make sure there's a GitHub issue and we can look at it.
14:26: Next question is from Hundavaj. headset native follow-up. Is there plans to support ARM with
14:31: a newer rendering engine? Yes, like, the newer engine should support ARM. It is being based on
14:38: Bevy rendering engine, which is like a heavily multi-platform, so supporting that should not
14:44: be an issue. It also depends, you know, kind of a little bit, like, which platform, but overall,
14:50: yes, we want it to support, like, you know, a wide variety of platforms. And next question is
14:57: Navy3001. Froox, what do you think about the hit-by-a-bus syndrome? I don't think it's a
15:09: like, you know, the bus factor, which is like, you know, something, that's something like,
15:15: you know, like in a lot of companies engineering is like, you know, how many, if this particular
15:20: person got hit by a bus and they're gone, does the company collapse? And it's, you know, it's
15:26: definitely like a problem, but it can be like a difficult one because you want to have things
15:31: in place, so like, you know, other people can take over, even like in such cases. And one of the
15:37: things like we've been doing, like, especially like a lot of other people on the team is, you know,
15:41: trying to like increase, you know, that number, essentially increase how many people need to get
15:45: hit by a bus for things to go down. Usually like when it happens, it's still like, you know, gonna
15:50: be like significant, what's the word, it's gonna be like significant, you know, setback to the company,
16:00: but, you know, there's like ways to recover it. And like, we've been like making sure that like
16:04: more people have access to things. So like, if something happened, you know, there is an
16:10: idea as a whole can kind of like, you know, survive. It's also like useful, like, you know,
16:14: because like, sometimes, you know, it doesn't have to be, you know, the drastic, it's gonna be like,
16:18: you know, somebody is not available or somebody is, you know, sick or something like that.
16:22: So we make sure, you know, multiple engineers have like, you know, access to things.
16:27: And part of it is also like, you know, making documentation so people know how stuff works.
16:32: Because, you know, if something goes down, and then the other engineers don't know how it works,
16:36: that's gonna make it, you know, harder for them to like, make sure it covers.
16:40: But if they at least have, you know, access to their resources, they can still figure things
16:44: out. It just might take longer. So it is, it is like, you know, like a challenging problem,
16:50: but it's something like, you know, we are aware of, and like, we're trying to like mitigate as
16:53: much as possible. Next question is from Troybork. I think I remember Geen saying something about a
17:01: rendering engine where it will allow them to have like dedicated windows and it makes
17:04: them compatible builds or something. I think that would also mean working on Android builds as well.
17:08: Yes. Yeah, that just pretty much should work like on multiple platforms. And since it's being like
17:14: based out of the Bevy rendering engine, you can check that one out and see, you know, what
17:17: platforms it supports. I think it was all like based on like WebGPU or WGPU. I kind of forget
17:23: the name of the tech exactly, but it's one that's very like multi-platform.
17:30: Next question is for Cyro. Do you want to read this one?
17:33: Uh, yeah. So GrandUK says, question for Cyro. Have you had much luck getting your Vyye Pro
17:39: Eye working on Linux? Kinda, sorta. I was initially trying to figure out the USB protocol
17:50: to turn on the eye chip and I ended up stumbling across someone else's work, which I then adapted
17:56: into C Sharp. Um, and so far I've only been able to turn on the eye chip. I haven't really been
18:04: able to communicate with the device to like, you know, make it actually work. Uh, there's like a,
18:13: there's like a bunch of proprietary like crap in the way and I'm like, so far it does not work yet,
18:22: but I would like to get it working and I might bring it, just the headset with me to Seattle
18:26: so I can keep working on it. Um, I will definitely, uh, give updates on that, uh, as I come across
18:34: them though. That's like one of those like things is like takes a while to figure out and like it,
18:39: like you just need to be poking around long enough to like find a good way to get it to work.
18:45: Yeah.
18:47: So the next question is from WorfTheory2013. ProteVox question, is there a way to use a
18:53: multi-node like volume max multi that can omit inputs from its calculations based on a boolean,
18:58: like taking nullable inputs? Uh, so there's not like a node that would kind of combine those, um,
19:05: um, it's kind of, if you wanted to just like, you know, like, uh, the boolean you could like do,
19:11: like a coalesce, but like we don't have like one that would
19:14: just, you know, bake it functionality. This is something that we have to compose from multiple
19:18: nodes. It must be like easier, like once we kind of get some of the collection support,
19:23: because it can just be like have a collection of inputs and then like filter all the ones that are,
19:28: you know, don't fit certain condition and then find the max from, you know,
19:31: the resulting list. But right now, like you cannot do it in a single node.
19:38: Uh, next question is, uh, Hunderlach is asking, do you ever use mods as a reference for adding
19:44: textures? Uh, sometimes there's, uh, I think I've only done it once, at least. So like one of them
19:52: was, uh, when we originally, um, like implemented the PDF support. Um, and somebody made like a mod
20:02: that essentially added like, you know, the PDF, PDFium, I don't know how to pronounce it,
20:07: PDFium library. Yeah, I think it's PDFium. PDFium. Uh, they used like the library for like, you know,
20:14: like, Oh, this library has like a really nice API. Uh, and I kind of like wrote implementation
20:20: differently. So it's kind of more, you know, performant and it's more like well-integrated
20:24: with Resonite. Um, and, but especially I use it like, you know, to be like, okay, like this is,
20:31: it gave me like an idea, you know, how complex that is because before then I haven't really dug
20:36: into the library. I was like, maybe it was complex API. You need to like, you know, do this. I need
20:43: until I actually look into it. I don't know. So I wasn't sure like, you know, if it's going to be
20:47: like, you know, tasks that takes like one day or it takes like one week or two weeks or a month.
20:52: And then I'm like, look at the code and I was like, okay, this is very simple API. We can just
20:57: fill texture data, you know, from this. This is literally going to take me like one day to
21:01: implement. And then I was, and then essentially made me decide to like make official implementation.
21:07: Didn't like use any of the code from the mod, but like it helped like, you know, that way just
21:11: seeing, you know, gauge the complexity of the task and seeing, you know, this is how you interact
21:16: with the API of the library. There's been a few things like where somebody like, you know, when
21:22: people like find like specific kind of bug fixes. So I think like I used it in those cases where I
21:26: was like, okay, like dysfunctions, you know, calling this or this check is wrong. So I just
21:31: kind of swap it. So yeah, it does happen like sometimes. Next question is check the Fox author.
21:41: Enjoy the short piece last week where you've talked about your plans for two facets last week.
21:45: I think this is going to be pretty powerful. But did it make me wonder, do you have other plans on
21:50: what do you want to change about tools? I'm even thinking about the way secondary action. It does
21:55: some things will be like third mouse button plus issues with quest controller. I was kind of
22:00: wondering if facet anchors could make it obsolete. So for some things, yes. There's like, you know,
22:06: having things on the UI that's going to make it so we can free up all the buttons. But for some of
22:12: the tools, you know, you do kind of need two interactions because like, you don't have to be
22:17: like, you know, constantly switching modes. Say something like the depth tool. Because with the
22:21: depth tool, you want to be able to differentiate when you want to select an object versus when you
22:26: want to interact, you know, with a gizmo. And if it's like, you know, if you have to like,
22:35: imagine like, I want to be like, you know, I want to interact, I want to select something,
22:38: I have to click, click, click. It adds a lot of kind of operations,
22:42: versus if you have two buttons, you just, you know, use those two buttons like very quickly.
22:49: What I want to do is sort of like rework because the original mechanism for the original sort of
22:57: like base set of inputs, you know, the primary and secondary and so on, it was based on the
23:06: controller. And the primary device controller is the secondary, it's the touchpad, which means you
23:11: actually have to press it to use it. So the original components, like an original mechanism
23:17: for like interacting with inputs, it has those two coupled because they are kind of coupled,
23:20: you know, on the controller. Within your controllers have a joystick and you can kind
23:25: of use the secondary, you know, I can like use it without having to press, you know, the joystick.
23:32: But like the sort of abstracted system doesn't support that. And that's one of the things,
23:38: since more controllers now support it, is like I want to rework it a bit, so I can kind of, you
23:43: know, decouple it. But we still need to support, you know, the VIVANs because some people still
23:48: use those and we cannot just be, you know, like if you have those you cannot, you know, use Resonite.
23:57: So making like input bindings that work across a wide range of controllers and a wide range of
24:04: tools is very painful because sometimes people are like, oh, just do this thing, you know, for,
24:09: you know, like for the index controllers. And we're like, well, if we do this, then like,
24:13: you know, we break support for everybody who has VIVANs and we can't do that. And, you know,
24:18: and when somebody makes a mod, you know, they don't care, you know, they just make it for
24:22: controllers, but we do need to care about that. That makes it like a little more difficult on our
24:26: end, but it's something I went on to kind of like, you know, do like another Passover and be like,
24:31: you know, how can we kind of improve this mechanisms, like give more kind of granularity.
24:38: But, you know, it's something you can kind of like into and think about, like, you know,
24:42: work out all the impacts of every, you know, change that might happen on all kinds of,
24:46: you know, controllers. It used to be like all more difficult too, because there are some headsets
24:52: and fewer buttons than the Vive Vans. Like they literally just have like a touchpad. So like we
24:57: had sort of crazy things, like be like, okay, this part of the touchpad is like this action,
25:01: this part of the touchpad is this action. And it just makes, it makes making like control schemes
25:07: just very painful. Like every time I see a controller, it has more buttons. I'm like, yay,
25:12: more buttons. It makes things easier. We don't have to like, you know, make like kind of multi
25:16: modal. We don't have to make like multi modal, you know, control schemes, which are very confusing
25:23: to people. Next question. Ozzy is asking, when audio gets around to being reworked for optimization
25:33: update, is there anything extra you'd like to add or allow? Yes. So there's actually a few things.
25:41: One of the things that this actually related to me streaming, because right now,
25:47: Cyro, you know, to broadcast, and I'm also like, you know, broadcast. If the audio was specialized,
25:55: you would essentially be hearing from my viewpoint. So like, you know,
25:59: which would be reversed from your perspective on the stream. The reason for that is because with
26:05: the current audio system in Unity, you can only have one listen. So I could also switch it.
26:11: I could switch it so the audio is rendered, you know, from the viewpoint of camera. We do have
26:15: functionality. The problem is, I would also be hearing Cyro from the viewpoint of the camera,
26:20: I would be hearing from the right. And like, that like messes with my brain like really bad,
26:25: so like I don't use it. So with the new audio system, the goal is to make it so we can like
26:33: render audio from multiple points. So we can actually have like one that's being rendered
26:38: for the user, and it's another one that's being rendered, you know, for the camera,
26:41: and it's being out of the different audio device. With that, we could even have, you know,
26:46: my voice actually spatialized. So like, you know, like, you would hear all of us, you know,
26:51: proper like spatialize from perspective to the camera, even though I'm the one streaming.
26:58: And you could also use it for other like fun things, like make like, you know, walkie talkie
27:02: or virtual microphone that actually records spatialized audio, you know, based on, you know,
27:08: where it is in the world. And if the walkie talkie, like, you know, you put it like near your
27:12: mouth, you can like talk to it and it's going to, you know, come out from the other end. And
27:15: on the other end, you'll be able to hear like, you know, all the sounds near it as well,
27:19: do stuff like that. So, and the design I have in mind for the audio system, you know,
27:25: would allow for that. It's essentially be like, these are the listeners, render the audio,
27:29: you know, for all these points in the world. The other part I would also like to add is
27:35: ambisonic support. It's actually kind of related to some of the stuff I've been playing with,
27:39: because I've been adding general support for spherical harmonics into FrooxEngine.
27:47: And spherical harmonics is a mechanism for sort of encoding space, like directional information,
27:54: you know, encoded like on a surface of a sphere. And it's used, you know, for lighting data,
28:00: like for example, the ambient lighting, you know, that's used in here, that actually uses second
28:05: spherical harmonics. For ambisonics, that's sort of like, you know, positional audio that also uses
28:13: spherical harmonics, where the individual audio channels, they're actually coefficients.
28:21: And then you just use the spherical harmonics math to decode, you know, what audio should you be
28:25: getting at a certain point, or certain direction. And since the support area implemented, you know,
28:31: the actual raw, like, decoding, it's gonna be very trivial to add some other things as well,
28:39: like eventually, probably not gonna do it for MVP. I would like to add, like, you know, support for
28:45: steam audio, actually handling, you know, audio bounces, and like, you know, occlusion and so on,
28:50: based on the word geometry. Because that way, like, you know, somebody's behind the wall,
28:53: you know, or in different room, like, the sound is gonna change, and it's gonna have a lot of
28:58: realism. But it's a lot of extra work, so might not do it, you know, for the performance update,
29:03: because it's not necessary. The main goal is usually, like, you know, feature priority first,
29:09: so we can get, you know, to the performance update as fast as possible. But some of the things that
29:14: are, like, easy enough to add, like, you know, to kind of sprinkle them in all the way. There's also,
29:19: like, some other possibilities, like adding, you know, more kind of shapes, so like, instead of
29:23: just, like, a sphere, you can have, like, audio vehicles in a cone, you know, like, other things,
29:28: control how the audio is rendered. We can just plug whatever function we want to handle the
29:33: attenuation of the audio. So there might be, like, you know, some things around there as well.
29:42: Next thing, Grandreke, could we get some channel pointer themes on there as an Apple Twitch channel?
29:49: Like, we could probably set up some at some point,
29:52: perhaps to figure out, like, you know, what can we, like, over there and so on.
29:55: Um, like, there's something with, like, this cast. I don't quite know, like, which ones would we do
30:01: right now. Perhaps there's something to think about. Could be just, like, silly ones too,
30:07: but, like, it could be also, like, functional ones.
30:11: Next question. The metrics website classifies some clients as chat clients.
30:16: How does it detect clients as such? Uh, this is, uh, self-reported. So the,
30:20: every time, like, a client connects, you know, to the cloud, it actually says,
30:29: would I, um, like, we don't actually have official chat client right now, but, like,
30:33: I kind of added it because I know, like, you know, community members are making some
30:36: and we eventually would like to have, like, an official one too. So some of them, like,
30:43: you know, that the community are making, they're probably making it so it reports as a chat client
30:46: and then it shows up in the metrics. Which, if you know, if you're making, like, one,
30:50: I do recommend using that one so it's kind of properly classified.
30:55: Next question is Navy3001. Are you guys planning on sponsoring another YouTube once
31:01: .NET 9 client is out? So, yes, in general, like, it's not specifically for .NET 9,
31:09: but, like, we do have, I'm actually losing a lot of fun with it right now. Can you hear me fine?
31:17: Hello? Yes. Okay. Sorry, everything kind of just went really blank. I'm, like, on Wi-Fi
31:23: with Quest Pro. So we do have, like, plans, you know, to kind of involve some more YouTubers,
31:30: because when we originally did, like, the sponsorships, we're essentially looking,
31:37: you know, what kind of version on investment we get for those. And we actually saw a pretty
31:43: sharp, like, increase, you know, in amount of users and amount of, like, Patreon supporters,
31:50: which, you know, like, helps a lot. So there's definitely, the direction on investment we
31:56: actually got from that was, like, even higher than we expected, especially, you know, from certain,
32:01: like, YouTubers, which makes it, you know, like, if we, like, reinvest, you know, for every dollar,
32:08: like, you know, we invest into certain YouTuber, say we get, you know, four dollars back, you know,
32:13: or, like, six dollars back. And part of, like, the reason we also did it is, you know, just to
32:18: see what the other investment would be, just so we can kind of gauge, like, what works and what
32:26: doesn't. And now having the knowledge, and also, like, not having it done for a bit, and we actually
32:30: saw, like, the numbers go back down, we definitely want to, you know, do more of it, because it helps
32:35: the platform, you know, it gives us more funding, and gets, kind of, more users, and kind of helps
32:41: grow the platform. So there's that kind of stuff coming in the pipeline. I don't want to, you know,
32:46: say super much, because I don't know, like, how much the team working on that, like, wants
32:51: to have out at this point, but yes, there's gonna be more stuff.
32:58: Next question is Derek Yavov. I was just wondering something about PhotonDust.
33:04: Color range initializer is color X, but color lifetime star index is color, and not color X.
33:08: Is this intended? So color over lifetime star and node. Actually, they both should use color X,
33:19: and that's probably an oversight. Make sure it gets reported, you know, on GitHub, and we can fix it up.
33:27: Next question. Oh, it is actually, Queen Latch is responding to Lexi. Well, I'm experimenting with
33:34: that. How would I classify it? Correct class chat client, if you know. There should be an
33:38: whenever you connect, there's, for a status, there's what kind of client you're running.
33:45: I think there's like four elements in that enum right now, so you just pick, you know,
33:48: the chat client one. Grand UK, could it be possible to make images in Resonite in formats,
33:55: or export a bakeable in formats, like paint your jpeg, like painting and canvas kind of thing?
34:02: I'm not fully sure I understand this question.
34:10: Are you asking, like, if you can export PNGs or JPEGs of things that you paint on a canvas?
34:16: Yeah, like if it's dead, like you can already do that, like you can just, you know,
34:21: like the easiest thing is, like, you know, just takes over kind of quest controls,
34:26: you can just, you know, take a picture with a camera and, you know, just export it so that
34:30: works. You can render to a camera if it's, you can render to a camera, you know, with
34:37: ProtoFlux as well. And then, you know, you get a texture and you can export it.
34:42: So you can, you can already do that. If you mean something different,
34:46: you'll have to clarify because I don't quite understand the question. I'm sorry.
34:54: Next question, Zankry Dragon. What are the criteria for choosing a popular
34:58: but complex feature versus unpopular but easy feature?
35:04: So we have actually, I probably need like some examples because generally if there's a feature
35:09: that's unpopular, I think we're like all that's likely to add it. But usually there's like,
35:16: there's multiple things that, you know, comes into prioritizing something. So popular should
35:23: definitely plays a role. If something is unpopular, there might be, you know, other
35:28: factors like for example, is it an accessibility feature? You know, it's something that's going
35:33: to affect small amount of users. So it's not something that a lot of people would ask for,
35:39: but we do value, you know, accessibility, which means we might prioritize it on those grounds.
35:44: You know, say it's something, you know, people have like photosensitive issues, you know,
35:49: things like that. We might want to add things to make Resonite easier and more friendlier to them.
35:57: There might be other things like, you know, sometimes we
36:00: need certain things or we need to do certain things, you know, to lower costs. It might be
36:04: not something that you want, you know, on your end, but it's something that the company needs
36:10: at a time, or maybe we need it as part of a development process. So there can be another,
36:14: you know, criteria that we use. Say just like, you know, things like we see like, you know,
36:20: the cloud is like taking its cost, like this thing is making the cloud cost like, you know,
36:24: a lot more than it should, and is eventually going to run into a problem, you know, with
36:29: our budget, we might need to like, you know, prioritize certain things to lower that cost
36:34: and fix, you know, the issues that's causing the inefficiency, just to avoid, you know, having
36:39: financial problems down the line. And it might be, and the work, you know, might be something
36:43: that people don't really super care about, but if we just left it, you know, and then
36:48: we started like having issues actually running, you know, they would eventually care about it,
36:54: those things need to be like fixed before it becomes a big problem.
37:00: There's kind of like a lot of things that kind of like, you know, that go into this. I do recommend
37:06: if you go on our GitHub, there's a big write-up called How We Prioritize, and it actually goes
37:13: like into quite a lot of detail into like, you know, our kind of prioritization criteria and
37:17: like how we kind of decide. And there's just generally a lot of things that kind of come into
37:24: it. If you give me a kind of more like, you know, specific example, I could like, you know,
37:28: give you a little bit more, but overall, like, you know, it tends to be different kind of
37:33: criteria. Accessibility, you know, financial business, like, you know, sometimes it's necessary
37:38: for like our development. Sometimes we do small things, you know, just because it's kind of fun,
37:43: you know, because we're kind of interested in it and we need to like have sort of like mental
37:47: break from working on the big problems. So there's a lot of different things that kind of come into
37:55: too much in general. But I hope that kind of answers the question. So if you have like,
38:00: you know, even like more kind of clarification, specific examples that can like, you know, give
38:04: you, can give you that. Navy3001 is asking, what are your thoughts on about using Resonite to build
38:12: as a game engine and make indie games, including little of experiments like in a game chat? Oh,
38:17: it's actually one of the things like we want people to do with Resonite. Like, the whole idea
38:23: of Resonite is it's sort of like a blend between, you know, a social, we got a platform, a game
38:30: engine. It's kind of both. It's like a game engine. Oh, geez. I think the Wi-Fi is getting
38:43: like a really bad, like, because everything is getting really blocky. Oh dear. Can you hear me
38:49: fine still? Yeah, we can hear you. Okay, sorry. I usually don't use, like, Quiz Pro, but, like,
38:57: it's a bit better now. Like, it's completely disconnected for a sec. Sorry, I can't listen.
39:06: Oh, yes, what I was saying, we really want people to use that, like, way because Resonite,
39:13: it's meant to kind of, you know, like a game engine you can be inside of. Like, you can, you know,
39:19: you can do, like, anything, you know, from socializing to, like, building whole games
39:23: and experiences, and eventually we want to offer functionality where you can, like, you know,
39:29: whatever you build, you can export it as your own thing. That's not going to happen until we, you
39:35: know, switch to our own graphics engine because, like, you know, there's kind of licensing issues
39:38: and so on, but it is one of the goals of the platform is, you know, you can use it, you know,
39:44: whatever you want. If you just want to hang out and socialize, that's fine, but also you can use
39:48: it as a production tool and you can make experiences and eventually publish those as standalone as
39:53: well. So we love, like, you know, seeing people, like, users and that way, making, like, games,
39:59: making experiences, and we've seen some, like, really cool ones as well. Like, carrythroughjam,
40:05: like, that's one of the kind of good sources of those, especially, like, when they organize,
40:11: you know, the Metaverse Maker Contest, like, we usually see, like, a lot of really good
40:16: experiences in those that, where some of them, you know, they could be an indie game on Steam and
40:21: people, like, wouldn't bat an eye. Like, it would be like, you know, this is fully-fledged indie
40:25: game. So yeah, like, I personally love to see it and I love to see it. Like, I would love to see
40:32: people do it more. Next question is from DevHumber. With the new audio system, could we have multiple
40:42: devices for audio production? Yes. Yeah, that's pretty much what I was talking about earlier,
40:45: is, like, you'll be able to render out audio to multiple devices from multiple points in the world
40:51: for input. You can actually already have multiple input devices right now. Like, you can, you know,
40:56: stream your audio from any audio device into the world. If you want to, like, you know, use it for
41:02: input, like, some other kind of processing that will probably need, you know, other stuff like,
41:07: you know, the audio DSP for ProtoFlux. So you can actually, you know, do stuff with it, like,
41:13: you know, pipe it and so on. This is going to open up, like, more options. But, yes, the new
41:17: audio system is going to support, like, multiple outputs. For multiple inputs, you know, that's
41:22: something that's already supported, like, the sublevel. If there's kind of, you know,
41:28: clarification how exactly you want to use multiple inputs, I can give you a little more details.
41:35: Next question from Ozzy. Can I challenge Froox to figure out how to do a photo gesture with
41:39: quest controls as a fan of it? Okay, let's see. Yeah, this finger's, like, the thumb is kind of
41:46: making that difficult, because, like, it makes it tilt. So I don't know if I can, like, do this.
41:55: Like, the gesture is designed, you know, for, it was designed for the index controller, so, like,
42:01: if you take, if you take the hand that's higher and you turn it 180 degrees around,
42:09: uh, I had it for, for a brief, I don't, I don't know, some people will take, the problem is I
42:18: can't move this thumb, and this thumb needs to be, like, going this way, so, like, it's like,
42:25: some people will, like, take their, they'll, like, do the gesture normally, but they'll take their,
42:31: and just rotate their right hand 180 degrees around, so, yeah, so, yeah, like, 180 degrees
42:39: clockwise, yeah, like that, it shouldn't even be working, no, I'm not gonna do it,
42:47: it wasn't designed for this, don't worry, I'll show you, I'll show you tomorrow, okay,
42:59: uh, ZankrayDragon is asking, how about backfix, is popular but difficult versus
43:03: not popular but easy, um, so, it kind of depends, like, if it's, if it's easy enough,
43:09: sometimes, like, it's only five minutes, like, I'll see, like, a github thing, and I'm like,
43:12: this literally takes, you know, it's a single line code change, I'm just gonna do it, um,
43:17: since I've already, you know, seen the issue, if it's a complex one, then, like, you know,
43:22: essentially, the more, the more complex it is, um, the more, I mean, it kind of,
43:30: is put into thinking, should I spend time on this, so, if it's, if it's something that's
43:36: super quick, you know, like, I see it, I'm like, okay, this is okay thing to fix, I'm just gonna
43:40: do it, like, you know, it takes me, like, a minute, you know, to change this line of code,
43:45: maybe another minute to, like, write a change log, um, so, you know, this can get, like,
43:52: but also it kind of depends, because, you know, sometimes there can be a lot of them,
43:55: so it depends which ones we know, and we see, and which ones are, like, this is,
43:59: this seems like an important to fix, um, if it's a popular one, but difficult one,
44:04: it requires a lot more playing, because for the really difficult ones, um, it's,
44:13: like, sometimes it, some of the bugs, they kind of require complex, like, reworks, so we need to
44:20: overhaul a whole system just to fix, you know, a certain bug, um, so, like, you know,
44:28: it kind of depends on the specific case, it's kind of hard to talk about this in general,
44:31: because usually, like, you know, the decisions kind of happen when I see, like, you know,
44:35: when we see kind of the specific bugs, so if it's, like, a difficult one, we need to kind of,
44:39: like, you know, make sure it's kind of explained with the roadmap, and, like, you know, we,
44:42: we actually, you know, we actually kind of, like, you know, align it with, like,
44:49: a lot of other goals, um, and it kind of depends, you know, the more complexity there is,
44:55: the more thinking goes into it, and the more planning needs to happen, um, but there's also,
45:00: like, other flip side, because there can be a lot of kind of small things, but sometimes the small
45:05: things, you know, they accumulate, it's like, you know, sometimes when I'm, like, in a situation
45:09: where there's, like, lots of requests, where each one of them is, you know, say five minutes of work,
45:15: um, but say if you have, like, a hundred of them, and you can see, you know, you can see a few hundred
45:19: more coming that are kind of along the same line, you know, that adds up, because that's, you know,
45:24: now five minutes, you know, times a hundred, you know, we've got five hundred minutes, which is,
45:30: you know, several hours, and then you see, like, even more, and, like, you know, it can turn into,
45:36: several days or several weeks, and, you know, it kind of expands, and sometimes it's, um,
45:42: it actually becomes more efficient to, like, you know, not do the quick and easy ones,
45:47: but sort of, like, a real ecosystem as well, because that's not only gonna fix
45:50: those bugs, and it's gonna improve them, it's gonna improve, you know, hundreds of other things,
45:56: and hundreds of, like, other bug requests or feature requests that we could have gotten
46:01: just get solved implicitly, and sometimes going that way, like, it can be a little more efficient,
46:07: so usually it's, like, the perfect session is, like, you know, some combination of, like,
46:12: you know, efficiency, uh, the impact, you know, the community impact on people,
46:18: the more impact it has, you know, the higher priority, it's almost, like,
46:22: the way we can think about it is, like, you know, it's almost everything, you know, like,
46:30: it's not, like, you know, super well quantified, but, like, like, there's,
46:33: sort of, like, a mental score for a thing, so if it's, if it's, um, if it's, you know, easy,
46:40: you know, that's, uh, positive points, if it's not popular, that's negative points,
46:48: if it's popular, that's positive points, and, you know, and it just ends up kind of being,
46:52: like, how do these kind of balance out, so I recommend, like, reading the how we prioritize,
46:57: because that bit goes into quite a bit of detail on those, and again, like, you know,
47:03: if you've got, like, any specific examples you're also, like, willing to talk about,
47:05: like, you know, feel free to ask about those.
47:10: Next question, from, uh, GrandiK, uh, like, image in a painting canvas, drawing painting
47:15: whatever on it, and then hitting button to take the colors on it, and turn them into
47:18: a PNG JPEG, hopefully without a camera, is that more clear? Well, you need a camera to,
47:27: like, you don't need, like, you don't need a physical, like, you know, prop, like, camera,
47:32: like, you know, the one you're using, uh, there actually are tools, uh, somebody made,
47:36: like, you know, the sort of, like, um, like, Photoshop thing, and there's also, like,
47:40: the tool by Japanese community where you can actually do that as well, where, um, I don't
47:45: know if I have it at hand, they have, like, the image crop thing that a lot of people use,
47:50: do you happen to have that by anywhere? Uh, no, I don't. I might have it, I think it's,
48:00: folder, uh, let's see, yeah, you kind of do need to, like, have a camera to capture the pixels,
48:07: you don't have to have a live camera, you can make a camera without a render texture and only use it
48:12: to take pictures, yeah, and it will only, it will only work with, like, a render to texture asset,
48:17: it doesn't have to be a live running camera. Yes, well, you can, you can definitely do that,
48:22: there's, like, other tools that do it, I don't know if I can find quick enough, uh,
48:27: quick enough for this, uh, let me check my cool things, um, let's see, orange,
48:37: do I have oranges folder, no, or maybe it's an rnms folder, it's kind of when we, I wish we had
48:45: workshop, because we just, like, search for it, usually, uh, I don't think I can find it quick
48:52: enough, um, let's see, just add a search bar, Froox, yeah, I wish I could, like, show you,
49:08: like, quickly, but, like, I don't, I don't have, like, an example at hand, but there's already,
49:11: like, tools, you know, there's, like, this one, like, where you can drop images and stack them,
49:15: and then, like, you set a crop, um, and then, like, you know, you, um,
49:21: um, you know, it essentially renders out another image, and you can just explore here,
49:25: so, like, it is already possible, functionally, then you can kind of build that.
49:32: Next question is from Zumi Deer.
49:34: It seems that various graphics settings are determined when modifying the world,
49:38: but could we have option to turn those settings down ourselves if the world doesn't require them
49:42: for a specific way, for instance, turning shadows off?
49:45: Uh, you can already do that, um, so, let me actually,
49:48: I'm gonna switch this to smooth POV for a sec, and I'll render private UI,
49:55: so if I go into my dash, if you go into settings, you know, there's graphic settings,
50:00: and you've got a bunch of texture quality options, there's, like, a resolution, there's,
50:05: you know, how many per-pixel lights, shadows, you know, so, you know, you see there's,
50:09: there's shadows in the world right now, and I can be, like, you know,
50:12: I can be, like, you know, shadow resolution, well, actually, wait, I think this one,
50:20: oh, I think this, oh, I think, I think it's overridden in here,
50:24: why is it, wait, why is this still overridden? It shouldn't be overridden.
50:33: You can technically override it, but we generally advise people not to,
50:36: unless we really need to, do you remove the override?
50:42: Hello? Sorry, I set it to zero.
50:48: Zero, okay, okay, so now it should be taking the setting, so now if I go medium low,
50:54: wait, this is not doing it, this is, no, it is doing it, oh, okay, I'm just blind,
50:58: okay, you can kind of see it, I just lowered it, and I can, like, you know,
51:02: change the distance, it's very close, or change it very far,
51:08: so it can be, like, you know, no shadow cascades, which means there's literally no shadows now,
51:13: we can just one cascade, well, it's two cascades, four cascades,
51:17: actually, I think none is just a single cascade, so you cannot fully turn them off, but
51:23: you can lower them significantly, there's a bunch of other settings, like,
51:26: say, like, you don't like, you know, bloom, you can just be, like, zhugon,
51:35: gone, internal space, oh, these are weird, so there's a bunch of options, you know, for graphics
51:41: that you can, like, use to, like, optimize things, the words, they can technically override them too,
51:47: we generally recommend people, like, you know, not to do it, like, unless there's, like,
51:51: a specific reason to, that way everybody's, you know, specific settings, you know,
51:57: for the hardware, like, to get into account.
52:02: So I hope that answers the question.
52:06: So the next one is Grant UK is asking, I have inspired someone to attempt advent of code this
52:11: year in Protoflux. There's certain discord, if you're interested in solutions, what do you think
52:15: about it? I mean, it's just pretty cool, I'm not sure if we're familiar with what advent of code
52:20: is, is this, like, do we have to, like, do a thing every, like, day or every week, or?
52:25: There's like a, there's like a cute little coding challenge every day, I think on day six they did
52:29: a cute thing where it's like, oh, you know, make this thing move along and whenever it hits a wall
52:34: turn 90 degrees and then count every tile you didn't already hit, you know, stuff like that.
52:39: It's pretty cool, it's like a good way to, like, get a lot of experience as well, so,
52:43: like, thank you, thank you for inspiring the person to do this.
52:49: Uh, this one's just a question, where, right here, right here, here, here, right here, right here,
52:58: right here, right here, exactly here, right there, hi, how are you doing?
53:08: I'm sure it's gonna get clipped, yes, uh, oh my god, next thing, um,
53:18: Verband, Verband Stash, I don't know if I'm supposed to browse it in a German way or no,
53:24: um, who is a good boy?
53:29: Yeah, you're not on camera, even, or maybe the preview is wrong for me, there we go.
53:35: On a serious note, uh, do you have milestones for 2025?
53:39: There's a bunch of things, like, we'd love to do, um, I mean, like, big one is, like, you know,
53:46: getting a big boost in performance, it's currently kind of my main goal,
53:51: um, I would definitely love to, like, you know, improve a lot of the UI, like, probably, like,
53:56: you know, do custom IK as well, just kind of a bunch of kind of, like, things that I think
54:00: are going to help makers and make it much more, um, interesting, you know, to people.
54:05: I would love to, like, do more kind of, like, with Protoflux, like offer people more tools,
54:09: so there's a lot of things I would want to do, but sometimes, you know, things can, you know,
54:15: and so on, so, like, we'll see how stuff goes, but generally, those are the areas, like,
54:20: I would like to, you know, focus on, plus, you know, a bunch of smaller things here and there.
54:25: Um, I don't usually, like, you know, do have, like, super specific kind of, like,
54:30: a rough kind of, like, idea of, like, you know, this is the things I'd like to do, and, like, and,
54:36: but it's kind of, like, you usually make the decision, you know, at the time, like,
54:39: like, what's the next thing that should be worked on, look like what's the most needed right now,
54:45: you know, based on that, that way, like, we keep things more adaptable, you know,
54:50: to the situation rather sort of, like, pre-determining everything ahead of time.
54:57: Um, next thing, Hunlage is asking, is it possible to trigger workspace items spawning from user
55:02: space like the inventory does using Flux? Right now, we don't actually provide any mechanisms
55:07: for that. There's probably a bunch of, like, kind of hacky ways to do it, which I don't
55:12: advise against using them, because they, they can be, you know, prone to breakage,
55:16: and we don't officially support them, which means, you know, sometimes we change things
55:20: and it will just break, you know, like, they'll just kind of break, and then, like, you don't,
55:26: you don't necessarily have an alternative, so use those with caution, you know.
55:34: We eventually want to add, like, a thing so, like, it's possible, like, to do it, but we
55:38: do it properly. Next question is Ralash86. The move gizmo is annoying to move in desktop mode,
55:46: and most of the time, in a location that I can't get with my cursor, ground corner,
55:50: could it gizmo be moved to a location that is, say, always in front of me when I'm using it to
55:54: move all these complex items? Oh my god, also, thank you, Ghost. Oh my god, there's so many
55:58: subscriptions. Oh my god. There's so many. Oh my god, thank you. One, two, three, four, five,
56:03: six, seven, eight, nine. Oh my gosh. Thank you so much, Ghost. There's so many subscriptions.
56:11: Holy guacamole.
56:16: Oh my god. Thank you, Ghost. Now I completely forgot the question. I need to read it again.
56:24: Well, thank you for your subscription. And everybody's gonna think of us as well.
56:32: Oh yeah, the moving gizmo and desktop.
56:40: What do you mean by this one?
56:44: Yeah, if you're holding a dev tip, it goes through walls and stuff.
56:47: It should go through everything. It should matter. One thing you can use is, you know,
56:51: go into free camp with F6 and that can make anything easier because your cursor also goes
56:56: into like, it goes into like, you know, sort of freeform mode where instead of like, you know,
57:01: the camera looking around, you can actually position cursor, you know, anywhere on your screen
57:06: and then, you know, it works more like a traditional editor. So
57:09: that might help. Otherwise, I probably need to like, see some kind of example of like,
57:14: what do you mean because I don't fully understand. So this is going to go subscription. Thank you.
57:25: Check the folks out there. What is a feature you've planned for the future? You're looking
57:28: forward to it. It isn't really achievable today, but it will become in the future as more systems,
57:33: say multi-process architecture, for example, are implemented. Oh, one of the things with
57:37: multi-process architecture I really want to do is actually make, you know, your dash and other
57:43: things render as a separate overlay. And actually, wait, how long have I been going? I think it's
57:50: been an hour. It's been about one hour. Okay. The time is all different because usually this is like,
57:55: this is like a thing midnight for me, but now it's like 15 hours. So I'm like, I don't find
58:01: every time. You know what? I'm gonna, this is, this is, this is one I want to talk about
58:06: with the pen. So let's go over here. Okay.
58:13: I'm gonna, I'm gonna do some sketching. So one of the things, once we have the multi-process
58:21: architecture, you know, and there's only this kind of separate, there's only separated, you know,
58:25: into its own process, we can kind of sit down further. And I've been kind of like, you know,
58:32: talking about it as like, you know, where I'm just going to do like a simplified one, but like,
58:35: say you have like, you know, FrooxEngine. So this is FrooxEngine, you know, I don't like this
58:41: controller as much. So this is FrooxEngine, and you've got like, you know, the renderer.
58:48: So you've got the renderer, and there could be like, you know, both like Unity,
58:54: and you know, and this is like actually kind of driving this,
58:58: you know, and this is kind of like, you know, making stuff like render on your screen.
59:03: We can split ourselves further. So instead of just a single renderer, there's actually another one.
59:10: And that's an overlay renderer, because you can, you know, with SteamVR,
59:14: you can do overlay apps. So there can be another overlay renderer, and this can be
59:19: driven from the same process, so like this can be driving this, like both these,
59:25: or you know, there can be actually another one, another kind of process for FrooxEngine,
59:31: that is also driving this one, so this one's driving this, and this one is actually
59:36: communicating with this one. So what the overlay renderer would do is it would render, you know,
59:43: your dash, you know, it would handle like, you know, all the kind of like general kind of control
59:47: functionality, and then the main renderer would actually be rendering your world, so like when
59:52: you're like, you know, when you're in VR, you know, like, so you have like a world, you have like,
59:59: you know, you have stuff which is the single cube for this, just to keep doing simple, and then like
01:00:05: you have your dash, you have all your contacts and everything, and this is actually being rendered
01:00:12: as an overlay on this one, so like this is rendering just the dash, and this is rendering
01:00:20: just the cube, so they're technically separate. If we split things this way, what we could do,
01:00:28: because like both of these are, you know, Resonite, what we could do is we could actually
01:00:33: make it so you don't need to run this one,
01:00:39: so instead of, you know, running full like, you know, like instead of like being in a
01:00:44: FrooxEngine world into being a Resonite world, you have just the overlay, you have your dash,
01:00:50: and the other application that you run can be something completely else, like a different VR
01:00:54: application, so say for me, I really like playing Minecraft in VR, so you can literally be running
01:01:02: Minecraft in the Vivecraft mode. This is too high. I'm gonna do Vivecraft,
01:01:10: I don't think that's readable, I'm sorry, but yeah, this is like, you know,
01:01:14: I'm just gonna do a bunch of blocks, you know, just make sure it's like Minecraft thing.
01:01:21: So you have like, you know, your Minecraft stuff, you know, like in Minecraft worlds,
01:01:28: this doesn't really look like Minecraft, but like, you know, it gives the idea,
01:01:33: and you still have your dash, which means one of the things you could do is, you know,
01:01:40: you can be playing another VR game and still have all your contacts, you know, and still like,
01:01:46: you know, be able to use it to desktop tab and be able to see, you know, what people are up to
01:01:50: and so on. What would be even cooler is we can actually have the overlay pick up on that,
01:01:55: and it's going to show to your contacts that you are currently playing Minecraft,
01:02:00: and they can still like, you know, message you and do stuff. But this goes even further,
01:02:04: because the overlay, like, it's not limited to just the dash, the overlay,
01:02:08: it's a Resonite world like any other, and you can even have like multiple of them.
01:02:12: So what you could do, you could actually let you build stuff in the overlay, so you could, you know,
01:02:18: spawn things, and if we have, if we add like a mechanism where, you know, the game you're running,
01:02:25: it can actually communicate to the FrooxEngine and be like, you know, this is, you know, my,
01:02:33: this is the current position in the world, and this is the current state, you know, this is,
01:02:37: for example, the current server I'm in, you know, say it says like, you know, this is the server I'm
01:02:42: in, we could tie that, you know, into our system, so we could like, you know, spawn things, and
01:02:50: things are going to get spawned, you know, in an overlay, so like, you know, say like you spawn
01:02:55: some kind of like node or something, whatever reason I think you want to spawn, you spawn it in,
01:03:02: and it's gonna, you know, render on top of the Minecraft world, or whatever, you know, other
01:03:07: application, and you could actually be using tools, you could like, you know, mess around with some
01:03:12: stuff, sort of like in this augmented reality layer that is Resonite on top of another game,
01:03:20: and if you wanna, you know, if you're playing with multiple people,
01:03:25: and say like you're in the same server, this overlay session can also be synchronized,
01:03:31: because again, it's just another Resonite world, it just doesn't have, you know, any
01:03:35: border geometry, it's just the things you spawn, which means if you're playing on the same Minecraft
01:03:42: server, we can sync that up, and the other people, they will see the stuff you spawned in,
01:03:48: so you can literally be playing Minecraft, and say like, you just wanna like, you know,
01:03:52: watch a video in Minecraft for a bit, you spawn it in, into the overlay, it's, since the position
01:03:58: is communicated, you know, we make sure like the video is in the same post for everyone,
01:04:03: I should have actually just thrown the video in here, you know, and you're just gonna be able
01:04:09: to watch the video in Minecraft, or do whatever like, you know, you wanna do in the Resonite,
01:04:14: but you do it, you know, in there, so now you can have that, you know, and now there's like a video
01:04:21: you can be watching in the Minecraft world. Even better, what we could do eventually with this is
01:04:27: like, you know, make it, since it's communicating your position in the world, we can actually render
01:04:34: your avatar as an overlay, so you can, I can be in the Minecraft world, and I can, you know,
01:04:41: still look like this, and if other people are running, you know, the same Resonite overlay,
01:04:47: they could see you as this as well, and you can, we can have like voice chat, because Minecraft
01:04:51: by default doesn't really have voice chat, so like, you know, it can provide like, you know,
01:04:55: as well, and the more, the more kind of, you know, we communicate from this, you know, say,
01:05:01: for example, we make a Minecraft mod that like, you know, sends information back and forth,
01:05:05: the more integrated we can make it, so say, when you, when you like, you know, when you're on
01:05:12: server, we can actually make it so you can, through contacts, you can send somebody an invite,
01:05:17: and if they have the same mod installed, they can just click that invite, and it's gonna plug,
01:05:22: you know, the IP to the server, and they're gonna join your Minecraft world through the
01:05:26: Resonite Dash, and it's gonna be one thing that's gonna be, you know, possible.
01:05:30: And the point is, like, you know, it's the game that this is running on top of, it can be anything,
01:05:37: you know, any VR game, so like, Resonite can be used as sort of like this kind of like glue
01:05:43: layer for the other ones. You could also, funnily enough, you know, you could be running VR chat,
01:05:50: in a VR chat world, so say like, I'm gonna do like this.
01:06:04: I'm gonna do, you know, see, so like in VR chat, you know, there's people, you'd like, you know,
01:06:10: hanging out, and you wanna, and you just wanna work like, you know, on your Resonite items,
01:06:14: you spawn it into the overlay, you open, you know, the ProtoFlux, and you can be messing on it,
01:06:22: into the actual world, so it can be like, you know, here's my, you know, node thing here,
01:06:28: I'm like, you know, messing with it in the overlay, and then you save it back into inventory,
01:06:32: I'm gonna go back into Resonite, you know, we can spawn it. So same here, like, you know, you are,
01:06:38: you are in it, like, you are in the world, and then like, you know, you have like your
01:06:44: ProtoFlux stuff that you're like working on, or, and you can kind of combine Resonite with
01:06:49: other applications. And I think, like, that's something that can be very powerful and very,
01:06:54: like, you know, interesting, like, in a way where it opens, it opens, like, workflows that,
01:07:00: like, I don't think a lot of people, like, even think about right now. So I think, like, once it
01:07:07: kind of becomes a thing, I think it'll make Resonite a little more kind of interesting,
01:07:12: even to people who don't normally play, because now it offers all this extra functionality for
01:07:16: other games. And the more you can also integrate with specific games, and we would, you know,
01:07:21: kind of provide mechanisms to do that, the more, the cooler it's going to be, and the more capable
01:07:26: it's going to be, you know, because same thing actually, like, if it can synchronize, okay,
01:07:30: I'm in this world, you know, I'm in this, like, session, actually, like, it sends that information
01:07:36: over, then we can, you know, make it so we can send invites as well. And like, you know, maybe
01:07:40: it pipes it back. I don't know, like, you know, what APIs they really have. So like, I don't know
01:07:46: in general, like, in general principle, like, it, like, it's gonna work. The other cool thing
01:07:54: with this as well is because you have the overlay, I know, like, they should, like, they use OSC,
01:07:59: you know, control things like Avatar, you could actually make a thing where you could make
01:08:05: some really complex ProtoFlux to scrape some things. And then you could actually drive it,
01:08:12: you know, you can, you can have it sent OSC to the VRChat instance. So like, you have,
01:08:17: like, a Resonite overlay controlling stuff, you know, in the VRChat avatar or world,
01:08:22: you know, instead of, like, making kind of, like, making the applications kind of more
01:08:28: interconnected and kind of expanding each other. I know, like, there's actually a particular thing
01:08:32: that, like, Jack made. He made, like, this facet. Because Jack, he hosts the event called Z-Rave
01:08:41: that's every month. It's like the European sort of, like, rave event. And it's a crossover event.
01:08:47: It's on VRChat, it's on Chillout, and it's on Resonite. And they always have, like, a camera
01:08:51: that's, you know, kind of switching between multiple worlds. It's kind of meant to be,
01:08:55: like, you know, this kind of, like, multi-platform event that kind of, you know, brings them together.
01:09:01: And he actually made a tool, like a facet. I think it's using, I forget if it was using WebSocket or
01:09:07: OSC, but he made it so he can actually control the streaming from a facet. He's on his hand,
01:09:12: so he can literally be in the Resonite instance for the Z-Rave, and he's been, like, you know,
01:09:17: kind of controlling the camera streams, you know, switching between them, and, like, you know,
01:09:21: switching the cameras and so on, all, like, you know, while being, you know, in Resonite.
01:09:25: If we do this kind of overlay thing, you know, people who are running on the, for example,
01:09:31: VRChat side or the Chillout side, they could have the same facet on their hand while in, you know,
01:09:38: on VRChat or Chillout, and use it to kind of control the stream. So, like, if somebody builds
01:09:43: a tool in Resonite that can, you know, help these kind of things, this sort of overlay layer will
01:09:49: make it accessible, you know, to other platforms and other games. So this is one of the things I'm
01:09:56: working on, because, like, I got, like, a feeling this one's gonna potentially open, like, an
01:10:03: explosion of possible cool, you know, interactions and things that, like, you know, the community is
01:10:08: gonna do with this. So I really hope, like, you know, like, I guess I kind of, like, work on this
01:10:16: one, and I think, I think this one's just gonna be, like, really cool. Like, I don't know what
01:10:30: once we have the multi-process architecture, like, I don't know, like, if we're gonna, you know,
01:10:34: do it, like, while still using Unity, or we're gonna, like, after we switch to Sauce, but I do
01:10:38: want to work on this at some point, because I think this could be one of the things that's gonna
01:10:42: be really big for Resonite, and it's one of those things, like, where, you know, I feel like a lot
01:10:49: of people don't even, because, like, for example on GitHub, you know, we get lots of feature requests
01:10:53: and so on, but I think it's one of those things where a lot of people don't even think this might
01:10:57: be a possibility, like, they wouldn't ask for it, but once we introduce it, like, people are gonna
01:11:02: realize, you know, this is opening a lot of new options that were not possible before, and to me,
01:11:08: like, I really like making those kinds of features, especially ones, you know, which let the community
01:11:14: and everyone kind of build on them and make them even more powerful and make them, you know, more
01:11:19: beautiful and make, like, all these kind of cool, like, interactions that even, like, you know,
01:11:24: myself, at this point, like, I don't even think about it, because, you know, here's a few examples,
01:11:28: but I feel like once this is in, people are gonna make all kinds of cool and crazy stuff that, like,
01:11:33: it's gonna blow my mind as well, even though, like, you know, I'm the one who, like, originally
01:11:38: designed it. So that's my first thing, like, having the overlay, having a Resonite as sort of, like,
01:11:44: an overlay layer with abilities kind of intact with other applications and other VR games,
01:11:53: I think that's the one I'm really looking forward, like, once we have, and just, you know,
01:11:58: seeing what people do with it and how they use it. So hopefully that answers, you know,
01:12:03: the questions. Thank you very much. We're gonna go back to the other place.
01:12:13: Hello. Oh, wait, where's the trans thing?
01:12:17: Ah, I'm bringing it.
01:12:19: You're bringing it? I don't know the other questions. What do I say?
01:12:24: Where's the questions? Thank you.
01:12:27: Oh, we actually, so next question, I see the ghost, like,
01:12:34: subs, like in the thing. So all the questions were before then. So next question is from
01:12:40: DevAmber. Content from previous. An example is to attach multiple virtual VR mix to multiple
01:12:46: actors on stage. Their audio could be streamed to virtual output with channel for each actor
01:12:51: that can be linked to external audio mix that would be possible. Yes. So this one thing I
01:12:56: mentioned, you know, the goal is, you know, so you can technically have as many, you know,
01:13:03: inputs as you want. I'm eventually going to like run into limits and how much CPU power you
01:13:08: actually have to render all those. But usually I like to make things where there's not an
01:13:13: artificial limit. You can, you know, push it as hard as you want. And once you kind of have
01:13:16: limits of your hardware, that is your limit. But the goal is, you know, you can specify
01:13:22: these are virtual kind of like, you know, listeners and want to, you know, render audio,
01:13:28: you know, all the specialization, everything and pipe it into this output. So yes, that's one of
01:13:33: the things we want to make possible. So we just got to the Ghost, all the subs I can show you
01:13:41: Thank you, Ghost, again.
01:13:45: I'm gonna close these up.
01:13:49: There's quite a bunch.
01:13:52: Uh, next question, actually, oh, I don't know what that one is.
01:13:56: Granndryker is, I think, Snopit? I'm sorry, Granndryker, I don't know what this means.
01:14:03: Snopit.
01:14:05: It's a Tom Scott meme.
01:14:07: Oh.
01:14:10: I don't know what that one.
01:14:11: Uh, next question is Raj86.
01:14:16: It's asking, it's always at the center of object.
01:14:19: Can you please move it ways to be in front of me?
01:14:22: Also, I forgot about Freecat.
01:14:24: It kind of needs to be, well, it kind of needs to be in center of object because that's,
01:14:29: you know, the object's pivot and it's the one, like, you're going to be moving around.
01:14:32: Once we do some more improvements to the gizmo system, you'll be able to, like,
01:14:37: definitely place it elsewhere, but it doesn't kind of change its behavior.
01:14:40: Because, like, if you, for example, rotate object, you know, it's rotating around that pivot.
01:14:44: Same thing, you know, if, like, it's moving and you're snapping to something.
01:14:52: So, yeah, like, it's possible to, like, move it, but, you know, it does change how it behaves.
01:14:58: So, like, I don't know, you know, if it's, like, what you want.
01:15:01: But I do recommend, like, using the Freecam to kind of position anyway, so it's kind of easier.
01:15:13: I mean, that's the thing, it's, like, we cannot really, like, the gizmo represents where the object is,
01:15:19: so, like, we can't really, you know, we can't, like, move it without, like, you know, changing, like, what it does.
01:15:28: And the next question is Grant UK.
01:15:30: With the overall idea, how will you make sure it doesn't depend on SteamVR for those that use Monado and not SteamVR?
01:15:35: Not sure if this is even a worry to have or not.
01:15:38: So, I don't know how its overalls work with Monado.
01:15:41: We probably want to, it's one of the things, you know, like, we need to kind of look into how
01:15:48: it's gonna work with different systems, like, for example, if you're using Oculus and so on,
01:15:52: there might be, you know, some limitations.
01:15:54: It might only work, you know, if you use these certain, like, runtimes.
01:15:59: It's one of the things, like, where probably switching to Sauce would also help because, like,
01:16:03: I think OpenXR has, you know, some more general mechanisms for doing overlays.
01:16:09: But, like, it can't really tell you super much, like, on the technical details because
01:16:13: it's not something I would delve, like, deep into it.
01:16:18: So we'll kind of see, but, like, once we have a system in principle,
01:16:21: it shouldn't be too difficult to perform multiple, you know, systems or switch it over.
01:16:27: I actually, I'm sorry, I was gonna say that I actually have looked a little bit at, like,
01:16:34: OpenXR and subsequently Monado, and OpenXR does have, I believe it does have a mechanism
01:16:40: to do overlays, because there is actually a general, like, OpenXR overlay app called
01:16:46: WLX overlay, and that's what I use on Monado to do, like, interact with my desktop and
01:16:51: have a keyboard and everything.
01:16:53: So you can do OpenXR overlays at the very least, so that might be when that happens then.
01:16:58: Yeah, yeah, like, I know, like, OpenXR has, like, something, because I remember, like,
01:17:02: reading about, like, some of our systems, so that's kind of good to know is there.
01:17:06: And it's part of the standard, so, like, you know, like, once that comes through, like,
01:17:09: I feel like a lot of things should just support it.
01:17:14: Also, thank you for a subscription, Tatsu.
01:17:17: Next one, NukiKun is asking, colliders do these slot-based interactions that confuse
01:17:23: me.
01:17:24: We have button, grabble, reparenter, user, incisor, ferroflex, et cetera, all these
01:17:28: components which are interactions with the colliders, but there's no code on the inspector
01:17:32: which ties this together.
01:17:34: How does it work internally?
01:17:35: How is it not inefficient?
01:17:39: So, usually colliders, when they collide, they actually send an event to, you know,
01:17:46: everything that's on the same slot.
01:17:50: And that's, like, pretty efficient mechanism, because all it needs to do is just, like,
01:17:55: iterate the components on there that have, like, you know, the components of an interface
01:17:59: and just call a method.
01:18:04: locations on itself, it's a pretty quick thing to do.
01:18:09: Like, the only thing that will make it less efficient is if you had, like, lots of, like,
01:18:13: you know, components on a single slot, because then it has to kind of go through all these
01:18:17: and be like, okay, this one doesn't care, this one doesn't care, this one doesn't care.
01:18:20: Even then, it's still gonna be relatively fast, because, like, it's, like, a really
01:18:23: quick interaction, but, like, usually you don't have that many on a single thing, so
01:18:29: it tends to be pretty efficient mechanisms.
01:18:33: There's, like, a bunch of systems that kind of do this thing, like, where they will
01:18:36: send an event, everything that's on the same slot, that's, you know, that's, like, listening.
01:18:43: Next question is for Cyro.
01:18:47: Oh, I was gonna actually add just a tidbit to the previous one, in that, like, specifically
01:18:54: with, like, colliders and stuff, I believe colliders with things like Collider User
01:19:00: Tracker and stuff.
01:19:02: Like, those will actually register themselves with, they'll actually, like, register events
01:19:06: instead of, like, receiving events that are always, like, sent all the time, right?
01:19:12: Well, there's gonna be some that do receive, but, like, usually those need a reference
01:19:16: to it, because they need to know, like, when to register and when to register.
01:19:19: A lot of systems will just kind of listen to the event, because that's kind of the idiomatic
01:19:22: way to, like, do it.
01:19:23: You have to check the code, but, like, general, I think, like, the general rule of thumb,
01:19:28: if the reference is a specific collider, then it's gonna be, you know, registering and
01:19:34: unregistering.
01:19:35: If you don't set a reference, then it's probably just, you know, listening to the event on
01:19:39: the slot.
01:19:41: Yeah.
01:19:42: You have to check the code.
01:19:45: In terms of how I'm doing, Nuki, I'm doing okay.
01:19:50: Slightly anxious, because I still have to pack up the rest of my stuff and shower and
01:19:54: shave and all that good things before I go to Seattle tomorrow.
01:19:58: But, you know, once I get out the door, I'm sure I'll be fine.
01:20:04: Yeah, I'm doing all right.
01:20:08: So next question is, oh, you should, you should be clicking.
01:20:14: Just skip the shower.
01:20:15: It's gonna be fine.
01:20:17: It's just gonna smell on the plane.
01:20:19: No, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no.
01:20:24: The interaction I want is with Google Docs suit.
01:20:27: I will make spreadsheets and RFF docs in Resonite.
01:20:29: Will that be brought in soon?
01:20:32: So there's definitely not soon.
01:20:35: So depends how we want to interact with it though, because like there's,
01:20:39: there's multiple ways to implement something like this.
01:20:42: The easiest is probably, you know, having sort of like a web browser,
01:20:47: like, you know, that you can kind of embed.
01:20:48: So it's just literally running Google Docs.
01:20:51: And you know, and then like, maybe it's like,
01:20:53: they're running like a video stream so other people can see it.
01:20:57: The other one is like, would be integrating with some kind of API.
01:21:00: So it actually uses, you know, Resonite native things to render.
01:21:02: That's a lot more potential, a lot more involved.
01:21:06: We don't have any specific plans to do that.
01:21:10: So if you want like, you know, more native support, like,
01:21:13: like that's not really on the road map right now, like in a specific way.
01:21:18: I was saying like, no, because things can happen,
01:21:21: but like, it's not really a thing that would be like an online radar.
01:21:25: It might be something, you know, maybe Prime has like more knowledge about,
01:21:28: because like it kind of deals with the business side a bit.
01:21:32: But I would say like the easiest one is just, you know, the web browser,
01:21:38: just rendered Google Docs instead of like, you know, implementing other things.
01:21:45: Nuke is like, what would be possible in these arrays and functions for implementation?
01:21:48: It depends, like, I mean, things are possible.
01:21:53: Like I usually like when people ask something is possible.
01:21:56: Usually the answer is yes.
01:21:58: But the question you should be asking is how much time does it take?
01:22:03: You know, because that's usually what it comes down to,
01:22:05: because some things they will need potentially months of work.
01:22:09: And the question is, you know, do we spend, if we have like,
01:22:15: say like a feature takes a whole year to implement,
01:22:19: you know, then it becomes like, you know,
01:22:21: are we investing a whole year into this one thing?
01:22:25: And if you have like multiple features and each one takes a year,
01:22:29: then we can obviously can do only one, you know, in the year.
01:22:31: So the question is like, you know, which one are you going to do?
01:22:33: Which one are you going to prioritize?
01:22:37: It's kind of, you know, what these things come down to is like,
01:22:39: you know, like, is this a thing like we should spend time on?
01:22:45: So possible, yes. Depends, you know, exactly how you want it to exist.
01:22:52: So Luke is asking, what is that shadow on Froox's mouth?
01:22:55: Not sure. I don't know which shadow it is.
01:22:59: That's your whiskers.
01:23:00: Oh yeah, they're casting a little bit thick shadow.
01:23:04: Oh, that makes me look like a person with that condition.
01:23:12: And next question goes to Zee36.
01:23:15: Eventually I want to make shooter games in the rezone.
01:23:17: My question is, will I be able to somehow program the bullet and grant physics?
01:23:22: Like bullet piercing, for example.
01:23:23: Because right now I don't see any way to make it pierce different materials.
01:23:30: One thing that's going to help is, you know, once we have like
01:23:33: rigid body physics integrated, because it's going to provide you a lot of
01:23:36: kind of cooling for handling a lot of interactions.
01:23:40: I don't exactly know what you mean by bullet piercing,
01:23:44: because like, isn't necessarily handled by physics?
01:23:48: Like, do you know what it means?
01:23:49: They, they're essentially, I think essentially, basically like a way to,
01:23:56: like for instance, if you shoot a raycast at a capsule, you know,
01:24:00: and you want to make it go out the other side of the capsule and like,
01:24:02: start from the surface of the other side of the capsule, you know,
01:24:05: based on where the ray hit on one side,
01:24:08: there's not really a way to cleanly do that because we can't really,
01:24:13: you know, like in this case, like, you know, like, you know,
01:24:16: actually one thing that's going to help with collections,
01:24:18: because you can do like a raycast, you know, get like all the hit points
01:24:23: and then like, you know, do another raycast from there.
01:24:26: So like, you know, once we have more APIs implemented for that,
01:24:30: like that's going to help with stuff like that.
01:24:33:
01:24:36: Was there some like, you know, if you have like grain physics and so on,
01:24:39: like once you can actually just stimulate like your body,
01:24:40: I think that's going to make a lot of things like way easier.
01:24:46: Next question is Alexbooter23.
01:24:49: Is there a way to set the quality for video for YouTube?
01:24:52: For example, Coruscantism mostly uses low quality.
01:24:54: So we can set the quality, but mostly you can just lower it.
01:24:58: It'll try to use like the highest one that's available that's kind of supported.
01:25:03: YouTube has been making some changes,
01:25:06: made it kind of look out some of the higher quality options.
01:25:10: Kind of need to like,
01:25:13: like there's like a way to get like a higher quality,
01:25:16: because like right now what Resonite uses is like it finds whichever is the highest quality
01:25:21: that has both the video stream and the audio stream.
01:25:25: And usually the way you get higher quality is you actually get those streams separately
01:25:30: and you kind of combine that.
01:25:32: The problem is with the video playback engine that you use,
01:25:36: so far I haven't found a good way to combine two streams together,
01:25:40: where I tell it like, you know, this is one, this is the other,
01:25:42: play them in sync.
01:25:45: If I find like a way to do that,
01:25:48: that will make it much easier to support higher quality options.
01:25:51: The other approach is, you know, you download the video
01:25:55: and use, you know, something like the MPEG to kind of combine the streams into one
01:25:59: and then play that.
01:26:00: The problem is you need to download the entire video.
01:26:02: So like if you want to play a video that's, you know, an hour long
01:26:08: and say that the file ends up being like, you know, half a gig,
01:26:13: you need to download a half a gig before you can even start playing the video,
01:26:17: versus currently it's actually streaming it.
01:26:19: So if you know, seek around and so on, like you don't need to wait too long
01:26:23: for the whole thing to download.
01:26:26: So there might be like a way, like, you know, we can provide like a button
01:26:29: where you press it and it's gonna download it or something,
01:26:32: maybe with some heather sticks, you know, based on the length of the video,
01:26:35: but ideally I would want to like, you know, find a way to kind of combine the streams
01:26:39: into like one, but I don't know if that's possible with the current, like,
01:26:42: video playback engine we use.
01:26:46: That kind of clears all the questions.
01:26:50: That was a lot of rapid fire questions.
01:26:55: Oh, no, there's one.
01:26:59: For the hardcore 3-bit options, a funny chunk option could be video audio player
01:27:02: using playback synchronizer, totally possible, right?
01:27:05: I mean, possible, yeah, but like, you, it is not gonna stay in sync,
01:27:08: and like, that would be really hard to kind of keep it in sync,
01:27:13: because like, the playback synchronizer, well, generally the video playback,
01:27:17: it has a bit of a slack, and the slack is too big for the, you know,
01:27:24: for audio to stay in sync with the video from that.
01:27:28: Like, the video, I think it's whole thing could be like, you know, two seconds,
01:27:32: the audio, you know, be two seconds of the video playback, which would be bad.
01:27:37: You, you need a synchronization to happen directly in the video player,
01:27:40: so it's kind of, you know, because you have like, in the audio and video streams,
01:27:44: you have like, extra time stamps, and the video playback engine can match those very closely,
01:27:49: so it matches.
01:27:52: VT Arxos is asking, has Froox had his daily ultimate or hot chocolate?
01:27:56: Actually, I haven't had hot chocolate today, I had one yesterday,
01:27:58: when I arrived, Cy, he made me like a, like a hot cocoa with the marshmallows.
01:28:05: Actually, no, it wasn't yesterday, it was two days ago.
01:28:10: And I might need to go buy stuff from some hot chocolate.
01:28:17: Fuzzy bipolar bear, have you been good boy, or will Santa be bringing you to the call?
01:28:22: I don't know, I mean, that's, that's not for me to judge.
01:28:29: It was the funny thing, though, like with the coal thing is because like in, in, in Czechia,
01:28:34: like we, like if, if you're north there, you get coal and potatoes, and I'm like, coal is kind of,
01:28:40: like, I don't know what to do with it, but like potatoes, I'm like, they're so delicious,
01:28:43: I'm like, I want some potatoes. I'll be, I'll be, I'll take some potatoes.
01:28:50: Potato. Potato, mash them, boil them, stick them in a stew.
01:28:56: Yummy.
01:29:02: Oh my God. Yes. And coal to cook them with. Well, I can cook them with coal, but it's kind of,
01:29:06: oh, actually, have you ever had like potatoes cooked in the ashes of a fire? Like you, you,
01:29:13: you have like, you know, bonfire or something. And then like once, once the fire is out,
01:29:17: but like the ashes are still hot, you take potatoes, you wrap them like in a tinfoil,
01:29:22: and you stack them like, you know, under the ash and they like cook like that. And then you,
01:29:27: you know, get them out and like you eat it, it's super delicious. That's some of the most delicious
01:29:34: I haven't had it since, but it was so tasty.
01:29:39: Yummy. Yummy. Yes. Potato on pizza. Oh, I had potato on pizza. There was like this pizza called
01:29:45: Patatha and it was surprisingly good. Like, like it just somehow works, but there's also like,
01:29:52: you know, the, the other potatoes on pizza in the form of fries. Uh, no. Well, uh,
01:30:02: I don't, I don't want to spawn it here because I'm in the US and I'll, I'll just like, you know,
01:30:07: it's just the, I'll get, I'll, I'll get deported for it. You get deported. I'll spawn the USA pizza
01:30:18: and like, this is going to be like, this is just going to come knocking down immediately.
01:30:24: You've spawned the pizza, you're now being deported.
01:30:29: So yes, sorry, sorry, I've made, actually, did you make this one or did somebody else make it?
01:30:34: Uh, I, I made this one.
01:30:36: Yeah, you made, you made cool particles. You should have them so the camera can see better
01:30:41: how they move around. This is pretty cool.
01:30:43: So, uh, is there like a, can you get like a wider view or something?
01:30:47: I like, uh, like a view of like over here, like on the floor.
01:30:51: Yeah, let me, uh, you know what, I'm gonna, I'm gonna be camera man, I'm just gonna go like,
01:30:57: you know, I used, uh, I used the, the, the new particle system to, I used the new particle
01:31:07: system to make like a confetti gun. So now I can be like, and they all like flutter down
01:31:12: and I can like shoot them and stuff.
01:31:14: Okay, hold on.
01:31:17: Let me, let me make it, there we go.
01:31:20: It's very cool. It looks so pretty.
01:31:22: You know what's funny? It's like, um, what's really funny about, what's really funny about
01:31:28: this one is like, when you shot it, like I thought it was lagging, but it's just the
01:31:33: particles, like, and I think like the collisions in this world, like for some reason, like
01:31:38: killed the particle system a fair bit.
01:31:40: Uh, but like, you know, I'm starting relatively smooth and the particles are just kind of
01:31:45: going lower and like, you know, they're handling all these collisions, but you actually, you
01:31:53: know, the particles, weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.
01:31:57: Oh gosh.
01:31:58: Yeah, like, oh, wow.
01:32:00: Oh my god, that's so many and I'm still, like, you know, like, I'm not dying.
01:32:06: There's one of the cool things I like about this system, it's just the general approach,
01:32:10: and this is the general approach, like, you know, we cannot use for designing our systems
01:32:13: is making them asynchronous, so like if the system itself is chugging, it's just the system
01:32:17: itself, like, you, it's not gonna make you chug, at least not nearly as much as you would
01:32:23: Um, I actually have another pretty neat one that I that I made.
01:32:27: Oh, sure, sure, sure.
01:32:28: It's this one, yeah.
01:32:29: Ooh, that's pretty, that's so glowy.
01:32:32: This is what inspired the confetti, was this glowy one.
01:32:35: Oh, it's pretty.
01:32:38: Ooh.
01:32:40: Yeah, people have been making a lot of cool stuff, like video particle systems.
01:32:45: The turbulence really makes it feel like when I shoot them, like near the ground, it's almost
01:32:49: like windy.
01:32:52: It just goes...
01:32:55: Oh.
01:32:56: I have a really, really, really neat one.
01:33:00: I think that would be really cool to show, actually.
01:33:03: Sure, sure, sure.
01:33:03: So I'm going to make the moon really big.
01:33:06: I'm going to put it out there.
01:33:08: Hold on.
01:33:09: Okay, and then I'll...
01:33:11: Let me switch this movie a bit.
01:33:12: There we go.
01:33:13: I'll spawn this one.
01:33:16: So this one is pretty cool because the particles will...
01:33:21: They have a really high exit velocity, but they have negative
01:33:24: drag and they have a really low bounce ratio.
01:33:27: So when they hit something, they'll go...
01:33:29: They'll hit it slowly and then speed up again.
01:33:32: So when I shoot at the moon...
01:33:35: Watch this.
01:33:36: Oh, that's...
01:33:37: Oh my God, that's so cool.
01:33:40: That's so cool.
01:33:45: This is like, oh my God.
01:33:47: It's like we're going to war or something.
01:33:49: Are you like this?
01:33:51: Yeah.
01:33:52: I shoot it like inside me.
01:33:54: I'm curious.
01:33:57: I shoot it like in here.
01:34:00:
01:34:01: That's so cool.
01:34:03: Oh my God.
01:34:04: What?
01:34:07: What?
01:34:12: That is so cool.
01:34:13:
01:34:13: I've lost all my productivity to this particle system.
01:34:17: It's so cool.
01:34:20: That is so cool.
01:34:22: We should like showcase these.
01:34:24: Like, these are the effects that would not be possible before.
01:34:28: Yeah, like there's just...
01:34:29: Oh, it's so cool.
01:34:32: Yeah, it is super neat.
01:34:34: I really like this.
01:34:35: Yeah, it's not like...
01:34:37: Like people have been posting on like, you know...
01:34:40: Oh my God, this one's insane.
01:34:43: Oh, this is cool.
01:34:49: There's all these like new things that are like super neat.
01:34:53: Oh my God.
01:34:56: So fucking neat.
01:34:58: There's one of the things I always like, whenever, you know, like at something new,
01:35:01: I always like look for like all the crazy stuff people are gonna make with it.
01:35:04: And like I've been seeing some stuff, you know, people posting on social media too.
01:35:09: Like, you know, the little super neat, like people have been making all kinds of like
01:35:17: super neat things.
01:35:17: That's like the one, the ripple one.
01:35:19: I don't think I have it saved, but the one that Orange posted as well.
01:35:22: Like where you kind of like walk around.
01:35:23: I think it's actually published world.
01:35:27: Whoa.
01:35:28: So crazy.
01:35:30: Oh, you spread the chat.
01:35:38: I don't like particle, like particle systems.
01:35:41: Like they, like one of my kind of favorite things, because it's like, it's very simple
01:35:46: in like principle, but like you can do so many things with just tweaking a bunch of
01:35:51: parameters.
01:35:52: Like you can do such a wide variety of effects.
01:35:54: And now, because we have full control of it, you can add, you know, more things.
01:35:59: And people can make like, you know, all kinds of cool effects that like you couldn't do
01:36:02: before.
01:36:04: It's, it's, it's, it's, I'm very excited.
01:36:08: So like, technically, technically, it's not, you know, like the sort of market is experimental
01:36:12: because like the, some of the conversions aren't working right.
01:36:16: But I kind of like, one of the reasons like when I put in systems so people can start,
01:36:19: you know, messing around with it and making really neat things.
01:36:23: It's so pretty.
01:36:25: You actually, you, you, could you talk about, like, because you mentioned, make sure I switch
01:36:31: the camera back to the normal one here.
01:36:32: There we go.
01:36:33: You mentioned that like you, you run some tests for a particle system on headless to
01:36:40: see, you know, how it performs with net nine versus, you know, mono that's in unity.
01:36:44: Could you talk about that a little bit more?
01:36:47: Oh yeah, sure.
01:36:47: So, um, I was, I was with, um, I was with my friend Ozzy, um, in, in, uh, one of their
01:36:56: worlds and it's a, it's this big like sandbox map.
01:36:58: You can like teleport everywhere.
01:37:00: There's a lot of like things in it that the map is like a big, you know, it's like a typical,
01:37:05: you know, mesh collider map.
01:37:07: And, um, we got into playing with the particle system and, you know, we realized that like
01:37:13: it simulates on the headless too, since it's actually within like the engine now, it actually
01:37:17: simulates on the headless.
01:37:20: Um, so we were like, huh, I wonder how, I wonder how like .NET 9 compares, you know,
01:37:26: with the particle system.
01:37:27: And so we, we made a simulation of about 4,500 particles and we tested, um, without collisions
01:37:36: on, um, the client was running at about two and a half ish milliseconds per frame of simulation
01:37:44: particle systems.
01:37:46: And the, the headless was running at about 230 microseconds, um, per frame.
01:37:52: So that's already pretty good.
01:37:55: Then we turned on collisions, uh, and the headless, you know, the headless jumps up
01:38:01: to like 7.2, seven and a half milliseconds or so per frame.
01:38:05: And then the client jumps up to 80 milliseconds per frame.
01:38:10: Uh, so that's across the board over a 10 times improvement in, uh, the, the simulation time
01:38:20: of the particle system.
01:38:21: So if you were excited for .NET 9, get a little bit more excited.
01:38:26: Like there's, I mean, it's kind of like in line with like a lot of the kind of very early
01:38:30: tests that I kind of did to like, you know, a while back where, um, a lot of the mild
01:38:36: heavy stuff, like, you know, it would be somewhere around like 10 times faster with like modern
01:38:42: .NETs compared to like Mono.
01:38:44: And particle systems and one of those things is very heavy math-based.
01:38:49: And it's also kind of original to, you know, take advantage of other like stuff in like
01:38:51: modern net, like it's using spans a lot to kind of access the buffers and so on and,
01:38:56: you know, kind of looping over those.
01:38:58: And so it is very exciting, you know, just kind of see like how it performs.
01:39:02: But the other thing, the other thing I think that helps it is like, you know, with the
01:39:04: collisions is the Bepu physics, because like right now, Bepu physics, but like, you know,
01:39:09: under Mono, it's kind of tripled a little bit, like, because it's really working to
01:39:14: take advantage, you know, of the modern one.
01:39:16: So just having it on time, I think that makes the collision itself also like, you know,
01:39:21: way faster.
01:39:23: Yeah, a lot of, a lot of Bepu and stuff is, it relies on what are called like, yeah, like
01:39:31: vector intrinsics and stuff, which are their special instructions in your CPU that let
01:39:37: you process multiple values of data at the same time in true parallel.
01:39:44: Like actually, even on a single core, you can process, you know, like four or eight,
01:39:48: you know, floating point numbers and stuff like at a time and Bepu makes heavy use of
01:39:52: that.
01:39:53: And that's why it's so fast.
01:39:54: But in Mono, we just don't have any of that.
01:39:58: It just doesn't know what to do with it.
01:40:02: I mean, it's also like one of the things, you know, people always like, whenever it
01:40:05: comes to performance, it's always like multi-threading, multi-threading.
01:40:08: But there is, like one thing I keep telling people, there's lots of ways you can improve
01:40:12: performance.
01:40:13: And oftentimes you want to look how can you improve performance on a single thread, like,
01:40:17: you know, before you can get like the multi-threading.
01:40:19: Because with multi-threading, you have like, you know, more kind of synchronization you
01:40:22: need to do and so on.
01:40:23: And not all types will work very well.
01:40:26: But for the particle system, that's one of those, you know, that takes advantage of
01:40:29: because it maximizes, you know, how much we do on a single core.
01:40:33: Because on a single core, it processes multiple, you know, multiple values at the same time.
01:40:41: But also we have multiple cores doing that.
01:40:42: So you get like, you know, you get like way more kind of out of that.
01:40:47: So it's like very exciting.
01:40:48: Like I think like the modern net is also like good at like doing sort of auto vectorization.
01:40:52: So I think even some of the PhotonDust stuff, like it just automatically gets like vectorized.
01:40:58: Yeah, especially, especially if you're using spans because spans in more recent .NETs are
01:41:04: very heavily incentivized for like vectorization when you do optimization or operations on them.
01:41:10: Yeah, that's one of the reasons like, like, like for any like newer stuff, like tend to
01:41:16: use like a lot of span stuff.
01:41:18: It's like just like way more performance and like with the current like model, like we're
01:41:21: not really like, you know, we're not like fully.
01:41:28: We're not really like, what's the word?
01:41:32: We're not fully like, you know, taking advantage of it, but it's kind of being done in preparation
01:41:35: because we know we, we are making the move.
01:41:41: Like, you know, with the particle system is actually, wait, I forgot what I was going
01:41:46: to say with it.
01:41:51: I can't forget.
01:41:54: Oh, I remember.
01:41:55: So like one of the things we also can do once we do switch unit to the nine, we can actually
01:42:00: also add, you know, custom vectorization, use like, you know, the SMID interns X, you
01:42:06: know, to add like extra, even more performance because we cannot use those features right
01:42:11: now because they're not available in mono.
01:42:13: So once we do make a switch, we can squeeze out even more performance out of stuff.
01:42:18: Yeah.
01:42:18: Cause, cause we use our, we use kind of like our own implementation of stuff like vector
01:42:22: three and vector four, like float three, float four and whatever.
01:42:26: Same part because like the, the actual vector is the one, like they're not really vectorized
01:42:30: with the version of mono.
01:42:31: So like they're, they're slower and don't have everything we need.
01:42:36: Anyway, it's a, it's a very exciting.
01:42:39: So the next question we have is from Zankry Dragon.
01:42:44: Oh, we actually, I think we answered it wrong.
01:42:45: Have you ever had potato and pizza?
01:42:47:
01:42:48: It's surprisingly good.
01:42:49: Like, like if it's, if it's not the USA pizza, it can be good.
01:42:54: The next one is DJ Prodigy Hunters.
01:42:58: Do you have plans to add more badges?
01:43:02: Always.
01:43:04: Always more badges.
01:43:07: I'm sure it's like one of those, there isn't, I think it's just, you know, more badges.
01:43:12: We're actually not had like some talks about like, you know, more badges for more things,
01:43:15: you know, it's just so people can have more badges, you know, this needs to be more.
01:43:20: People like their badges and primates, you know, he needs more.
01:43:26: More.
01:43:27: Sometimes it's just kind of question of time because like, I know there's like some things
01:43:30: I would want to get us badges for, but like we haven't had to bond with like, you know,
01:43:34: like those, but I feel that's one of the parts of Resonite kind of culture in a way.
01:43:41: So yes, more badges.
01:43:43: Next question, AlexBoot23, can FM pack be used for conversion for a high quality?
01:43:49: So I talked about it earlier and the problem with that one is, yes, you can use it for
01:43:54: conversion.
01:43:56: The problem is you have to download the whole video first right now, at least like, you
01:43:59: know, to my knowledge.
01:44:03: And, you know, with that it's like, if you, you know, if you're watching a long video,
01:44:10: that might take a while before the video is playable.
01:44:12: So this is a possibility, but there's a downside to it.
01:44:15: What we do need to happen is, you know, make the conversion kind of happen on the fly as
01:44:19: it's being streamed.
01:44:20: And right now I haven't found an approach that would work yet.
01:44:27: Next question from Jack the Fox author.
01:44:29: Uh, oh, so we got the raid.
01:44:32: Oh, I cannot read that one either.
01:44:35: I think it says Griffin Phyllis.
01:44:38: Let me see.
01:44:39: No.
01:44:40: Yes.
01:44:41: No.
01:44:42: Uh, that says Griffin Phyllis.
01:44:43: Yes, that's good.
01:44:44: Thank you so much for the raid.
01:44:46: There's a lot of people.
01:44:47: Hello, everyone.
01:44:49: Hello.
01:44:50: Hello, there's a lot of people.
01:44:52: For everyone coming in, this is The Resonance.
01:44:55: It's sort of like, you know, a combination of office hours where you can ask any questions
01:44:59: whether it's technical, you know, how the platform is going, you know, it's fills of it,
01:45:05: it's past, future, whatever you want to ask.
01:45:07: Just make sure to add a question mark at the end of, you know, at the end of your question,
01:45:12: the way it pops up on our thing.
01:45:14: We also do like a little bit of a kind of round walls, you know, kind of like going off
01:45:17: tangent and giving more high-level view, you know, of like a Resonite and its development,
01:45:22: where it's going, you know, where it's been and stuff like that.
01:45:27: So with that, the next question is, we're still going to be, we only have like 15 minutes
01:45:32: left, so there's probably not super much more time, you know, for questions.
01:45:35: We should probably close questions at this point, honestly.
01:45:39: I mean, there's only like, I don't want to select two, so like, as long as, you know,
01:45:42: there's time, like we'll try to answer as many as we can.
01:45:46: I just want to give people, like, you know, their warning, depending on the questions,
01:45:50: we might not be able to get to our question at this time, depending on how many pop in.
01:45:55: But the next one is Chuck the Foxhooter is asking,
01:45:59: Quoting me if I'm wrong, but all the Resonite is built around procedural meshes,
01:46:02: and those will be benefited heavily from their time as well.
01:46:05: I think so, I think they should, like, you know, benefit.
01:46:08: I mean, in general, .NET 9 should make everything faster, like, overall.
01:46:14: So it kind of depends on which part, like, I don't know if there's, like, any specific testing
01:46:17: with procedural meshes, but, like, I do expect to get, like, speed up as well.
01:46:21: I imagine that, so, probably just from the raw, you know,
01:46:26: naive, like, number crunching, you know, some auto-vectorization, it would help.
01:46:30: But I think what would probably really help more is if we, like, actually specifically used,
01:46:34: like, system numerics primitives to generate the assets if we really wanted to make them speed up.
01:46:40: But I think it'll help no matter what.
01:46:43: It's one of those things, like, you have to benchmark it, so, like,
01:46:45: and we don't have any specific benchmarks, because, like, it might,
01:46:48: like, when I did, like, some testing, like, the, even, like, the Fold3, like,
01:46:51: we have, like, they actually got vectorized for some things, so, like,
01:46:56: it might just, like, you know, well, it's one of those, like,
01:46:59: with performance, you have to benchmark things.
01:47:01: It's kind of hard to speculate about them.
01:47:03: Yeah.
01:47:05: Also procedural, in general, yeah.
01:47:07: It's gonna depend.
01:47:08: You can just, like, say, procedural texture, you know, like, you can,
01:47:11: you can, like, you know, just kind of also, like,
01:47:14: because it's literally just, like, looping over buffers,
01:47:17: so that can speed things up, but it's gonna depend on one specific case.
01:47:23: Next question is Oran Moongclaw.
01:47:25: What is the biggest driver behind memory usage on the headless?
01:47:28: I've noticed it can be quite high if you go to some people in a session.
01:47:32: So it kind of depends.
01:47:33: I think we have to kind of profile things to see, like, you know,
01:47:35: where the memory is going.
01:47:38: One of the things that can take a lot of memory are the assets in the world.
01:47:41: So, like, you know, some textures, meshes, and so on.
01:47:44: Sometimes they only need to be loaded into the memory,
01:47:47: you know, for certain kind of purposes.
01:47:52: But there's just kind of speculation.
01:47:54: Like, we would have to, like, really profile specific cases and see, you know,
01:47:58: what is using the message, because it's kind of, it's hard.
01:48:03: Like, you know, like I mentioned earlier, like, with performance,
01:48:05: you don't want to speculate.
01:48:06: Like, there's been a lot of times in the past where I was like, you know,
01:48:10: this is not performing as well.
01:48:11: And I was like, I think it's happening because of this reason.
01:48:14: And they're actually using the tools to, like, measure.
01:48:17: And I'm like, oh, it's something completely else.
01:48:20: And then I know, fix that, and it's passed.
01:48:22: And the thing I thought it was, like, this, it wasn't at all.
01:48:26: So generally with performance, profile, and, you know,
01:48:31: and I haven't done like any profiling recently on that one.
01:48:34: So like, I can't really say super much in detail.
01:48:37: Yeah, and sometimes, like, performance increases, they can be,
01:48:42: they can be, they can be kind of funny sometimes.
01:48:46: Because I was like, well, there's a certain function I'm writing,
01:48:50: in one of my projects, you know, it's not running so fast, you know,
01:48:54: with all my, with all my span slicing, like, going on.
01:48:57: And so I was like, okay, well, maybe I'll just, like, I just tried using,
01:49:00: you know, like, pointers instead.
01:49:03: Like, I was like, okay, I'll use, I'll like, encode this thing,
01:49:06: and I'll just point at the pointer directly.
01:49:08: And it turned out to actually be slower.
01:49:10: And what sped it up was actually putting the span slicing in different functions
01:49:15: and marking them as aggressive inline, and that made it faster.
01:49:19: So it can be just these really wacky things
01:49:21: that you don't even think of that make the thing faster.
01:49:25: Compilers can, like, they're very complex, and the rules they know,
01:49:28: they can apply, they can be complex.
01:49:30: And sometimes, like, if we're getting it really down the wire,
01:49:33: we're optimizing, a lot of it ends up being, you know,
01:49:36: doing a bunch of A-B testing and saying,
01:49:38: is this thing faster, or is this thing faster?
01:49:40: But it also gets more complicated once we kind of use some things,
01:49:43: kind of, because you can also, you know, we can optimize,
01:49:46: you know, for example, single functions, single operation.
01:49:49: Then if you have like multiple things running,
01:49:51: because they all share the resources,
01:49:53: you actually can have some other things,
01:49:56: slowing other things down and you're kind of triggering,
01:49:58: like some kind of weird behaviors.
01:50:00: And you can get like, you know, these weird kind of cascading issues
01:50:03: where something runs fine in isolation.
01:50:08: But once you kind of combine it with some other functionality,
01:50:10: it starts showing up, you know, some performance issues.
01:50:13: Or, you know, it's not even a performance issue.
01:50:15: It's just kind of like, ends up doing a lot.
01:50:19: One of the examples I actually like to use is, you know,
01:50:21: consider the, you know, find child in hierarchy node,
01:50:25: which lets you find, you know, a slot with a particular name
01:50:28: in this hierarchy and say, like, you use it every frame.
01:50:34: And it's actually been a thing, like,
01:50:35: because I think we actually got a report on this
01:50:37: where somebody was like, it runs fine in an empty world,
01:50:41: but in a complex world, it takes a lot.
01:50:44: And we're like, yes, it's inevitable,
01:50:49: but when it's looking for, like, you know,
01:50:52: a sliver particle name, it needs to search until it finds it.
01:50:56: And if your world has, you know,
01:50:58: if your world has, like, you know, say 5,000 slots,
01:51:01: it only needs to search 5,000 slots.
01:51:03: But if your world has half a million,
01:51:07: then it needs to search to half a million,
01:51:08: like, assuming that it doesn't exist,
01:51:11: it doesn't find it, you know, sooner than that.
01:51:14: So there's a lot of things like that, you know,
01:51:16: they're gonna scale depending on the context
01:51:19: and the data you run them with.
01:51:22: So sometimes, you know, if you test something in isolation,
01:51:25: you might not discover, you know, some problems
01:51:27: until you use it in a different context,
01:51:29: and that's a thing that happens a lot too.
01:51:32: And it's usually why I say, like, you know,
01:51:34: measurements is very complex,
01:51:36: and usually there's not a single, you know,
01:51:38: silver bullet for things,
01:51:40: and there's not a single thing that would fix everything.
01:51:43: And there's usually not even a single cause,
01:51:46: for performance being bad.
01:51:47: It tends to be lots and lots of things.
01:51:51: But the problem is that it kind of makes it hard to explain
01:51:54: because it's very fuzzy,
01:51:57: and usually you have to do a lot of profiling to measure things
01:52:01: and see where the performance is actually going,
01:52:04: and doing that takes time and effort.
01:52:07: So it's a pretty kind of complex thing to talk about
01:52:11: and to work with.
01:52:13: Yep.
01:52:16: We've got about eight minutes left,
01:52:18: so give us a few more questions.
01:52:20: I think we could field a few more.
01:52:23: I don't know, we can talk about, you know,
01:52:26: it's going to be holidays in the upcoming days,
01:52:28: so I hope everyone is looking forward to
01:52:33: getting anything cool for Christmas.
01:52:35: Do you have any plans for New Year's?
01:52:39: I mean, I know what you're doing,
01:52:40: but I'm just asking the challenge.
01:52:51: There's a bunch of things.
01:52:52: Oh, we're going to be watching the Sonic movie as well.
01:52:55: The new one with K.N.O.V. as a shadow.
01:52:58: I know, like, there's a bunch of, like, Sonic fans.
01:53:00: I have, like, my Sonic socks and shirt and underwear.
01:53:09: Sonic'd up to the teeth.
01:53:11: Yes.
01:53:14: And pants.
01:53:16: And hat.
01:53:17: Might end up a little bit hot.
01:53:20: Oh man, I'm gonna have to fit my, um...
01:53:23: It's Sonic, uh, Sonic, uh, the arm warmers.
01:53:26: Yeah, Sonic, Sonic arm warmers.
01:53:29: I'm gonna have to bring my arm warmers.
01:53:30: I'm gonna have to bring my...
01:53:31: I'm actually bringing my, my whole PC with me.
01:53:34: Oh my.
01:53:36: I have my laptop.
01:53:37: But, like, my, my laptop, my laptop is more powerful than my desk, though.
01:53:40: I'm, like, running on it right now.
01:53:41: I don't really like it, it's, it's been serving me well.
01:53:44: Yeah, you too.
01:53:48: So...
01:53:49: Uh, I've got a fuzzy bipolar saying,
01:53:53: I have two Czech friends visiting over for Xmas.
01:53:57: Uh, I'm going to cook them a full traditional Swedish Xmas dinner.
01:54:01: Ooh, what is actually in Swedish Xmas dinner?
01:54:04: Like, I don't think I've, um, I don't think I've, uh, heard of one before.
01:54:10: But that's kind of cool.
01:54:11: People from Czech.
01:54:17: Wow.
01:54:21: You've been, you've been checked in.
01:54:23: I've been checked in, I checked in.
01:54:25: Oh my God, it was funny thing.
01:54:26: I was, I was going, um, I was going, you know, through the customs and they'd
01:54:30: like, usually ask you a bunch of questions.
01:54:32: And actually this time I got a fair bit more questions.
01:54:35: And I told the immigration guy about Resonite because he was like,
01:54:39: he was like, you know, what do you do for work?
01:54:40: And I'm like, you know, like I have like, you know, I have a startup, you know,
01:54:43: like I'm a software developer.
01:54:44: And then he's like, you know, what do you do?
01:54:45: Like, you know, what does a startup do?
01:54:47: And we're like, oh, we're developing like virtual reality software called
01:54:50: Resonite.
01:54:51: So I was like, hmm, can cross off that off my list.
01:54:54: You know, like I, I told one, one time, one time I was going, when I was going
01:54:59: for MFF, like I think two years back, I was going through immigration and I
01:55:04: was like kind of expecting, you know, kind of bunch of questions as well,
01:55:07: because I was in the US earlier as well.
01:55:10: Like earlier that year and like twice.
01:55:14: And I was kind of expecting to kind of ask about that.
01:55:17: You know, I get to the counter and I'm just, you know, hello.
01:55:20: And like the guy's like, are you here for the first thing?
01:55:23: And I'm like, yes.
01:55:24: And then he asked me, are you a furry?
01:55:27: And I'm like, yes.
01:55:29: And he asked me more questions and he's like, you know, okay.
01:55:32: You have a good time.
01:55:33: And I'm like, never in my life, I thought I would get asked, are you a furry by
01:55:38: like US immigration, you know, like customs, like officer.
01:55:43: Like, I think, I think like, you know, like it kind of started like, well, I
01:55:48: think you can ask me because I was just not expecting that at all.
01:55:54: So that's pretty good.
01:55:56: Now I wonder if it's like, oh, somewhere like in US government records is like,
01:56:00: you know, a record, like I'm a furry, that's official.
01:56:12: It was, it was fun.
01:56:14: Now I go to tell them about the Resonite.
01:56:17: Yeah.
01:56:19: Next one is Altramando La Garcia.
01:56:23: This is great questions.
01:56:24: Will you learn how to do a backflip for when Resonite hits 10,000 floors on Twitch?
01:56:29: I probably wouldn't because I would probably hurt myself.
01:56:36: Like I'm, I'm, I'm very, I'm very clumsy.
01:56:39: So like, even like, you know, when I'm just around, like I tend to like hit corners of
01:56:44: everything and stub my toes all the time.
01:56:46: Like Glitch wants to wrap me in bubble wrap.
01:56:48: So like, I don't think that would be a good idea.
01:56:51: It could be something else.
01:56:53: Most of a programmer's dexterity is in their fingers, not the rest of their body.
01:56:58: I, um, also thank you for a subscription, Hornby.
01:57:00: Maybe I'll do something like, you know, I'll lead to like the hottest chip thing or whatever,
01:57:07: maybe.
01:57:09: I don't know.
01:57:11: Come up with like a different challenge, like that doesn't involve the permanent,
01:57:16: potential permanent injury, and I'll see.
01:57:20:
01:57:21: Nuki-kun, what are you here for?
01:57:22: We're doing this at the F.U.A.R.I. Convention.
01:57:24: Yeah, Bixterism and Convention are when you're good.
01:57:26: Well, the thing that was also fun about that one is like,
01:57:30: he was the one who asked it, like, I didn't even tell him ethical,
01:57:33: he just said hello, and he's like, are you here for the F.U.A.R.I. thing?
01:57:37: I think it's because like there's so many people like, you know, coming over and I guess like,
01:57:40: you know, like, look like I go to one, so like, you just started with that.
01:57:46: Ah, Snooper.
01:57:46: Snooper's asking, where are we?
01:57:47: I want to connect Frooxius to go to the store.
01:57:51: In two minutes.
01:57:53: I'm actually staying at Snooper's place.
01:57:55: Also, hello Snooper.
01:57:58: See you tomorrow, Snooper.
01:58:03: I don't know what is coming through.
01:58:05: Is it coming through?
01:58:06: Nah, it's not.
01:58:07: No.
01:58:07: It's coming through!
01:58:11: Do you want to come up to say hi?
01:58:17: So, next one.
01:58:19: Oh, this might be a quick one.
01:58:20: So, Griffin Foe is, hmm.
01:58:21: I'll heard from some friends where there's an idea saying performance improvement that
01:58:24: will help with parameters pulling out another part of Unity, which is unable to use something
01:58:27: called Mono.
01:58:27: I think I remember that, right?
01:58:29: Along with this and custom shader system, we're also doing some performance improvements.
01:58:32: I don't think we have time to answer that one.
01:58:37: Um, new .NET is really fast.
01:58:40: There you go.
01:58:40: It doesn't know if it's going to help.
01:58:41: There's a separate video on our YouTube channel, so I recommend checking that one.
01:58:45: We covered it in one of the previous ones.
01:58:48: What does Cyro do on the team again?
01:58:51: I give Froox a lot of headaches and PRs.
01:58:53: Yes, uh, Cyro's our engineering intern.
01:58:56: Actually, well, now you're graduated.
01:59:00: I'm, I'm, I'm a little graduated.
01:59:01: We'll figure out the details at some point.
01:59:03: Yeah, we forgot the details, but yeah, Cyro's working on the engineering team, so he's like
01:59:07: working a lot of the code stuff and so on.
01:59:09: Um, anyway, with that, like we have like literally the last minute left, so, um, thank
01:59:13: you everyone, you know, for your questions.
01:59:15: Like, I think, you know, for supporting Resonite.
01:59:18: Thank you for watching, you know, thank you for asking questions, um, thank you for, you
01:59:22: know, making cool things, making super cool stuff with the particle system.
01:59:25: I hope that, oh my gosh, you blinded the audience, um, uh, and also my train of thought.
01:59:34: I hope like, you know, people have been like having a lot of fun with the new system.
01:59:37: There's like, uh, there's a lot more kind of cool stuff coming in.
01:59:41: Um, so, and I hope everyone is going to have like, you know, different holidays and like
01:59:45: new years.
01:59:46: Let's say like we can do one before new years.
01:59:49: I don't know how it works out.
01:59:50: We'll figure stuff out.
01:59:52: There might be one, there might not be one.
01:59:53: So we'll see how that works out.
01:59:55: But anyway, thank you very much for watching.
01:59:58: Uh, we'll see you.
01:59:59: I hope like, you know, I hope you have fun holidays, have kind of cool presents, cool
02:00:03: stuff, you know, and if we don't see you by then have a good new year as well.
02:00:06: So thank you very much for watching and we'll see you next time, which might be maybe this
02:00:11: year or maybe next year.
02:00:20: Good bye, good bye.
02:00:29: I can't find the stream button.