This is a transcript of The Resonance from 2025 January 26.
0:00: can I record as well there we go can I post
0:06: announcements post post
0:12: this and post the live
0:21: stream there we go hello hello let me also make sure I have it
0:28: open to make sure everything is going okay oh we got us the sprinkles hello
0:36: hello Jack so good people are in the in the chat uh let's
0:46: see make sure I open my
0:51: stream oh no I can he myself there we go hello everyone hello
0:58: Grand people are SL trickling into into the into the
1:03: stream hello hello can you hear our fine so going okay can you hear me am
1:12: I understandable aell I just had a
1:19: question about uh um Pine uple
1:30: yes Jack Jack the fox da is asking have you unliked the jet properly yeah kind of it's kind of weird because like I
1:37: like my sleep was like weird like like day I could back and like then it just kind of snapped back into my normal kind
1:44: of sleeping schedule which is a l for the US once I wake up in the evening and go to sleep like in the early
1:51: like actually what's it called before afternoon what's what's the time period
1:58: between like morning and afternoon between morning and afternoon
2:04: yeah um like we have a word in it in check
2:10: that sort of translates as like until
2:15: noon until noon until noon I guess I I
2:21: don't know if I if I know a word maybe there's like some colloquialisms around the us but like I think that I've always
2:29: just called it either morning or afternoon but is the thing it's it's
2:34: time that's before the noon so it cannot be afternoon but also it's too late for to
2:41: for it to be morning it's like you know like 10 11 a.m. and like I wouldn't say
2:46: 10 11 a.m. like morning that's like 7 a.m. maybe
2:51: 8 I don't know you need you need you need word for that we need a lot of
2:57: words for lot of oh oh my God anyway hello
3:04: everyone uh so we got a bunch of people kind of in in the chat so we should be able to formally start um so hello
3:12: everyone uh welcome uh to the resonance uh we're
3:17: back after like two week hius uh the last the previous one like I kind of
3:22: skipped it because we went to visit uh snow call me Falls in Washington where like a really pretty and other one I was
3:29: FC at for confusion uh so I wasn't available but now I'm back home and
3:35: we're going to be doing these like a lot more so hello everyone and for those of you who don't know this is sort of a
3:40: combination of like my office hours so you can ask you know any questions about resonite uh you know whatever like
3:47: whether it's a technical one whether it's like you know about the platform about its past about its future its
3:52: philosophy or even just generally know the team and like what whatever thing you would like to know will try to
3:58: answer to the best of our atic some questions we might PT over like you know just give generic answer and kind
4:04: of PT it over uh to FR office hours like for example if it's anything to do specifically with moderation uh they
4:10: host office hours before this one um and some of you like you know you're
4:16: probably coming from there as well so we might like you know suggest to kind of ask those like in the different ones but
4:21: we'll try to answer like you know what we can um I also have amus and I have
4:27: CRA here with me um hello it's part of like engineering theme uh and uh in
4:35: order to like you know uh if you want to ask any questions make sure to put a question mark in the chat uh in your
4:41: question that way it kind of Pops another thing in here and we make sure you know we don't miss it uh some of the
4:47: questions we also might um sort of like a mix you know it's like the question and answers but also we might go a
4:54: little bit in depth and explain you know some other like further kind of philosophy plans go
5:00: you know of resonite and how this how the different features will shape its future and how they kind of you know
5:06: going to be constructed so some of them might end up like turning into these like more longer kind of explanations
5:12: rumbles and deep Dives uh you could about the visually run this for about 2 hours so there like you know plenty of
5:17: time for lots of questions lots of like in depth explanations um uh with that uh I think
5:24: it should be kind of everything so we should be ready to restart it we already got a bunch of questions um popping up
5:31: um so we should probably just cut into those uh right away so let me scroll up
5:37: because there's a bunch uh there's the one from Che Focus have you UNL the jet properly yes um I'm kind of just back to
5:46: my us sleeping schedule which kind of works for me uh check the for saying
5:51: noon I guess well isn't noon like the 12: p.m. that's like the exact point so we have like noon then we have afternoon
5:59: which happens after the noon but there's a period between morning and the noon
6:05: that's like like the we have a Warford in check that like like you if you were to
6:11: translate it literally it's almost something like until noon or before
6:18: noon it's it's kind of like one of those things like where I kind of missed having a good de and for that that kind
6:25: of has the same meaning um anyway the next question is from dce sprinkles I
6:31: have two parter from mosos it's long what is the future design scope of the protox execution context if more
6:38: contexts get added to Perle then only propos St machine context will there be extensions of the execution Contex or
6:44: will they be separate so extion conexs like there are sort of like different ways to use Proto because Proto is what
6:51: it is at the core it is a node based programming language uh and knows that
6:56: can you know represent anything right now there's like one context you can really use which is the execution
7:02: context and essentially um what it does it makes you know whatever it executes
7:09: operations you know as it kind of goes and can you know make do stuff like you know read values from the world modify
7:16: values in the world you know trigger valious like um actions to happen and so on and it's kind of like the primary
7:23: context um there's going to be a lot more context in the future and they have like like you know ways to interact with
7:29: each other other um whether they're going to be extensions of the execution context or not that's going to depend on
7:35: a specific context because they can be used for lots of different things for example uh one of the context that's
7:40: going to come out some point in the future is Shader context uh once we switch away from
7:46: Unity you will be able to use perlux to make shaders and that instead of let you know
7:53: just executing directly on the CPU it will actually be compiled into a Shader
7:58: that then gets to the GPU so it's going to operate a bit differently um it's also not going to be
8:05: extension of the execution context because it cannot be uh because you cannot really you know do the same kind of operations you do to the world and to
8:12: the scene uh on the GPU is a very kind of constrainted type of
8:18: context so that one is not going to be an extension uh however the state
8:23: machine context that's actually going to interact with execution context because what that one will do uh um it'll
8:31: provide a way you know like where you have like a node that represents your state and you can flow the state from
8:36: one world to another and that noes can actually trigger things to happen in the execution context so for example if we
8:43: have like you know node that represents this state that you know your system is in you can be getting like impulses that
8:49: say when the when the state you know is first transitioned into one is transitioned out of and then like you
8:56: know maybe every update you get like um uh you get you know an Impulse saying
9:01: like this state is currently active you know do whatever update thing and then you also have like you know values you
9:06: can like read out is this context currently active you can drive things you know or use it as part of equations
9:13: so there's going to be context that do interative execution context there's going to be contexts which do not um
9:20: there's a bunch more as well uh the actually the um there's even more even
9:26: right now because the context you're typically using is the FRS engine execution context and is actually an
9:33: extension of a more basic execution context because proof flux uh is
9:39: developed as sort of a separate Library so it can technically be used outside of resonite outside of FRS engine uh and
9:46: there's a bunch of things like you know Core math operations they have no dependence on FRS engine they don't care
9:52: about it so this just basic execution context but then there's a bunch of nodes you know say something like that
9:58: duplicate slots that requires the FRS engine context because they operate
10:05: within the FRS Engine with specific s of FRS engion so they use a context as an
10:10: extension of the execution context um there's a lot more like into that and you could maybe like you know
10:16: sometimes also get like deeper into this but overall you know there's going to be a bunch of them uh there's uh in some of
10:23: the previous uh uh previous episodes we talked about you know uh future prolex
10:30: and I covered stuff like the DSP context which is going to allow uh you know for
10:35: processing of like audio and textures and meshes instead of like you know generating them so I do recommend giving
10:43: that video a watch if you're interested in more it's on our YouTube and I kind of go like into details you know with
10:48: some drawings as well and it's an example of another context that you like you'll be able to use and it's another
10:54: one that's not going to be an extension of the execution context because um say if you're doing real time audio
11:00: processing you're not really interacting with the scene and doing that would be kind of complicated because you have to
11:05: like you know keep synchronizing and it would like get really poor performance wise um so that's like running on its
11:12: own like you know thread that's on the audio thread um and it's its own separate
11:18: context um it's going to be like a whole bunch so um you know keep to and do give
11:25: that video a watch if you're interested anymore uh the next next question is also from Dusty sprinkles part two from
11:31: Yos all the action nodes requiring F engine context are just duplicating slow I talk about that one I haven't even
11:37: read the question at the time are implicitly execution contexts which would make using the M execution context
11:42: impossible yet having State machine pulls one of these action noes and a state change would be a pretty useful
11:48: ability how would this be handled and that's pretty much like you know what I covered like earlier is like the the
11:54: different context they can actually interact with each other like it kind of gets even more comp because like say you
12:00: have the DSP context and that's you know sort of it changes how the nodes going to behave that instead of like actions
12:06: it sort of builds like you know sequence of like operations that happen to audio buffers
12:12: but some of the nodes they might have you know if you want to like do some if
12:18: you want to literally run like a for Loop through like you know a buffer of audio samples that DSP context node
12:24: might actually trigger an execution context piece it wouldn't be engine execution it would be
12:30: just the basic one which means you can only do stuff you know like Core math operations and some other stuff but it
12:36: would let you whenever that audio buffer needs to be processed within the DSP context the DSP context node triggers
12:44: execution context to do whatever processing you want to the data and then continues along the DSP context so it's
12:52: pretty much you know it's very flexible mechanism and we can you know build whatever we need for these to interact
12:58: there's actually one more that want to mention uh one of the recent episodes I also talked about the tering system and
13:04: the tering system is going to introduce yet another context uh a way to use Proto fls to Define how your terrain
13:11: Works um this also been separated into another video that's available on our
13:16: Rono YouTube channel so give that one and watch as well if you're like interested in more details
13:23: there uh next question is from uh Navy 3001 will doet 9 help with loading like
13:30: AKA spawning items I believe it will help um I don't think it's going to
13:36: solve it like completely uh in general like you know any kind of like update like it's not going to solve 100% of the
13:41: problems but I do expect it's going to have like a significant Improvement uh the problem is you know a
13:48: lot of time like when you have some when you have lagog um it's usually there's like
13:55: multiple sources for it so what the do net 9 will help with uh there's like two main ones one is
14:01: like the actual code that needs to execute to decode the item you know process it and so on uh net 9 it makes
14:09: um it makes this code run faster which means like if any time that is being spent like you know actually processing
14:16: the item like decoding it and so on on the F engine side that's going to happen faster uh which means it's going to um
14:25: is actually going to speed speed up that part of it the other part is going to help it significantly uh one of the
14:32: issues is like because we're running within Unity Unity has a really poor garbage collector uh which means if we
14:39: suddenly allocate load of memory for example to load item that can trigger the garbage collector to run full
14:46: collections which means it essentially pauses the process to like you know run a collection and it causes you know some
14:51: of the stutter some of the laging um this is something that's generally called you know memory pressure it's
14:57: like when you're allocating memory uh which sort of put pressure on the
15:03: garbage collector and because the garbage collector is very unperformed that contributes to the
15:11: stutters and it contributes to the lag with net 9 all of the code will be running uh with way better garbage
15:18: collector which is going to help reduce additional source of stutters now there's some other um things that
15:25: contribute to the like one of them is for example when we upload like when you load an item and for example it has
15:30: meshes those meshes need to be uploaded to the GPU memory right now that is a
15:36: synchronous operation uh it has to be synchronized with the main unit the thread which means it's essentially
15:42: going to L everything until it's finish uploading that which means if you have like really complex meshes with lots of
15:48: PL shapes lots of geometry that's going to cause bigger lag than smaller ones we do have a system for um textures where
15:57: if you're loading lots of textures is actually the cost is amortized over time
16:02: which means uh it uses a mechanism called time slicing where each frame we
16:07: upload a small chunk of the texture but if we like you know take too long we wait until the next frame which means
16:14: it's going to take you know several frames to fully load the texture but you're not lagging as much um we'd like
16:19: to implement something similar for meshes it's a little bit tricky given like how unitive Works um I believe it's
16:26: possible uh it just requires some d doing but also it's a thing where net KN
16:32: is not going to help with that with that part of lag uh because that's something
16:37: you know that's part this a limitation of the you know unity in the graphics API uh and that requires us to do more
16:45: specific work to kind of you know get around that limitation and you know remove that part of the lag so in short
16:53: it's going to I believe it's going to help I don't think it's going to solve it like you know in 100% of the cases
16:58: but there's also some other things we can do to improve uh improve that Alex subscriber Prime hello thank
17:06: you thank you very much for subscription like I think um oh my gosh sorry um I
17:13: think what also will help specifically with like loading items will be having
17:19: our own like binary format um because right now we used uh we use uh Newton
17:26: soft Json I believe to serialize the items into Bon which is a binary
17:32: representation of Json and then we compress that using stuff like brly or sometimes we use lz4
17:39: if like the world crashes or whatever um but having our own format that's like
17:45: tailored to work with our data model well um and isn't powered by Newton soft
17:51: because Newton soft Json is a little bit memory efficient compared to like system text Json but system text Json can't do
17:57: bson uh and so having like our own sort of like
18:04: binary format um will help speed that up a lot I think yeah it will definitely help
18:10: like the loading like process to become faster uh I don't know if it necessarily like help it like because I like one of
18:17: the issues with the new and Json is like right now it hurts because of the poor
18:22: garbage collector because it also causes a lot of memory allocations but with doet n um D has like much better garbage
18:30: collector which actually has you know better pa thread handling so it can for example if like because one thing we
18:36: already do is we load things on a background thread so like when the neut and Json decoding is happening that's
18:44: actually happening outside of the main thread so ideally it shouldn't you know cause like at all one of the reasons it
18:50: causes like is because it causes a lot of memory pressure and that triggers the garbage collector so what I think will
18:57: happen is like when I'm switch to net n is that will you know because of the better garbage collector that's not
19:02: going to contribute to the lie because the garbage collector doesn't really need to pause the process and you can
19:08: also just post individual threads and collect their memory so I think that do KN switch like is going to help
19:14: significant lied particle of part um possi like you know to the point like
19:19: where it's not contributing to the actual lag it just you know makes it like load yeah like you know it just
19:26: makes it like load in the background but we definitely do want to switch like to the custom format because there's a
19:31: bunch of issues with it and also it's just going to make the loading itself way faster so like if you spawn on
19:37: item um you know instead of like having to wait you know say 5 seconds for it to spawn you just wait 1
19:43: second so that's that's going to be like one of the biggest benefits of the format for the like itself it would help
19:50: having that format you know while we're still with unity because we can you know rework it like to reduce the memory
19:57: pressure um um but I think like the 9 is going to make it like so it doesn't
20:03: really become an issue as much but it's also like one we see how it going to behaves and we don't want to switch to
20:08: the format anyway so um it'll definitely help uh next question from Grand de k um
20:17: hello follow over from moderation office hours what do you think about custom clients for resonite either including F
20:24: engine itself or reverse engineer fation in another language so this one's kind
20:29: of tricky because like I um I remember like you were asking during moderation hours you know about uh you know is it
20:38: okay to do this from moderation perspective and from legal perspective and there might be you know some complications there but um what I would
20:45: like to focus on is more like you know just the technical and philosophical perspective of you know
20:51: custom third party clients um it's the first thing is you know like defining what is a custom
20:58: client because you mention you know including F engine itself uh if you use FR engine
21:04: itself is that like a custom client like you know because it's technically just using the same FR EXT engion as the rest
21:11: so I think in that case you know it's not really something you call a third party
21:17: client it's more just like a moded client you kind of know modify like bits of it um reverse engineering is like
21:24: like that's another thing um that one can be trick from legal perspective but
21:29: like if we don't considerer part I think that's like you know significant undertaking because you
21:36: would pretty much have to reimplement you know FRS engine and have have it behave like you know the same way the
21:42: current one does which there that is a huge undertake they would take a long
21:49: long time to implement something like that at least if you want to you know achieve like uh feature parity and have
21:55: like you know full compatibility um but move over there because I do want to I do want to
22:03: showcase uh give you a little bit of like visualization for this so if I go over here
22:12: um and actually forgot my Brash I need forgot something
22:21: uh so let me grab a brush there we go brushes geometry line
22:28: brushes uh let me know how visible this one is because we can have different lighting let me actually
22:34: check can you see this fine is this okay that looks okay
22:40: um so uh you know typical thing you know like when people talk about like third
22:46: party clients they generally think about you know second life because second life
22:51: is like you know one of the platforms that is um known for having third party
22:56: clients and there's a s there's an important thing that I think a lot of
23:02: people uh don't realize is you know like how FR engine works how reson it works
23:08: compared to Second Life with second life uh you have you know your servers have like the grid that are running a lot of
23:15: you know complex logic you know there's a lot of like you know stuff here there's like you know complex things and
23:21: so on and this is like you know the second life server
23:30: so and this like you know running a lot of the complex logic like stuff that is actually happening on the server and
23:35: then we have like you know you're relatively thin client you know or
23:44: viewer which has like you know few bits to like you know get get like the data of the scene that's you know happening
23:50: and you know displayed it to you which makes it much easier to like you know replace this you know with a modified
23:57: version because there's like you know this kind of separation between the server and between the viewer with the
24:03: renoid however um it is like a different architecture uh and it's kind of
24:09: architecture where everything's within one so like you can have this be like
24:14: server but it's also a client pretty much like majority of the
24:20: code runs on both and is the same so we have like you know lot of
24:25: kind of complexity here we have like another Al engine stuff we have like You Know audio systems if prolex the scene
24:31: system rendering you know a lot of the complexity is in here of what is
24:37: actually happening you know all the UI all like pretty much everything is happening there right is all within the
24:42: single thing which means you cannot really you know swap out the viewer as easily and if you wanted to reimplement
24:49: it uh you know you would need to reimplement pretty much all of this versus with second live you know you
24:55: might just need to reimplement bunch of these bits and it's still compatible you know with a server
25:01: infrastructure that like just stays as it is um so I think for resonite it doesn't
25:08: make as much sense you know having these kinds of third party clients what you would have to do for it to be compatible
25:13: because in order for these clients to connect to each other they rely on like all of these bits behaving you know the
25:20: same so if you wanted to like you know reverse engineer all of this and Implement another language um and be
25:27: compatible with each other you know you would have to take the huge undertaking of like you're
25:33: implementing you know years and years and years word of code which I don't
25:38: think is like I don't think this like you know
25:44: easily achievable because it would take a long long time and you know and be in between then you know we're also going
25:49: to implement L of other things so to me what makes more sense is you know just taking these clients and maybe like you
25:55: know we have a modified version which adds extra bits here or maybe like you know modifies few bits here it's kind of
26:01: you know the way like mods are doing uh and use that so instead of like you know that being like a third party client
26:08: it's more like using a modified one and I think that works like much better with like reson I or specifically like you
26:14: know FR exension architecture you know compared to something like this
26:20: um I think I'm pretty much kind of covers this thing um
26:26: it's you know it's just to kind of rate the point it's essentially like you know
26:32: you don't have like sort of like separate client it's kind of like a thinner version because like everything
26:37: is kind of happening and thereason it is based on everybody in the session potentially being able to execute any of
26:43: the code and you can have like you know one of the client you can have like the responsibilities delegated you can have
26:49: only particle client running certain updates and certain modifications but everybody has the potential capability
26:55: to do so that's more of like you know a software thing so
27:00: um I don't think like reverse engineering like fix engine like is too
27:06: feasible it's going to take like you know it'll take a really long time and doing it in a way that preserves
27:11: compatibility because you have to make sure like you know things kind of behave the same is very difficult if you were
27:19: because you probably want to stay you know compatible with other clients otherwise you know just kind of developing a different platform that's
27:26: you know similar but you cannot connect you know to others um you could
27:32: potentially like you know like even just to give you an example you could potentially you know just like Implement
27:37: a subset but then bunch of things will not be working say for example you implemented only measur and erors and
27:44: starting meses now anything using procedural meshes is not going to render so like anybody you know using Avatar
27:50: like that it's just not going to work on of the tools are not going to work if you don't Implement perlex you know then
27:57: like any anything that's you know driven any materials any behaviors any avatars that use that doesn't work like you kind
28:04: of have to reimplement like most of it like to to really be able be compatible with other
28:10: clients um so I think for resonite in particular I don't think we'll probably
28:15: see like custom viewers we'll more see like you know moded versions of them you did mention like uh in the moderation
28:24: chat is like you know having um um like modifying the renderer which
28:29: is actually one of the things we're doing is like you know that this we're going to move the renderer into its separate process and like you know this
28:35: communicates with that so like you know whatever the render are you know are going to be here and it's going to be
28:41: it's a separate process so you could potentially you know you could replace this
28:47: bit uh and have your own renderer which is also like agressively big undertaking and also like it only lets you do you
28:54: know limited things because you cannot change how any of this be haves and if you want to do it you know say for
29:00: performance reasons that's not really going to help you unless you're GPU limited because the majority of CPU time
29:06: is being spent here so if you replace this that's not going to help you know with any of these bits and also
29:12: fundamentally I would say that still doesn't make it you know custom third party client uh that just makes it a
29:19: custom render that's not like you know two different from just you know modifying some bits in here like if you
29:25: just consider if you consider this you know to be one
29:30: thing but I feel like we're kind of getting a little bit philosophical with that one um but yeah like you could
29:37: replace you know some bites like the render it's something we already plan to do we want like you know switch to a custom render but also one thing you
29:44: have to realize the renderer is only responsible for the rendering so replacing dead you can make maybe
29:51: improvements in De guard you know change how it works but isn't going to help with any of these bits so I do hope this
29:57: kind you know makes things a little bit clearer and you know answer those question if you got like any follow-ups
30:03: let me know and like you know we'll get to those uh after we get through a bunch of the other questions so we're going to return
30:13: back keep grabbing the camera there we
30:20: go
30:26: hello uh next question is from Navy 30001 when r and i CHS are turning uh I
30:32: don't have like any updates on this right now I'm sorry the next question is check theox
30:38: author is asking uh my question today is regarding the planed in game Workshop
30:43: how it work what kind of functionality do you want to be able to do it oh this one's this one really like a feel
30:50: Workshop is one of those things where it's really going to like kind you know
30:57: supercharged Community because I feel right now there's it's one of those features
31:03: where there's like a lot of Need for in community from like you know the things we see people doing because people in
31:11: our community like you know you make like lots of really cool things you make like you know cool worlds but you also make lots of cool items you know avatars
31:19: um you know like uh gadgets you know to play with or even like tools you know for other people to use um and the way
31:27: people share this right right now is you know to share folders the big problem with share
31:32: folders is one is discoverability you kind of have to know somebody you know who Shar folders you know so you can
31:39: grab grab it from them and put it there it's also a disco varability like you know figuring out what new items get put
31:44: in and so on so to solve this uh we want to introduce Workshop there going to be
31:50: a little bit similar uh is actually going to use similar mechanisms too uh to submitting worlds because you can
31:56: already know publish worlds and with others but it's going to generalize that so you can do that for any items uh so
32:04: say like you know you build like a gadget you know that you want to play with like you know something like you know something like this you know and
32:11: you want to well we don't have like the target you know you want to build something like this and share it with others um you'll
32:19: be able to like you know submit this item specifically not having to you know put in our world you have to be able to submit it to the workshop you tar it you
32:26: know you provide pictures and so on uh and then it becomes available for people to search and you know spawn out of the
32:33: workshop you also be able to submit updates so you can you know for example like when you do improvements you know
32:39: everybody gets whatever the latest version is um but the overall goal is
32:46: you know have the workshop sort of be this kind of centralizes repository of
32:51: community creations and something like you know will build around um
32:58: actually I'm kind of I'm confing I should go like throw some more sketches I'm going to go throw more
33:04: sketches have the thing okay let's go here let's go here there
33:09: we go did I forget my brush no it's here there we go I'm the guy pushing like the wheelie card around with the TV on it oh
33:15: what happened to the camera oh what the heck uh the camera got messed
33:21: up oh dear I must have accidentally grabbed it I apologize oh just adjusted
33:30: okay there we go I think that's good enough sorry camera got
33:40: grabbed there we go so you know Workshop like you'll be able to you know submit
33:46: like various items in there and on your dash you know there's going to be you
33:52: know you're going to have like Workshop buttons so like you know click it and you have like you know feed of items so have like you know for example this
33:58: school like you know thing whatever whatever you know whatever this thing
34:04: you know this I don't know I don't know what I'm drawing you know or maybe somebody sumed an avatar you know and
34:10: it's like maybe maybe it's like you know I'm spending way too much on these
34:17: Doodles um so you have like an feed of different items that people make and
34:22: they're like you know tag so some of them can be avatars then you're going to have you know categories so you can for example be like you know I want
34:30: avatars and by the way this is not like actual necessar how the is going to look like this is just more you know it'll
34:35: straight principle but you have like you know stuff like avatars and have like tools you know and gadgets some of the
34:42: popular tags or maybe games one of one of our users like like
34:47: actually just literally yesterday I he built a version of Cards Against Humanity in here and he gave me the
34:53: shared folder so like you know that's going to make it easier Distributing just you know submit it there you're
34:59: going to have you know like a search bar so you can like be like I want to search for this thing you know maybe find this
35:05: thing uh you can browse the categories so there going to be you know the typical like Workshop like UI L like
35:11: when you browse all the items and then you can you know spawn it out or maybe can equip the avatars and so on but what
35:18: I think is also going to make the workshop really powerful is you know like when you click on the items you know there's going to be like a description of it you know we can make
35:24: provide pictures and other things um eventually we'd like to have you know um
35:30: other features built around it like for example discussions so like you know when we have an item and you open it
35:36: up oop I suck at drawing um you open an item you know so like you
35:44: have the you know Avatar and there's you know some description of it you know maybe there's
35:50: a discussion like you know with people saying this is a cool Avatar you know like this is such a cool thing and like
35:56: this is super cute and like you know what you know whatever people want to discuss um but the way you want to
36:02: approach it is you know whenever we add features like this we want to generalize it so they kind of like they're almost
36:08: like you know modular pieces that kind of go together so when we add discussions you know so you can discuss
36:13: items um we want to make it like you know possible to have discussions for other things so say for example once we
36:21: add so you can actually see you know the update history in here you could maybe
36:26: leave commment up dates or maybe you know when we add profiles you know so we have like a profile maybe people can
36:33: leave comments you know on your profile or maybe once we add events like you know events UI you'll be able to add
36:38: comments you know to whatever events are being planned so we want to make it like you know functionality very generalized
36:44: and kind of like you know maely build the pieces of functionality together um
36:51: the other part where I think Workshop is going to be really important is once we have you know people submitting avatars
36:57: and they tagged as avatars it will improve the initial user flow because
37:02: often times when a user comes to resonite what they want to do you know they want an
37:08: avatar um so we can do is during the initial setup we'll be like we be like
37:14: you know do you want an
37:19: avatar you know it's going to just ask them do you want an avatar and then like you know it shows
37:25: them a feed of like you know some of the popular avatars that are free to use and they can just pick one right there
37:31: without having to search they just pick it does everything for them they now have like you know Avatar to starboard and to walk around with instead of
37:37: having to like you know find a world and find Avatar in there um so we can you know literally
37:44: take a piece of the workshop and put it into other people's into other places you know um like the setup youi uh
37:52: another example uh say you have something you know like the material tool
38:00: um right now you know if you have a material tool and you want to change some materials we have to find them like
38:06: you know for example here's some materials I can like grab this so you can find materials you know in the world
38:13: if you want to change something and I'm gr for some reason um you could you know submit materials
38:20: and tag them into the workshop so you could search the workshop and say like you want like a wooden material and you
38:26: find one there you spawn it in you pop it in but um with our focus on making
38:32: everything very modular and kind of like you know interacting with each other what we'll be able to do is we can
38:39: actually integrate part of the workshop into the tool itself so we just going to be like I want a material you select you
38:45: know F material and it pops out it pops out you know little like
38:51: UI that's technically the workshop but it's filtered just for material so maybe
38:57: there's there's like you know wood or maybe there's methal or glass you know there's a bunch of categories and
39:03: there's like you know showing just the materials and you can just browse it you
39:09: know with your tool and you like okay this is the material I want you click on it it pops in there and you can like you
39:14: know use it and you can you know apply it to things you know now the wall is grass uh so being able you know to use
39:22: the workshop as a building block for other features is another of the things that I think will be really really
39:28: powerful because you know it's going to allow us to simplify the workflows um and even you know doing
39:34: something like that because technically you can you know you could go to this interface you could search filter by materials you can you know find the
39:40: material you want spawn it out plop it into the tool you can still do that but
39:46: I think by having it integrated into the tool it skips a bunch of steps I think it can help tremendously
39:52: because like when you're building worlds you know that's finding a material that's you know something you do very
39:58: often uh as you're working so if we remove you know say Five Steps from it
40:05: and is a thing you do you know 100 times per session that's 500 steps you know removed 500 clicks you don't have to do
40:12: anymore and that can make like a like huge difference to workflow um there's a bunch of other
40:17: features as well uh that going to integrate Inova the workshop uh one of the things we want to do is add a system
40:25: for sort of like you know tracking license so you can say you know this asset you
40:30: know has this license to use uh and maybe this one requires you know payment or proof of ownership uh because we have
40:36: to purchase the asset what it will do once we have that feature um it's you
40:43: know the workshop is going to become aware this item is you know something
40:48: that requires payment so if you want to actually spawned item and use it you'll have to purchase it or prove that you
40:55: own it and that point the workshop also the workshop UI will also serve um I
41:02: serve like a shop so you'll be able to like you know sell items and worlds you know and avatars uh through
41:09: resonite the other part of with the licensing system that I think is going to make things also easier for new users
41:16: is um you might be able to you know prove ownership of certain assets uh by
41:21: for example having a file so say uh say you purchase you know like an Avatar uh
41:28: and you have the fbx file for it if you drag and drop you know the fbx into
41:33: resonite we can actually detect okay this file hash is associated with a spade asset so that can ground you a
41:41: license and we can just be instead of setting up this Avatar you know from the
41:47: scratch here's you know here's a here's a list of already setup versions of it
41:52: do you just want to spawn one of them and I think that might help you know a lot of the the kind of initial onboarding like when you don't find the
41:59: Avatar you want but you drag one in and system is able to use that you know uh
42:05: to verify ownership and of course it also have to depend you know is the author of the asset like you know okay
42:10: with it kind of proof of ownership but assuming they're okay with it uh we can just ground the user you
42:16: know to you now have the permission to use this you can spawn these already
42:22: preset up versions without having to worry about setting it up from scratch and it's going to be another thing you
42:27: know like where the workshop um it's sort of like you know this kind of central feature and there's like other
42:33: features that like interact with it because one of the things we really want to avoid is like you know um designing
42:41: things when they're like you know big monoliths because we could make it you know that the shop itself is integral
42:47: part of the workshop we could make it you know uh you know licensing like the
42:53: problem is you know it makes these things into these big kind of mon which makes them harder you know to use and it
42:59: makes it harder to use that functionality outside because uh say for
43:04: example you know for the licensing the workshop that can be one way to find paid assets you know something like
43:11: people are selling but say it's just you know browsing a world and like you know say s's like you know say s is like you
43:17: know playing with a thing you know he has like this cool color and say this is a paid asset and I'll be like you know I
43:22: want this thing and like I don't want to like this thing specifically I'm just going of using this this example because
43:27: I think this is a personal one but say like say this is a paid asset and I'm like I would like this thing I want it
43:34: too and you'll be like I want to save it and the system can be like this is a paid asset you could save it but you
43:40: know we have to pay the creator of it uh so you could find items kind of
43:45: organically outside of the workshop as well and it's going to use the same licensing system and that way having the
43:51: licensing system be technically separate part but one that integrates with the workshop is a lot more powerful than
43:57: having it integrated into it so um oh there is one more system that
44:05: uh is uh also going to be technically separate thing but that I think will integrate really well with workshop and
44:12: that's molecule uh that's going to be our sort of like version tracking system and our primary goal is to use it for
44:19: resonite itself uh essentially you know so we can push updates to it track you
44:24: know changes and so on uh you could like you know different branches much more easily than through Steam and if ever
44:30: own kind of know system for just handling that but the versioning functional you know and tracking of like
44:37: the change log you know what change between these and these versions that's useful for more than just resite it's
44:42: going to be useful for items as well um it's going to be undering that's going to integrate so like if you for example
44:47: browse an item maybe there's like a thing where you see like you know this the current version but you can see like
44:53: you know a version history you know and you can see like change logs for for example you know version 0.02 and they
45:00: can be like added this thing fix this thing and maybe you can we can spawn the
45:05: other versions too uh so there's going to be another thing that will integrate with the
45:12: workshop but technically is also going to be separate feature uh the other part that Workshop uh uh or other example
45:20: that I want to mention before like we move on is like you know I mentioned materials you know and there's like an
45:26: avatar Gadget tools so on like you know what whatever you want to share but I think one that's also important to
45:32: mention is Proto flux uh because one of the things that's going to come to prot flx are going to be custom nodes and
45:40: custom nodes they're going to you know let you bundle common functional they you know essentially into like no so
45:46: like if you have like you know you have like a complex thing that's you know a bunch of nodes and I kind of talked
45:51: about this like in a different video as well that's on a YouTube so I do do recommend checking that one out uh if
45:57: you want to know a little bit more about this but so you have like a bunch of nodes you combine that into a single node then you can then reuse in a bunch
46:04: of different Creations uh you'll be able you know to take this custom node or maybe a whole
46:11: library of them and submit to the workshop and similarly how you could like you know find materials with the
46:18: material tool tipe there could be one for the Proto flx where you're like I want a function you know that computes
46:24: you know some complex math with a fear and tangents or something um and you
46:30: just you know search it I'll be like okay there's a function and you just integrate it into your Proto flx and I think it's going to make sharing of code
46:38: much easier and it's going to make it much more powerful building stuff with protx because instead of like you know
46:43: having to find you know already pre-made things or just having to constantly build everything from scratch over and
46:50: over you just have access you know to a repository of uh uh repository of you
46:58: know of like pre-made kind of code and libraries and just easily you know integrate into your own projects and
47:03: it's also part where the molecule the system like is going to be very useful
47:08: because say like you integrate you know some set of nodes like a library for something uh you might want to tell the
47:14: system to Auto like whenever it's loaded use the latest you know version
47:20: of it but only the minor version that way like you know if they make any fixes and improvements your can automatically
47:27: update but you know any major versions you have to like update like manually because usually if you see mon
47:33: versioning major versions you know have breaking changes whereas minor ones should not um so in short Workshop I
47:42: feel that's going to be like one of the really really powerful features and I think it's just going to empower you know the community and the creators and
47:49: even regular users to do a lot more because for regular users like you know
47:54: if you just got casual user you want to hang out you want a social it's going to make finding avatars easier it's going
47:59: to make it easier you know to find gadgets and games to play with if you're a Creator you know the same repos can be
48:07: used you know for materials textures sounds uh you know proplex nodes and you can find it easily and we can even build
48:14: Integrations you know with our tools uh and you'll be able to build Integrations with your tools because it's all going
48:20: to be like in data feed based you know to sort of supercharge them with having
48:26: Repository to like you know all the community made content so um def one of these features I'm
48:33: really looking forward to adding like I keep like every time I see like you know
48:40: just people sharing like shared folders and then having share folders of Shar folders and having you know multiple
48:47: nestings of these I'm like it feels like you know the community content you know
48:52: it's like it's almost like bursting at it seems like it really needs it Workshop so introducing that I think
48:59: we'll get like in lots of cool content and it's also going to make it much cooler um it's going to make it much
49:05: cooler and easier to discover that which help put new users ex and existing users
49:10: who build content actually one more thing I'm going to mention is um if
49:16: you're like you know if you have a Creator that's like publishing things one of the things that I would also like to integrate is like you know having
49:22: sort of feeds so if the Creator pushes and like you know an updates an item or they make a new item and you're
49:27: following that Creator it can pop in your feet and be like this Creator made this new item you know and like it's
49:34: that's going to help contribute to the discoverability um anyway I think I
49:40: rambled like long enough about this one so hopefully it can answers the questions give you like better idea you
49:45: know what you want to do with workshop and why is it such an exciting feature and why I think um it's definitely like
49:53: after the performance update is done it's like you know one of the things that's kind of top of my list where I
49:58: think this is going to help the community it's going to help the growth you know of the community and of the platform and I would like to prioritize
50:04: it like soon DM anyway thank you very much for the
50:10: question we're going to move back to the other
50:18: ones that's just the accur silence as we move between locations
50:31: okay also in terms of so that the next question we have is with the in-game
50:36: workshop I want to say uh group projects very much needed this is by the red Neco
50:42: by the way I forgot to mention them me and KR need joint work on an item and only allowing one user to have credit
50:47: would be annoying we we do have groups though like you can you can request have
50:52: a a group made I think if your patreon tier is high enough yeah and you can and then have a it gives you a set amount of
50:59: shared like group uh storage space that you both can access and when you publish worlds or like let's say you published a
51:06: public folder from the group it will show as being owned by that group rather than any individual
51:12: user yeah it's definitely good one like the groups mechanisms it's like it's very useful for like you know the
51:17: collaboration so you can like you know just have a share folder and you know we can have a short credit so I would
51:22: definitely recommend like using that feature and being able to publish things you know as a group like that's definitely still going to be part of it
51:29: I I do think it might also be possible like with a licensing system we could just say um you don't have to create a
51:35: group like you know we can just allow multiple credits for things but we'll have to see about that one but the
51:41: groups one is always going to be there so this definitely good um gr UK is asking are you aware of
51:49: what bus factor means when referring to a project if notes as a measure of how many people could disappear before the
51:54: project stops developing so in that context what is the bu factor of resonite in a technical sense and what
52:00: can be done to make it better yes so it's actually something that we cannot talk about like you know in the community not community in the team uh
52:08: well sometimes in the community as well but I misspoke um and it's you know something like
52:15: we're Contin like looking like you know to improve and generally what it involves is you know making sure that we
52:22: document you know our processes uh we know like you know how things are set up what's our
52:27: uh you know Cloud infrastructure like you know how are things kind of working together so have documentation so other
52:32: people can pick up things you know that's kind of helps with kind of you know stuff um the other parts is you
52:39: know uh making sure people actually have access to the things so like we kind of know making sure that people are set up
52:45: you know for example with Azure access uh and then like you know there's the
52:50: part like you know of the code U pretty much like you know all the engineering theme they have access to the code so
52:55: like if something happen to like any one of them technically any of the people can you know continue
53:01: on um so it's something you know we do talk about something we kind of you know take measures to like improve it's a
53:07: gradual thing because you know there's a lot of things and sometimes if you know something happen to some people that's
53:13: going to slow things down uh but there are you know ways to recover from
53:20: that uh next question is from Gran K are there any thoughts you have an open
53:26: sourcing resonite either in parts or fully Oh Yes actually uh it's actually one of the things I would like to do
53:34: in not like the immediate future well soonish is start op sourcing pieces of
53:43: resonite so if we think about you know open sourcing resonite in Fall that wants a
53:50: lot more complicated because you know we we use like code that's ported from uh
53:55: you know third party code that we don't necessarily have license to open source we use code you know that's also used
54:01: from other things that like we have license to include in the code but not necessarily licensed to relicense it uh
54:08: there's you know stuff like where open souring certain parts might potentially you know open up um you know um some
54:17: security kind of issues because uh there's like you know certain mechanisms like you know say stuff with uh you know
54:25: BN evasion we specifically don't talk how about how BN evasion works and part
54:31: of the part of it like you know is on the cloud infrastructure where the code is not accessible to people you cannot
54:36: you know decompo it from the client and if people knew or the more people knew
54:42: how it works that makes it easier for them to get around it so like you know open sourcing Deb can cause harm um so
54:51: it's there's a lot of kind of you know things like that there's also other part of it is you know in order to open
54:58: source said that usually implies that people will be able to start submitting pool requests because they want to you
55:03: know submit improvements uh we need to be able to handle those both like you know having the bandwidth for it and having you know
55:09: some sort of structure in place where we are like this these are our coding practices this is you know what we
55:15: accept this is what we don't accept um because we need to ensure um that is you
55:22: know for our version of it we want to maintain you know certain quality of the
55:27: code and we want to maintain certain philosophy of the code you know there's like things um like one of the things
55:34: one of the strong principles for resonate is we always make sure when
55:39: possible everything stays synchronized but there's like you know you could just Implement things in a way
55:45: that doesn't follow in principle but it's something we would be very unlikely to accept but you know that's something
55:51: that needs to be defined we need to say this is how you need to write things so
55:56: it's kind of add you know additional kind of overhead and complexity that we need to do uh you know to open source
56:02: things and even General like you know we might have like well we do have you know overall goal where we want to take
56:09: resonite and we want to you know head like you know in certain direction there's also might be things where you
56:15: know people might fix bugs you know and things in a way
56:20: that's not the highest quality or that could cause you know other issues and other problems so we might not you know
56:27: accept those so there's a lot of kind of like you know complexities with like open sourcing the whole thing that I
56:32: don't think we are ready to handle like uh requires a lot of more work and
56:37: potentially more manpower than we have right now to do that um unless you know we just went like we open source and we
56:45: like we're not accepting anything we just you know just do whatever but I don't think there would be a good way to
56:50: do it um so in order to kind of tackle this um I want us to do
56:57: the open source thing more gradually uh take you know oh actually there's one more thing um if we open source the
57:04: thing fully one consideration or concern that we have is you know are we going to
57:10: be able to continue doing as a company could somebody like you know metha just come in take the code you know and just
57:17: kind of push us out and you know destroyed us like you know with like infinite resources you know that's
57:24: something we don't want to happen we want to keep working on this we want to make this our livelihood and as a thing
57:29: you know we need to balance with like you know with the benefits we would get from open
57:35: sourcing um so there another kind of like thing like where it's a bit of an unknown and there's like you know stuff
57:41: like licenses that will help prevent that uh or at least minimize the risk
57:46: but also you know we have to weigh those against other things so it's it becomes a more kind of complicated issue um so
57:54: in on the flip side doing it by pieces I think is much more kind of digestible
58:00: much more easier you know on our Bandit right now while still getting a lot of the kind of benefits of that um so what
58:07: I would want us to do is essentially take various subsystems you know and
58:12: make those open source uh one of them uh is being um you know for example the Import
58:19: and Export system uh because I think the one's going to be like the one's a
58:24: really good candidate to open open source relatively early uh because it uh doesn't really
58:32: like it doesn't modify the data model like uh it doesn't like you know add any types of components and things it just a
58:39: system where you know you take whatever external formats you have and it translates them into the data model or
58:46: takes like know stuff that's in the data model and translates it out um if we design it right uh we can you know make
58:54: sure that it's easy to write importer and exporter modules we can also take the existing you know importer and
58:59: exporter functionality and just you know um essentially just open source it uh so
59:05: people can use it both as a reference or to make their own Forks you know with modifications uh to help you know better
59:11: support the content like you're making um and like it's something we don't have to like worry super much you know about
59:18: long-term issues because say if you if you're making a component something that
59:24: becomes part of a data model now there's a worry because that component can be saved into the cloud now we have to
59:31: worry will that component keep working the same way it's working you know 5 years down the line is this maintainable
59:39: is this going to cause issues and that adds a lot of overhead to those things without importer and exporter we don't
59:45: have to worry about that because it's not adding any new components it's just translating stuff so at the at the
59:51: moment you import something it translates it into you know the resonance data model
59:56: and there Ison a data model you know we already know what's in there that we can support it uh so the the translation is
1:00:03: essentially just like you know onetime process additionally it helps you with
1:00:09: some of the security stuff because say we open source stuff it might make it E
1:00:14: much much easier to make like you know rippers for Content where you can like you know steal people's you know avatars
1:00:20: and things like that uh because now we have you know access to all of the code uh if you
1:00:26: only open source you know the Importer and exporter and there's like you know specific apis that you interact with we
1:00:33: can make it you know so it's not possible to invoke um an exporter on something you
1:00:39: don't own so you cannot you know just use it to like rip data out and it kind of helps things make things a little bit
1:00:46: more contained the other parts that I think we might open source is you know stuff like the shaders um those would be
1:00:54: mostly for reference one thing actually that I've been kind of considering though is also open sourcing the
1:01:01: um uh like the new procedural animation system because it's one of those things
1:01:06: like where I'm not really happy with it like it's been kind of like you know rushed and it
1:01:12: needs it needs a lot more work but also like you know want to spend time on some like bigger features so one of the
1:01:19: thought I was having is you know if we made this open source we was just like you know here's the code we could start
1:01:25: like you know accepting improvements let the community help us you know kind of Polish it up some more um and improve
1:01:30: you know the platform uh I don't know if that's the way we do like actually there's a question you know to you like
1:01:36: would you be willing to help us um you know improve things like that so we can
1:01:41: kind of focus on other things is that something you would want to do like you know if if you like this idea you know
1:01:47: let us know um because that definitely help like you know influence the decision about that um the other part oh
1:01:53: the other part is also like I think it's going to be great to open source it's like the device drivers uh so you know
1:01:59: like if you want to support for more devices like you know more face tracking more you know hoptics Hardware um we can
1:02:07: take you know existing drivers we have we open source them again as a reference or so you can you know see like this is
1:02:14: how these things are implemented to make your own or maybe you want to make a fork you know like you don't like how
1:02:20: certain part of it works you want to modify it run your own Fork instead you know um share with the community you'll
1:02:26: be able to do that as well um so you know that's going to be another
1:02:32: great one it's also like one of those that doesn't need to add new things to the data model so I do think like we're
1:02:39: going to be you know um maybe this year hopefully this year we'll start like an open open sourcing pieces of resonite uh
1:02:46: because we do have a great community and people you know who want to help make
1:02:52: this platform better and I feel that that's going to you know provide uh it's
1:02:58: going to provide you a way to kind of contribute more in that regard and also even if you don't want to you know help
1:03:04: contribute like the main platform is going to give you ability to better you know customize some of the aspects of
1:03:11: the platform say you know say like you want to import like you know some super
1:03:16: obscure format you know one that we would not really prioritize now you have
1:03:21: like you know easy framework to work with to add that support format you know into
1:03:27: resonite um we you know by open sourcing that part we kind of give you more power
1:03:33: you know in there and over time like you know we' kind of do more and more bits of like you know resonite and maybe
1:03:39: eventually we do the whole thing but that is you know like I mentioned earlier that is much bigger task with a
1:03:45: lot more kind of considerations um but yeah like it's definitely something we like to do it's
1:03:52: going to happen in pieces hopefully this year um so you know keep keep tuned and
1:03:59: um hopefully soon is [Music]
1:04:05: DM uh next question is uh modern B is asking will component
1:04:12: search be properly implemented anytime soon out of curiosity well it's one of
1:04:17: those things it depends what you mean anytime soon if you mean like you know because that could mean in a week which
1:04:23: in which case the answer is pretty much no it could be a month in which case it's probably still no it could be
1:04:29: within the next six months which the answer is maybe um the component search like the
1:04:35: component UI um actually going to scrap the current one and it's going to be reimplemented with the data feeds data
1:04:43: feeds as part of their kind of system how they kind of work under the hood the native will support search so once the
1:04:50: UI gets are implemented it will come with search uh it's also going to include prolex knows which are
1:04:55: technically like um components in the system as well it's just kind of specific subset um but yeah like depends what you
1:05:03: mean anytime soon we generally don't give time estimate on things because things change um right now the focus is
1:05:10: to know finishing the performance UI per performance update um DUI update you
1:05:18: know one of the things is high on the list um but on C specific timelines you know
1:05:24: I cannot give you a number right now um Moonbase is asking how does Second
1:05:31: Life have third part declines then are they just modified versions of Origin client I think it was asked like during the explanation bit so I think we
1:05:38: already answered that one during that part uh I do believe they like use like you know modified versions like they
1:05:44: modifi client some like replay more or less there's some open source implementations I'm not like super well
1:05:50: worsed but um yeah
1:05:55: uh next question is from Jack the fox author Al I'm just checking time we still got about an hour left um I
1:06:03: remembered another question I've had how will prolex collection support look like as in what kind of new noes will be
1:06:08: added how will be able to interact with collection types and what existent functionality knows will getor expanded for use with
1:06:14: collections I thank you Nik for the Nik 132 for the subscription with Prime
1:06:20: thank you it's probably kind of late because we're kind of just chewing through the questions um
1:06:28: yeah sorry I hope I hope you're I in there or thank you is is a good
1:06:35: b um ja the fox author is asking I remember another wait I already it um so
1:06:43: yeah um as far as the nodes go they the noes will generally not be modified like
1:06:48: the noes that are in there kind of going to stay the way they are there might be some new overloads uh but in terms of
1:06:54: the specific support um we want to make it as generic as possible so for example going to have
1:07:00: nodes which let you you know um access an element out of a collection by its
1:07:06: index or maybe by its key uh and that you know that collection can be you know different types it can be an array it
1:07:12: can be a list you know uh so there going to be you know some probably some
1:07:18: equivalent of like for each iteration where iterate over all the elements um so you you you essentially
1:07:27: just give it a collection it just iterates all of them so you're going to get you're going to have like a lot of kind of very common operations same
1:07:32: thing you know when you want to add an element to a collection or remove or you know replace uh there going to be a
1:07:39: bunch of notes for that and once you extract an element you know out of a collection then you can say it's a list
1:07:44: of numbers then you can just use like you know addition nodes you know for working
1:07:50: with a number or what whatever whatever you are to do you know save it an integer or a string or something you
1:07:55: just do that like you know once you've extracted it from The Collection so most of it is probably going to be you know
1:08:03: um Wass to iterate over collections access the elements in collections and build and modify the collections like
1:08:09: mutate them um there's also going to be a number of nodes which will then accept
1:08:15: collections or produce collections so for example um you know there's going to
1:08:20: be a node which accepts string and you know gives you like a dictionary collection that's uh the Json passed and
1:08:28: it's going to be reverse which accepts like a dictionary or other data types and produces adjacent string so it's like you know easy to convert from one
1:08:35: to the other um you could technically build those on your own as well you know if you want to do like Jason parsing
1:08:41: which some people already do but for some of the common ones we're going to provide you know it Primitives uh same
1:08:47: thing you know say once you get component access you just get you know a collection of um you get a collection of
1:08:55: you know components you know on a particle slot you can iterate over it you know access specific element you know do whatever
1:09:01: you want um another good example is like you know the raycast notes um because
1:09:07: right now you have raycast one and I've specifically added the raycast to be rast one so it doesn't need collections
1:09:14: it Lally just gives you the first hit which in some cases like you know in a lot of cases it's sufficient and it's
1:09:19: actually faster too because um uh with be physics how we have it integrated
1:09:25: it's that search is more efficient because it knows it doesn't need to build a collection it doesn't need to sarch them it just literally finds
1:09:31: whichever is the closest one that satisfies the criteria so using that one if you don't need you know multiple hits
1:09:38: is more efficient uh but we will add aray cast all node where if you do a ray
1:09:45: cast it gives you a collection of all the hits and you can you know iterate over them you can sort them you know do
1:09:51: whatever you want with the results you essentially get a list and then you know you use the generic nodes for working
1:09:57: with that list this also applies uh for you know collections that are part of
1:10:02: the data model um like for example you know the brushes the way the brushes work uh literally when they make a when
1:10:10: you're drawing a brush stroke um you're the brush is just adding new elements to
1:10:17: an array or a list or what we call it um and it's updating the procedure mesh
1:10:22: you'll be able to access all the data you know with Perle so you can just iterate over it do whatever modifications you can add your own so
1:10:29: you could like you know build like procedural things you could like you know um just do whatever you want to do
1:10:37: you know with a collection of data you'll be able to do at that point um the other part is like you know we can
1:10:43: add nodes for example for accessing mesh data or Texture data so we can iterate over to pixels or iterate over triangles
1:10:50: you know buildout meshes um same with audio You Know audio this collect of You Know audio samples
1:10:57: so you can iterate over that you know generate stuff procedu it's going to open up a lot of kind of cool
1:11:04: options uh gr is asking can you sub me a public folder for uh cares Against Humanity it's fine to be shared uh yeah
1:11:10: I think it's okay to be sh I'll have to check with Zur uh he's the one like who made it but he was kind of giving it
1:11:17: out uh next question is uh Rasmus uh
1:11:23: 0211 uh any plans for being able to display rules upir prior to users joining a world uh I'm under impression
1:11:29: many users especially new users don't read prior to joining a world uh yes there's been a feature some kind of like
1:11:35: in works and the background for that I don't know when it's going to come but uh it's probably something that's going to pop in at some
1:11:42: time um next question is from uh uh k
1:11:47: kager um sorry I'm not pronouncing your name right uh not trying to make your s conscious love what you're doing but
1:11:53: you're also saying you know a lot is have breeder every once in a while don't need to be nervous oh I'm not really
1:11:59: nervous I just going to talk like this glitch for is asking uh Nikon 132
1:12:07: yes guess glitch is surprised to see Nikon in there also glitch is
1:12:13: cute probably screaming right now uh next question Navy 3001 will the
1:12:22: resonite have something like prefabs would be nice to update one asset and updates them all in Project yes the we
1:12:28: do have a GitHub issue for it uh it's a functionality that's going to appear at some point it's actually also something that's you know going to integrate into
1:12:34: the workshop uh which we talked about earlier um so yes this will be a feature
1:12:40: will come it's a also a little bit tricky one because like you know sometimes it depends how do you want how
1:12:45: and when do you want things to update um because you have a you
1:12:52: know how do I put it
1:12:58: you essentially like say you build a world and use somebody else's prefab and
1:13:03: they update prefab that might break you know what you build with it so we'll
1:13:09: need a system that's going to you know determine when do you want your Wars to
1:13:14: update and what not and it can be either just fully manual process so you say I'm using this prefab I want to update all
1:13:21: the instances in this world right now um or you know we can have it
1:13:28: semi-automated and it's you know where the system like molecule comes in where where whoever is making the prefab they
1:13:33: can version it and they can only do minor updates and you're going to say if it's just a minor update just update it
1:13:39: automatically if it's a major uh version update then that requires you know uh
1:13:45: manual update so being able to define the rules for the prefabs like in when they update I think it's going to be
1:13:51: important part bit social kind of collaborative platform like this uh the other part of it is like we need
1:13:57: to have a good way to define overrides uh because with resonite you don't
1:14:02: really have a difference between um you don't have a difference between like you
1:14:08: know an editor and player mode uh and usually like in editors like if
1:14:14: you're editing it kind of tracks the changes and then like if you make some changes like you know say you have a preab and for the specific instance you
1:14:21: change your color uh it tracks that but you know the tracking as an overhead uh
1:14:26: so the prefab system will need to have like an efficient way of kind of handling this and determining what is an
1:14:33: override you know from the prefab instance and what is just regular behavior that should be like you know
1:14:40: erased so there's going to be prob some systems to deal with that and next question is from Dusty
1:14:47: sprinkles I'm not sure if this is a more of a different ask questions but when do you think age verification could come I
1:14:53: think it' be useful for the workshop as as well as worlds um so generally we don't answer one questions uh it's
1:15:01: something like we've been kind of looking to in the background there's there's kind of number of like kind of
1:15:07: complexities with that because like you um one you want to like you know if you go with that kind of solution is you
1:15:14: know how is it like implemented what company do we use do they have like you know good data like you know data
1:15:20: privacy uh uh we like you know as the yment Studios we're a European company
1:15:27: and generally um there's much stronger Focus you know on privacy and
1:15:33: protecting people's private and identifying data so that's something we need to be kind of very careful with the
1:15:39: other part is you know how would Community work with it which companies you know are would be okay with us using
1:15:47: so it's something that will probably show up in some form at some point um there's not anything too spe specific
1:15:55: right now um so we'll we'll keep you informed like once we're kind of like
1:16:00: you know thinking more seriously like and looking into specific kind of companies for this kind of thing we
1:16:05: might know open up a discussion and be like you know this is the companies we looked at you know like which ones would
1:16:11: be comfortable with like which options would be comfortable with and you know have that kind of like discussion about this
1:16:18: feature the next question is from the red Neco the issue right now is the groups is on the 20 more tier which is
1:16:25: quite expensive for me so having the other free or cheaper method for credit and multiple people would be great um
1:16:32: and you can always like you know just put like credit on the item itself um with the licensing system we'll probably
1:16:37: just have it like you know so we can say like these are the creators of this uh because one of the powers of the license
1:16:43: system is even if you're not selling anything you can just say you know like say this item um I actually forget which
1:16:50: exact license we're using I think we're using some kind of Creative Commons ones which means like you know this is free
1:16:55: you don't need to pay for this item uh but you know there still can be restrictions how can it be used you know
1:17:02: and you also want to track who work on this item because there's you know multiple people that contributed to this
1:17:08: so having the license system you'll be able to like you know Place information be like these are all the people that worked on this item this is you know
1:17:15: it's licensed you know with creative commands you know this and this version um so that system I think will provide
1:17:22: you know that functionality for now I would just recommend you know put a some
1:17:28: one thing that people do is just put like a slot which says like you know credits and put credits that way or
1:17:33: maybe integrate credits into the item itself the next questions
1:17:41: uh uh uh does this spring close I kind of meant more like what it would be like but EP question marks or correction
1:17:48: shows up um unfortunately I don't know the they know what which question they're talking about
1:17:56: H I kind of lost context yeah I wouldn't know either I'm
1:18:02: sorry like if you if you're posting a correction please include like context of the actual original questions because
1:18:08: it might be you know there might be a bunch of questions before we get to yours and by the time we've forgotten what you've originally
1:18:16: asked next question is from Modern balone so about the ik do you have any ideas about what the new ik systems
1:18:22: would be yes I mean we're going to build a custom one uh it's going to be in house system uh we got lots of kind of
1:18:27: ideas how it's going to work uh there already is a discussion on it on our GitHub so I do recommend checking that
1:18:33: out because it has like you know a bunch of details um so yeah I don't know like if I should
1:18:39: like get like too much into depth on this one because we're we're going to be working on it right now but um there's a
1:18:45: few parts like you know one of them is making sure it works a lot well with lots of different avatars uh so it's
1:18:51: easy to set up so it's uh it also like works really well you know with multiple trackers it doesn't do like you know the
1:18:56: neck scrunching you know it doesn't do weird things with the spine so there's kind of lots of things with that uh also
1:19:03: make it easy you know to kind of adjust it and assign bones and stuff like
1:19:09: that uh next question uh so just check my time uh Navy 3001 random question if
1:19:17: you move component of assets into disabled slots will those assets load
1:19:24: like if mesh is on it will the mesh load uh so right now well it kind of depends
1:19:30: which components you move uh if you move just the asset provider then uh it'll
1:19:36: load as long as there's something referencing it so generally yes the comp the asset will
1:19:42: still be loaded uh it kind of depends a little bit because like there's some things where them actually no they will
1:19:49: even when disabl they will like load there's a feature thr uh orally optimiz
1:19:54: ation that's planned called the um cascading asset dependency uh what I want to do is
1:20:02: actually make it like when you so you have a mesender and the mesender is using you know a bunch of textures and
1:20:08: it's using a mesh if you disable it it means it doesn't need to be rendered it can tell those textures and the meshes
1:20:16: you know and the other assets I don't need you right now you know I'm not being rendered I'm disabled um which means if there's
1:20:23: nothing else using them they can actually unload from memory or if it just you know if it starts that way
1:20:28: maybe they don't even load in the first place so that will change the behavior
1:20:33: but right now disabling it doesn't prevent it from being
1:20:39: loaded uh and next next question is from Dusty sprinkles do you think in the far flying
1:20:46: future there'll ever be some kind of way to back up Bon per into custom component I think something like that would be
1:20:51: useful but I don't know if it fits any specific long-term plant yes there's actually a good Hub issue for it already um it's called like you
1:20:58: know static per flux assets um what we allow to do is you know you can take you know a bunch of dynamic you know noes
1:21:05: that you have like with PR Fox and you compile them into a static asset and then will they get them loaded uh so
1:21:11: that's something you know that's already the map it's probably going to happen at some point um it's also going to be useful you know like I mentioned earlier
1:21:18: with the workshop where um you can you know um Can Say publish libraries you
1:21:25: know of nodes and you know share them with people that might be more efficient way to share them rather than having you
1:21:31: know the whole like nose with Aller positions and everything um next question is from
1:21:39: Kyer uh for war building a way to commit certain changes similar how it works would it be nice but probably not
1:21:46: feasible yeah it want a little bit trickier because um you need to be able to like you know do like a diff for the
1:21:54: war which might be possible um we could you know like one way to do it like we could
1:22:03: add a system where whatever changes you're making it just you know serializes it into like a text
1:22:10: representation and then we just do a diff on that you know and then you can use external tools but it's not going to
1:22:15: be as well integrated with the rest you know resize it also require that textual representation to be stable so like you
1:22:22: know it it doesn't just detect that whole thing change you know it only takes like some individual changes which
1:22:28: I think should be feasible if it copies the hierarchy um so like I think it's potentially
1:22:34: feasible you could also like you know have it more integrated into the system but there also a question you know do we
1:22:40: want to have it well integrated where like how are you viewing the diff are
1:22:46: you looking at it you know in terms of you know looking at the text because if you're looking at a text representation
1:22:52: that might be really tedious because you know might be like thousands of things that changed
1:22:58: and it's hard to visualize it's hard to visualize you know what the changes are because it
1:23:04: it's all you know just a textual representation uh what might be more useful is having you know sort of
1:23:10: in-game visualization of the changes so say you know we remove like you know this thing or we move it there's
1:23:18: something that shows that change and can you know just quickly flip between the two and compare them and maybe accept
1:23:24: individual changes but does Sol little more work because now we have to build
1:23:29: like you know some way to detect those changes and build like you know tooling
1:23:35: to visualize you know that those changes happened so that is feasible um it's
1:23:42: just you know matter of like how we want to implement it and you know how much time we want to invest into
1:23:48: it uh so checking we still got like uh 35 minutes left so we're good on time
1:23:55: mod Balon is asking is there a way to override the size of optic volumes per Avatar I got a gigle pug recently I had
1:24:01: to make flu to resize the htic volume radius because it actually couldn't go big enough for me uh wait so you're
1:24:09: asking for haptic Vol do you mean the htic triggers or the htic Samplers
1:24:15: because you can change size of both uh but depending which one you want it's a
1:24:21: little bit uh it's going to be a different process uh if you're using the giggle pack um
1:24:27: that one actually should be in settings uh let me actually check mine and there should be a bunch if I go
1:24:35: manage giggle packs uh there's you know you've got like a htic htic point radius
1:24:42: and you got a bunch of positioning options so you can change you you know that way
1:24:48: um if you want if you want the hoptic you know Triggers on the Avatar that's
1:24:54: um it's a little bit tricky because you would need to like modify it for each person because generally it's going to be sized to their Avatar you can put
1:25:02: custom ones on the Avatar so for example you know if I wanted my snoot to trigger things I could put a htic trigger in
1:25:08: there um so there one way to kind of customize them uh there should be components to like disable the default
1:25:14: ones too if you want to build you know just a fully custom one as well uh but overall you should be able to modify
1:25:20: them if you're using uh you know like a beab Tak vest there's actually
1:25:25: components that specify how they're mapped uh the only thing is you need to have the vest on so it actually creates
1:25:32: the objects then you create you know enable the visualization and you can mess with the values and see like make
1:25:38: sure you know it matches your avatar so hopefully it kind of answers
1:25:43: it like if you have more questions let let me know and it kind of clears the questions we have for now and still got
1:25:49: a bunch of time left so now what uh
1:25:55: I guess oh more questions we're saved we're saved from awkward
1:26:01: silence uh Mor B is asking yeah but like I can't really move them individually should I make feature requests for that
1:26:09: um I'm not really sure like you should be able to move them like individually
1:26:14: because like well it's just one for the giggle Park so I'm kind of confused what you
1:26:22: mean but yeah I can always make like an official request we can of look at it like include like some details there
1:26:27: because I'm a little bit uncertain if I'm understanding it correctly right
1:26:33: now I know back to the awkward
1:26:38: silence uh I you got any more questions in
1:26:45: there hello hello more questions I say meow meow
1:26:53: even though even though I'm not a cat was your favorite me the like good cats are good can also
1:27:01: do that's Fring
1:27:07: noises just do that also that also answers the next questions what does f say
1:27:14: a FS makes Fring noises make Fring noises I make lot of noises
1:27:24: oh my God now we're getting all of silly questions Asis Asis wolf is asking what
1:27:29: is um uh this this
1:27:37: is can I hit that one I
1:27:44: missed I failed uh next question is for modern
1:27:51: balony is potato a construct of the Mind
1:27:57: one
1:28:14: moment where is it so this is where inventory s would be
1:28:20: useful
1:28:30: ahuh um oh this is the bleeding one um we've got a bleeding
1:28:37: potato it's actually funny story about this one because I was making I was making a pulsating potato for some
1:28:43: reason and then gear Bell she shot it with a gun as I was saving it so it got
1:28:50: saved with a gunshot so just you know just make
1:28:56: it oh what happened to it I deleted it but
1:29:01: it was supposed to explode maybe this is the exploding
1:29:07: one maybe this is the exploding one let's see yes this is the exploding
1:29:15: one uh I hope that uh answers are questions mother melon also thank you rmen for the Prime
1:29:23: subscription thank thank you
1:29:28: we um next question is from the red Neco
1:29:33: reposting because I was gone when he responded last time I'm on SO hour s issues oh I I recommend like you know
1:29:41: just rewinding the stream or like you know watching the uh watching the
1:29:48: recording like usually put it like you know day after uh next question is from justtin
1:29:53: sprinkles F how does it feel to look at Gan spot in VR it's kind of cool like it's like um it also like it's kind of
1:30:01: like [Music] weird like if if you got a good splot like it just it looks real which is
1:30:08: really weird like I don't know I don't know what to
1:30:14: describe it you'll be able to see soon enough because um I do have the gassian spot like rendering working and it works
1:30:20: in VR and since the last demo I also fixed you know some isues also C actually has been working um you've been
1:30:27: making the port the C Port of the library for like a file format for them the spz which makes them like way
1:30:33: smaller for storage um yeah so um you'll be able to use them I
1:30:40: didn't want to push it because it touches the cloud and I was like at FC and then traveling and I was like I
1:30:45: don't want to in case something blows up but you know I don't want to be making changes to that right now um but I'll
1:30:51: probably release it you know sometime next week uh at least the initial version of it so you'll be able to like look at Splats you know yourself the
1:30:58: only thing is they're can like they're pretty heavy uh there's going to be some things that going to reduce heaviness
1:31:04: like in memory compression but generally they kind of heavy um you might want
1:31:10: like you know use them in a simpler worlds uh and you might need a b GPU to
1:31:15: Rend them uh the red Neco to mobile play you
1:31:21: can you know just wait for the YouTube like you know up here
1:31:26: tomorrow uh rmos 0211 any PL replace the cloud home newers have very hard time
1:31:31: loading it um we don't really have any plans like to replace it um and generally we can there have been like
1:31:37: some optimizations to it and we can always do more optimizations there's optimizations in alter engine uh if
1:31:43: there's like issues with like loading it it would actually help us to know what those issues are you know is it like the
1:31:50: assets are taking a long time to load which might also be weird because like you know we preach it so that's that'd
1:31:56: be actually weird like is it like you know or is it like too heavy or like
1:32:01: what exactly do you mean you know by the users having hard time loading it um
1:32:06: because of know we get like feedback like this but it's very vague it actually makes it very difficult for us
1:32:12: to do something about it because it's not enough for us to you know understand the problem that people are having if we
1:32:19: understand the problem then we can better you know engineering solutions for it um um you know and figure out
1:32:25: like what's the best approach uh but like you know we're not going to replace something you
1:32:31: know just because you know like if if if feel like we to replace something
1:32:36: without even understanding what's the problem in the first place you know how would we also make sure we don't
1:32:41: introduce the same problem with a replacement that's not really you know a good approach um so generally will
1:32:51: um um you know generally like you'll have to
1:32:57: like give us more detail essentially like you know what what kind of issues are people running into let us
1:33:03: understand the problem and let us you know figure out how to fix it uh the next is s comol which I just
1:33:11: about that okay so that's also like all the questions right now we could actually I
1:33:17: forgot but like we are running on the perious build so we could give a bit of a showcase uh of some of the new things
1:33:24: because um one of the things that this is uh uh one of the things that you know
1:33:30: that is earning is we have a new system for ambient
1:33:35: light um specifically like you know uh when whenever you're in a world there's
1:33:40: like multiple things that contribut the lighting of you know of things so you have like you know the direct light you
1:33:45: know that's like um I actually switch this to SM POV you know you've got the
1:33:51: direct light that's coming you know from the side over there but there's also like ambient light because I don't think
1:33:57: there's like any light sources in this direction uh and there actually taken from the Sky
1:34:03: Box um so would you actually be able to can you kill the main light like the
1:34:08: directional light so it's just the ambient light so we can kind of see what that looks
1:34:14: like yeah let me uh let me grab the sunlight here and just turn it off all
1:34:20: right there we go just turn over the sunlight so what do you see on the sphere
1:34:27: um make sure this is now elimated purely at least it should be I don't think
1:34:32: there's any light sources surely by the Sky Box uh there's this one right here
1:34:38: there's this one is it is it doing anything oh yeah I see it just all the
1:34:44: lights [Music]
1:34:56: trying to find where the heck the light is
1:35:02: whoops I found it I think is like contributing super
1:35:07: much anyways actually a bit hanging light that one or that
1:35:17: one okay there we go there we go oh yeah it's darker so now this should be
1:35:23: illuminated purely by the sky BLX um and actually what the unit is using for this
1:35:29: is something called spherical harmonics it's a this like mathematical construct
1:35:35: that allows you to encode low frequency information you know that's directional
1:35:41: so like in every direction that the surface is facing it can you know sample a color and get like you know this very
1:35:46: smooth out you know color information and before this was you know
1:35:53: complete handled by unity you know we um we essentially we're just you know
1:35:59: letting Unity do its own thing we just telling it like you know pleas recompute this now now there are a few problems
1:36:05: with that one of them is like you know you don't have direct control over it if
1:36:10: you want it to be like you know bit brighter or darker than the Skybox or maybe you don't want it to much the sky box at all you are not able to do that
1:36:18: um unless you doing some you know Shenanigans with fake skyboxes the other problem is is
1:36:25: um like um the other problem is like it's very CPU Havey because what unit it
1:36:34: does it just computes the texture transer to the CPU and computes it which means it would cause like a lot of
1:36:39: stutters and freezes and drops in frame rate so we have to throttle how often it actually Rec computes it and because of
1:36:46: that if if the lighting was changing in the world it would be very um it would
1:36:52: be very ja good uh let me where's the tool I kind of I think I left it
1:36:59: somewhere here um oh there it
1:37:04: is so I grab a tool which means like if you made it dark like you know it would
1:37:10: be still light for a little bit and then you know change after it but here if I change the sky box it's pretty much
1:37:17: changing instantly and make it dark as it's like it's super duper dark blue on
1:37:24: the top it's definitely not how that's supposed to look uh we need like some
1:37:29: tweaking there's like uh higher frequency like informations
1:37:36: um it's probably getting it also like from the bottom as well but uh pretty much like what a
1:37:42: principle for this is is you know it's now using a compute Shader to compute
1:37:48: the spherical harmonics uh which is way faster which means you can pretty much run every single fr
1:37:59: um so if I actually open up you know if I open up the inspector and I find uh
1:38:06: underw assets I think it's on the sky book oh my God you're so you are so blue
1:38:14: I'm blue on a skyb materials uh where's the sky books
1:38:24: oh there we go skyb component is the one I want there's new components like ambient light S2 and there's like you
1:38:29: know the spherical harmonics um so what I can do is like you know if I change the lighting in the
1:38:35: world you can see de values change and the colors they kind of roughly much but they kind like you
1:38:41: know they represent like coefficients so they're going to be a little bit like weird that's all dark
1:38:49: um interesting that like when you make it full day like it gets it's really really dark blue yeah it's picking up
1:38:57: from something but um the way it's doing it is actually rendering in know reflection probe and then this component
1:39:03: reflection probe and H2 is you know color connecting from that and one of the things you can actually do is like
1:39:09: you know there's uh um the spherical harmonics is using second order which
1:39:15: means there's the flat like you know just single color and then there's like SE orders which have like higher
1:39:21: frequency information and you can actually these you can like you know make this brighter and like you know
1:39:27: lower the lower frequency components and kind of you know adjust like you know how it kind of looks um from my
1:39:34: experimenting you know this kind of like tuning the parameters a bit like brings it you know closer to like Unity because
1:39:40: Unity for its own calculation seems to like boost a like low frequency and um
1:39:47: more kind of smooth out the higher frequency information because the high frequency tends to like add like you
1:39:52: know very strong like darks or brights uh so you can like mess with it but you can also like you know now you have kind
1:39:58: of freedom to adjust these you know to whatever fit award like if you want to be really bright it's really bright
1:40:06: um actually see like if if I boost the high frequency high frequency you know bits
1:40:12: you see there those are contributing to really dark zones so might do this but also this is
1:40:20: just a you know a value so you can can use this with protx you can you know
1:40:26: compute your own you can like you know do whatever on with it or you can pre-compute a bunch and then you know
1:40:31: lurp between them so like if you're in open world and you go into a cave you can like lurp it to like make the
1:40:37: Ambiance darker so now we have like you know a lot more can of control how this works um this the ambient light sh2 it's
1:40:45: literally just being driven from this so I can actually just break the drive you
1:40:50: know and then I can like put whatever I want here so if I if I like let me
1:40:57: actually just let me reset the volum first um reset the default and now you know there's no ambient light at all and
1:41:03: everything is absolutely dark actually this makes it easy to see like the other light sources you can see there's a
1:41:09: light here because now the only source of light is you know whatever the light
1:41:16: sources are and there's no ambient light it's like pure Darkness um but I can maybe like put
1:41:22: like this here if I put three and now everything's red or if I put like red into the higher
1:41:30: band you see now is a red from the top so like top is red but bottom is going to be
1:41:36: darker and we can do you know Green from the side so you know now it's almost like
1:41:41: there's like a green light you know that's coming from this side and usually wouldn't put extreme values like this
1:41:47: but I'm just kind of doing these as a demonstration you know you can you can do very fun on of things with the
1:41:54: lighting and you pretty much have like you know just full control over how this
1:42:00: works uh I can show you some higher bends too as you go like higher and higher uh you see this one kind of has
1:42:06: like two kind of waves that kind of happen on it never look around Cyro is
1:42:12: like very harsh lighting but it's good for visualization so I can just put this
1:42:18: back here I can drive it and I was been computed you know from the Sky Box again um but any existing worlds uh or any new
1:42:27: ones that you create they're going to have this kind of setup where the UN light sh2 this is actually what
1:42:32: determines what the ambient light is in the world o what was that I I was
1:42:38: touching it oh okay um so it determines you know what this
1:42:43: is um and then this component is compus it from a reflection probe it also adds
1:42:50: like you know a big reflection probe that like you know just kind of covers average and it provides Skybox you know um only
1:42:57: SK like it only renders Sky Box so all your un lightting is you know from that but you can make you know more
1:43:03: reflection probes um compute you know compute this save it into a field and
1:43:10: you know then like you know make a bit of protox that interpolates between the two um Beau have a bit of time so I can
1:43:17: actually show you how to kind of do that so if I grab perlux um
1:43:24: let's make
1:43:29: uh I'm going to I'm just going to add two spherical
1:43:36: harmonics so the data type uh is
1:43:42: spherical harmonics and this one supp called second order so it's L2 and the data
1:43:49: type of the coefficients is color X so I
1:43:54: add a value field there we go and I'm just going to duplicate it so say like this is you know one
1:44:01: light thing I like uh I'm just going to
1:44:06: grab this value actually no that's not a value I'm going to grab this value and I'll bit
1:44:15: here and say I want to change the lighting I want to be like this so it's
1:44:21: going of know reddish and I grab this
1:44:27: value and D it here oh grab the wrong thing um grab
1:44:33: this DP it here so I have these two voles stored and I can just you know Source
1:44:39: them so source for one source for the other
1:44:45: one and then I can just use uh you can kind of think of these like you know if you work with vectors or matrices is a
1:44:53: little bit similar uh you can interpolate them forget
1:44:58: this interpolation volume lurp and I'm
1:45:03: actually going to type the volume just going to let it overload so from two l
1:45:10: so it just going interpolate and now for this one I'll just break the
1:45:16: drive I don't care about it and I'm going to drive it from Proto flag I know it's dark you know and now I can
1:45:24: actually control it and you see now it's kind of like interpo between the two of them and if I
1:45:30: do 0.5 do like you know one that's in between um so now if I
1:45:38: plug you know so I do time and I do like a sine
1:45:47: wave uh sign wave sign the trigonometry
1:45:56: sign and I just want to REM up it too so it's a rem
1:46:05: up there we go so I have a value that goes you know from 0 to one I can plug it here and now you know my ambient
1:46:13: lighting is you know interpolating between the
1:46:18: two and with this you can pretty much you know this is just a simple example
1:46:24: you can do whatever logic you want you know save you know your spherical harmonics values and we do whatever
1:46:30: interpolation and then drive you know this with pretty much whatever you want you have like no now much kind of better
1:46:36: control uh the other thing you could do is you can also multiply these values so say like I want this to be
1:46:43: brighter uh you can use the let's
1:46:49: see uh multiplication it's just
1:46:56: small I'm going to let it overload so I'll take this like the result oh wa I
1:47:02: cannot it doesn't like this
1:47:07: um no wait oh wait do we not have
1:47:13: multiplication for this one oh I only need to add
1:47:20: these there might be some operators still missing uh there's one to if I go
1:47:26: math spherical harmonics there like one specifically there's scale ORD so I can
1:47:32: um go color X and just scale the
1:47:41: values there we go go scale orders I can process this one do
1:47:49: this and this one one and I can I just you know make good breath Ral
1:47:57: want and you can do you know again whatever kind of processing you want on these or say like you actually want it
1:48:02: to be darker compared to skyborg so it was like you know 0.5 and now the Ambiance is
1:48:10: darker so hope this kind of you know gives you like bit of an idea you know how this kind of work and how you be
1:48:15: able to like utilize them um how you'll be able to like utilize them for um
1:48:20: controlling the ambient light in the scene so I'm going to move this might just
1:48:28: leave this here it's going to be changing the lighting but the thing is fine it looks
1:48:34: a little bit funky symetric is a bit funky there we
1:48:42: go oop why is my the I'm just going to do this
1:48:49: um there we go uh we actually got a few more questions
1:48:54: as well so uh let's have a look uh the red Neco is asking we also have 10
1:49:02: minutes left so we might not be able to get through all the questions depending how many there there is
1:49:11: um so um we'll be able to see how many we can get through uh the REO is asking
1:49:19: actual question though any plans to get the Linux build working again once Swit switch to source as this GPU performs
1:49:25: about 50% of Windows to proton it in multiple Worlds the worst example is great space where Windows get 1 FPS at
1:49:32: 60% usage where Linux and proton is mere 80 to 90 FPS and maxing out my GPU uh we
1:49:38: don't really have any specific plans that something will have to reevaluate you know at later Point um it might make
1:49:44: it easier to support because you know like U the engine is being based on one
1:49:49: that should have like multiplatform support but we'll still have to like see are there any kind of complications with
1:49:54: that you know what other things we have to deal with there might be you know other libraries other things to consider
1:49:59: so uh canot make any promises right now I think like the vi performance it might
1:50:05: depend on on your setup because I kind of hear conflicting things like some people are actually s you're using Linux
1:50:11: as well and you yeah so the the performance like under proton can definitely vary
1:50:18: depending on your setup I'm currently using a uh I'm currently using A
1:50:23: build-up proton uh that has like better emulation
1:50:29: or not emulation it's not an emulator don't quote me on that uh uh it has better a better
1:50:36: implementation of like um or a better reimplementation I should say of like
1:50:43: Windows like synchronization Primitives under the hood so that is how it synchronizes resources and so that's
1:50:50: called NT sync um so it's like like a special Branch
1:50:55: proton that has this NT sync thing in it and it run it can it makes it run pretty
1:51:02: good like I don't the performance difference between Windows at this point when I'm using this is pretty negligible
1:51:08: but like you can still get pretty good performance even on just like stock proton and you know some people say it's
1:51:14: faster some people say it's slower it really depends on what game you play What hardware you have um so like if you
1:51:23: notice a difference definitely like don't consider that the be all end all result of like oh I guess you know
1:51:30: proton is just bad cuz it really could just be
1:51:36: like an unfortunately like poor combination of like Hardware or whatever I don't even know yeah I mean we do have
1:51:43: like a Linux channel in the Discord so we might like poke there I know like some of our like active Linux users like
1:51:49: they um they like you know give people like advise share you know their experiences so they may have some poters
1:51:55: you know how to improve performance as well so it might be worth like you know trying
1:52:02: um next question is like oan game club wonder if there's a b and Shader sphere calculated like concave versus conx that
1:52:09: would Mir inverted reflection like concave Tri Cube shape I don't really know what you mean I
1:52:15: don't I understand that I'm sorry yeah it doesn't really relate to the things I'm
1:52:24: sorry uh DJ P Hunters can it apply spherical harmonics to shading independ objects like avatars uh no you cannot
1:52:32: you cannot apply it to individual objects uh so unfortunately not like
1:52:38: it's a Del liting is kind of global so it applies you know to everything in the
1:52:43: world um Rasmus 0211 not exactly resonite but uh uh seen anyone running
1:52:51: around with resonite t-shirts yes a bunch I actually saw some people post on like blue sky recently which is kind of
1:52:57: neat um I've also like uh
1:53:03: um uh with' uh like seen a bunch of like you know like blfc because there was like a lot of people it's kind of sort
1:53:10: of like the defao resonite con and was like a lot of resonite like resonite t-shir people we also had like some
1:53:16: people at FC I had my thite shirt but I didn't actually wear that one but some other people did um this is why it's
1:53:23: kind of cool to see them you know in the wild and next question is DJ Hunters can
1:53:29: we get per not that displays the value of the USA national depth clock um I
1:53:36: think I think we don't have uh data types large enough for [Music]
1:53:43: that H boy I mean there is there's you know web soet like you know interface
1:53:50: you can you know just plug things you know from external apis if we want to assuming there's one for
1:53:56: this also covers all the questions again we've got uh 6 minutes left so we
1:54:02: actually might be able to squeeze a few more questions I thought it was like few more but if you got any question if you
1:54:07: got you have a question I have a question what is the question so I don't anticipate uh I
1:54:16: don't anticipate this but an answer given given that you can calculate the
1:54:22: sphere harmonics from reflection probes does that then open the door to
1:54:27: potentially uh basic support for GI probes based on those vehicle harmonics
1:54:35: I mean you could oh thank you NASA phantom for the for the subscription thank
1:54:41: you um I mean technically yeah it's like the what the um what are light props
1:54:47: going of do um is essentially like instead of you know just a single Global one you have like you know a bunch of
1:54:53: them kind of scattered in the world and then when you're rendering things it like you know it essentially samples
1:54:59: that it finds like the closest ones and uses like a t like interpolation to like you know compute a value between those
1:55:06: probes so technically we could support
1:55:11: that um we might not because like you know that adds a complexity to moving to
1:55:17: Source because there is a thing that needs to be reimplemented and uh I've
1:55:23: had a like you know like uh before actually implemented this like a conversation with G as well just making
1:55:28: sure like you know it doesn't kind of cause complications there um and that might cause complications so
1:55:35: like you know it's one of those things we might not want to do it because it's going to delay Souls you know a lot more
1:55:43: um is a similar thing you know with shaders like we if we wanted to we could
1:55:49: add support for custom shaders right now problem is all of the shaders you would
1:55:54: make would break uh when we switch to Sauce which means your content would break and that's something this one of
1:56:01: our philosophies is like we try to avoid you know tooth and nail like we will try to avoid breaking content as much as
1:56:08: possible and because of that even though on the technical side it's easy to add right now you know we could just let you
1:56:14: build custom Shader with a Unity there's not a path to maintaining longterm compatibility and because of
1:56:21: that we don't do that feature and this is kind of like similar this one we could Implement with uh sauce like I
1:56:29: don't see like anything blocking it like you know other than time but you know sometimes if to kind of weigh it is like
1:56:36: is it really worth it having it now
1:56:42: um you know is it wor like now and then like you know make delaying
1:56:48: you know the thing that's going to provide even more benefits later so probably not I would say on technical
1:56:55: level yes on Project planning no
1:57:01: gotcha uh next question is from Alex Tako Anon how many things you have to reimplement from Unity to get it out of
1:57:07: unity from the game thank you so um there's actually a longer talk on our
1:57:13: YouTube channel I recommend checking that one out uh because it goes into detail but there's pretty much two
1:57:19: things that are like features uh one of them is the particle system Photon dust is our new custom particle system that
1:57:26: pretty much does that um that one's about to be finished so we're going to remove the all Unity One we're going to
1:57:33: have like you know Photon dust uh very soon and the remaining thing after that is the audio system which there is also
1:57:40: another video on our YouTube channel about that so once the audio system is done then it's pretty much you know like
1:57:46: something I started jokingly called the splitting we're going to be you know pulling FR engine out of unity will
1:57:52: still be using Unity you know for rendering at that point but we'll get like the big performance Improvement by using net 9 runtime which is much better
1:58:00: Cod gen um at that point the we only have to replace the renderer you know to
1:58:06: get completely rid of unity uh which is going to be one of the next steps like after that at some point after that um
1:58:14: and then we'll pretty much be completely rid of it uh but right now Photon dust is almost done audio system is going to
1:58:19: be working next and then the actual work on like the unity communication and splitting out into process is going to
1:58:25: be pretty much the next thing um so next question is from rmos
1:58:32: thoughts on resonite operating systems will resite move more towards Linux as Steam OS some people have been Cod
1:58:37: running resonite on Steam Tech um probably not in the near future because like Windows is still as unfortunate as
1:58:45: it is it's still majority you know of Port people around to run VR um so until
1:58:51: that changes I don't see us you know moving um it's kind of you know thing is
1:58:56: like you know like if there's a lot of people using certain thing then it's worthwhile for us you know to invest
1:59:01: time into it um but if like you know if there's not much pressure like you know
1:59:07: like we might not be able to dedicate time to it anyway with that we pretty much have
1:59:13: like 4 three seconds left so um should be able like wrapping it up so thank you
1:59:18: everyone for like you know joining the stream uh thank you for asking all the questions I hope like you know you
1:59:23: enjoyed like you know the answers you enjoyed learning more about there learning about what the future is learning you know how we work uh thank
1:59:31: you as well you know for making really cool content you know whatever we make like in the community what like or if
1:59:36: you just like you know hang out and socialize we appreciate it too because that helps you know it helps the
1:59:42: community kind of keep going and keep this platform going and thank you everyone you know who supports us you
1:59:47: know now on patreon or strip or through whatever other means uh is it helps you
1:59:52: know make sure like we can keep doing this so thank you very much thank you very much for watching thank you s know
1:59:57: for being here here helping me yeah and answer some of the things and uh we'll see you with the next one next week so
2:00:05: thank you very much and bye bye bye I have to check if there's
2:00:11: anybody to ra uh oh are you let me see I
2:00:18: see crater Jam uh there's blue jay oh they're actually in
2:00:24: the Creator gam I'll R Dam uh blue J JB everyone get R it's kind of funny
2:00:31: because there's like literally two next to each others like crater Gem and blue jay and they're both like sh the same
2:00:37: thing so I'm going to do ra uh blue J I like to support you know
2:00:45: like streamers uh blue J
2:00:52: blue jjp let me make sure I good at the right
2:00:59: yes uh Che out raate the ra has been created uh it's
2:01:07: getting ready so everyone say say hello to Blue
2:01:12: J from us and we're reading now we
2:01:22: oh my God they get like a go from one viewer to a bunch