The Resonance/2024-12-22/Transcript

From Resonite Wiki

This is a transcript of The Resonance from 2024 December 22.

This transcript is auto-generated from YouTube using Whisper. There may be missing information or inaccuracies reflected in it, but it is better to have searchable text in general than an unsearchable audio or video. It is heavily encouraged to verify any information from the source using the provided timestamps.

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.