From Neos Wiki
Jump to navigation Jump to search

<< Previous Next >>



In this Office Hours, Probable Prime talks about:

  • Sync Issues
  • Quest Pros
  • The asset variance system
  • optimization
  • UI


(Please note that the transcriptions will not be 100% accurate)

Welcome to prime time, the weekly AMA for me and Neos.

If you have questions, please drop them in the office hours text chat.

That is a few channels above, there is a thread for your questions.

Any questions about Neos will be answered in the order that they appear.

Whilst there are no questions in that thread, we will sit in unimaginable silence.

I hope that you've had a fantastic week.

If you have questions, drop them in the thread and I'll get to them as soon as I can.

Thank you.

Okay, so we have our first question from Lex.

Lex says, is there an in-depth explanation on how the asset variation system works?

There is not.

I can give you a sort of brief overview now, which will help for those people who are just like, what is that?

I'm sure that Lex yourself, you know a little bit about what it does when doing it for the benefit of those who are listening.

So the asset variance system is a system where when you give Neos an asset, an asset being a texture, a model, a sound,

anything that like isn't actually an object, but is like parts of the object and not logics or components,

just like the visual aspects, the models, the textures, the sounds, the videos, etc.

When you give Neos one of those, it will run it through what's called the asset variation system,

or variant system, which is what we usually call it, not variation,

which is basically designed to make it cheaper for us as Neos to store those assets on the Neos cloud,

but also better for you guys to download and witness those assets with inside Neos or inside your sessions.

The notable example of this, which you'll probably see and have seen and wonder what the hell is going on,

is things like normal maps. So in Neos, when you drag a normal map into the normal map square of a material,

you'll notice that it turns from the sort of standard normal map, the blue, into a normal map, which is red.

Turns out that storing a normal map in that red format, technically speaking, there's technicalities here,

but I'm just going to say the colors red and blue a bunch until we move on to the next question.

Technically speaking, storing it in the red format is more optimal and has less storage requirements,

bandwidth requirements, etc. to get to you than in the blue format.

So we're doing that on behalf of you and it honestly is generally better.

There are a lot of cases where I've seen where users are just like deliberately asking the asset

the asset variant system to just not run and it bothers me.

I do have a video about that one on the channel that talks more about the asset system that runs in a world

rather than the one that runs on a cloud, but it's kind of the same thing.

It's like let Neos do what it thinks is best, unless it actually isn't best, right?

You have no reason to overrule the asset variant system or the asset management system within a world

unless you know exactly that you need to do that and have a good reason to do it.

So I'll link that video in the thread.

But there's no like full definition there, hence why I had to gloss over some details.

Some of them I don't really know myself either.

I do know, as I was reading in a conversation later, earlier, I don't know why I said later.

Yes, I was reading in the future that I travel back in time to this office hours to tell you about it.

I was reading earlier in a conversation somewhere else that Fruks is actually very proud of the asset

variant system, so that's good to hear. I'm happy that he's proud of his work.

I do hope that we'll get some documentation on that when we can.

And I understand that that response probably wasn't that good.

Hey, it should have helped those out that don't know anything about it.

Dio says, what's the featured cheese for today?

I don't answer cheese questions. There are no exceptions to that.

I almost did, but I'm like, nope, no cheese questions.

So moving on.

So Zach says, all optimization be prioritized when things pick up again.

Losing words here. There's only like a defined amount of English words one can say in a day.

And when I run out of those, usually five minutes after I wake up, I just start like speaking absolute gobbledygook.

I can't really say what is going to be prioritized when things pick up because priorities change.

And in a lot of cases, priorities are influenced by multiple things, right?

So the way that the roadmap was back when we were doing optimization, sorry, when we were doing stuff before this mess,

we had different priorities because we had two additional team members that we were listening to,

and their priorities were factored into it, et cetera.

Our priorities before this mess were to rework the settings UI simply because we need to.

There's just too many settings that we need to set.

So we needed a new settings UI, and then immediately following that, we're going to look into user blocking.

None of those happened, of course. See the announcements channel for more information.

I'm not going to talk about that right now.

We will endeavor to optimize Neos wherever we can.

Sometimes optimizations appear when you least expect it.

The other day I was editing the volume plane slicer, which is for things like MRIs and stuff,

and I rewrote parts of it to be half the code.

Now, that isn't optimized in terms of performance, but that is optimized in terms of my brain when I read that file.

So, you know, multiple types of optimization.

You can be, I guess, more specific about what optimizations you're looking forward to. I can talk about those for a little bit.

We have a question here from Mr. Very to the point username. Hello, Mr.

Is there any plans on reworking the current main menu, escape menu for a better user interface and user experience?

Every single part of the Neos UI is due for rework.

Even the parts that we have already reworked are due for rework.

None of the UI is like final, and I don't think it ever will be.

But in this particular case, none of the UI has entered even its non-beta stage.

You've got to remember that Neos is early access and in beta.

So, yeah, everything will be reworked.

If you're looking for things like that, head over to our UI remap and just control F the word dark,

and you'll just see it everywhere, because the common question we get is like, can we get dark mode here?

And it's like, yes, you could have dark mode on literally everything once we rework the UI.

And it's all on that UI roadmap, and you can find information about it, such as our plans, our ideas,

what we're thinking about on that UI roadmap more than I can speak to right here.

Projects one, I believe, is the major roadmap property.

I believe they want projects two, which is the UI roadmap.

Yeah, projects two is the UI roadmap.

No worries. Projects one is great too.

In fact, if you just go to like Neos public projects and you just read all of them, that'll be great.

When we get things back up and running, I will be working.

For those who don't know, I am a traditionally trained engineer and product manager now, so hooray.

I've got about five years in each of those disciplines. That's great.

So I'll be reworking that roadmap to be less boards.

I think the multiple board thing is kind of bad.

You also see on GitHub now that our project boards are listed under projects in brackets classic,

and that's because GitHub released a new projects format that allows us to do a lot more things,

including views, tagging, custom fields, all sorts of cool stuff.

And that will let us collapse all those down into one board once we get going again.

There we go. That's all the questions.

I hope that you are all having a fantastic day.

I'm going to go ahead and sit here in unimaginable science until we get more questions.

Okay. We do have a question here. Fantastic.

So we have a repeat. So Ramper says, let me repeat one thing I mentioned during the moderation office.

I knew about it too.

I think there should be enough.

See, just running out of English.

I'll get a handle on it, I promise.

I think there should be an official explanation on the FAQ why Quest Standalone is not yet supported.

Usually when I explain why people snap back with something like, what do you mean?

VRC already did it, and Bonelab is a prime example of running on the Quest Philly.

Those sorts of people, they're asking the wrong question, I think.

It's a very stereotypical thing.

It happens a lot in video games or other products or basically just everything.

You can even take it back to construction.

You drive past on your way to work a bridge that's being built every day for five years,

and you go, why haven't they finished building the bridge yet?

And they just have no concept or knowledge about why that is the case.

So there is certainly something that we can do there to make that clearer in that case.

But for the people who retort with VRC already did it, there's less that we can do

because they're less reasonable.

So if you're answering why and explaining the constraints and the concepts there,

I don't think there's much more that we can do than that.

But we can add the constraints, the reasons, the why to the FAQ,

and that should at least alleviate those people who will read that and understand that.

I could probably, for some of those users, I could sit here around a circle with some campfires

and some s'mores and be like, here's exactly why we don't have Quest support.

And I could get out diagrams and charts and lines and graphs.

What's that image with the conspiracy theory thing from the comedy?

I don't remember what show it is.

You know the one, the meme image.

I don't know a lot.

That one, yes, that one.

I could do that, that image.

I could do that image for hours, and that kind of person might still say that VRC already did it.

And that just means that they don't have the right attitude to listen to us.

So there's certainly more we can do in the FAQ there to lower the amount of them.

You can't win them all, but we could win back a few more by editing the FAQ

to be a little bit more detailed in the area.

Additionally, we sometimes get feedback about why it says on the website that we do support Quest

and we don't support Quest.

You know why that is.

We don't even say what's going on there.

The website also says that we're in a partner with various educational establishments.

And while we do have people that work at those educational establishments who use Neos,

the word partner means that there's some paperwork in place,

and there is not paperwork in place for some of those.

Or there might be, I don't know.

But I know for a fact that there is not paperwork available for some of those places,

so I wouldn't call them an official partner.

But hey, that's the website for you.

I mean, we could buy the logic that is being used to put partners on there.

We could have put Microsoft on there when I worked for Microsoft and said,

yeah, because a Microsoft employee uses Neos and works for it, we're partnered with Microsoft.

It's like, it doesn't work like that.

Like a partnership is a partnership, right?

If you like Google partnership on like a stock image website,

you'll probably see a lot of like people wearing suits shaking hands.

If there's no shaking hands or wearing suits, then it's not a partnership.

Yeah, Zach is a perfect example of partnership, a stock image.

Hey, do any of you work for like a grocery store or a fast food establishment?

We're partnered with those two, because you know, you play Neos.

Yeah, I noticed. I'm glad about that.

It keeps them organized.

I should probably look into Lex's stuff rather than Sounder.

Sounder was great until like, I don't know, I complained about their transcription editor

and then they like appear to have removed the transcription editor.

I don't understand.

I used to be able to basically be like, cool, I'm going to edit the transcriptions and make them better.

And then they're like, it didn't work.

And I tweeted them about it and then they tweeted me back and then they removed the transcription editor.

Oh, God, here we go. Here's a big one.

I'll do my best, Lex.

Lex says, I had a conversation a while back when I found out putting NeosDB links that aren't yours in a URI field

would make the object count that asset link.

That was a card chain towards your storage space.

And that is intentional design with the reasons being here.

In my opinion, I think that having dead links would be better than not having your storage space be taken up due to the possibility of this.

What is your opinion on the duplication of assets for conservation of assets?

I don't have an opinion because I don't really understand what's going there.

I've read like everything you've done on that particular issue like three times and dug into the code a little bit.

I don't understand what's going on there.

I do think that there could be a way to do it that is obviously better for your space.

However, as aligned with the things to avoid list,

using other NeosDB links in URI fields should be a limited thing right now.

I mean, if cloud spawning, sure, but we don't support it right now officially.

But I don't know why that would come up in reality.

Like if you come up with a scenario where it comes up in reality, then we might actually come up with a scenario where

A, we can change that feature because your scenario is impactful,

or B, where we can come up with a slightly different feature that works to solve that gap.

I don't know.

But yeah, I haven't looked into it enough to like really understand what's going on.

I don't think uploading movies is against the guidelines.

It is sort of against the EULA and our like terms of service-y thing and stuff like that.

There is guideline stuff for copyrighted material, of course, as well.

But it's difficult to like, it's difficult for us to enforce that.

Otherwise, we'd have to start enforcing everything.

What I would say for those who are watching movies, if you want to share movies with people,

the worst movie provider is the Neos cloud.

Get a Plex server or some RTMP server, you'll have a much better time syncing files,

keeping everyone up to date, making sure there's no drift.

You'll have a lot better experience with subtitles.

You'll have a lot better scenario with storage as well.

You won't stick your sync.

You won't cause like Cosmos DB 429 errors.

It's the worst place to store movies.

I've also thought, and this isn't an announcement saying we're going to do this, so don't be scared,

but I thought, and thinking is good, remember, theoretical thinking about problems is how you learn,

I thought about how would we maybe like discourage this movie thing.

Well, we could see, hmm, how big is this file and what type of file it is.

Oh, it's a four-hour video? Great.

Must be the latest Marvel film.

So, you know, then we could maybe say like, hmm, maybe we don't want to sync that.

But it's really subjective because there are cases where you might want to sync a very big video file to the NEOS Cloud.

However, in summary, if you want movies in NEOS, I don't recommend the NEOS Cloud.

I recommend like some other form of getting that information into NEOS.

Rampa mentions content ID.

We could, again, this is not an announcement.

We are not doing this, but we could totally do YouTube's content ID on every single video uploaded to the NEOS Cloud,

just so you're aware. We could. We're not, but we could.

Moving forwards to, let's see, any other questions?

Okay, Zach has a question here.

Hey, like, I'm really sorry about this because like 90% of questions I get with syncing are exactly the same problem.

Every time someone reports a syncing issue, I go back to the sync Wiki pages and take a look at them.

And they have the appropriate information on them, so please read the sync Wiki issues.

And if you continue to have issues about that, please post logs in the Bugs and Feedback channel.

Not like screenshots of logs, not segments of logs, whole log files.

And take a look at that because any updates on the syncing issue will be reflected on those Wiki pages.

And that is, like, it's because, like, I'm sorry, but, like, I'm tired of talking about sync issues.

There is literally nothing I can do, and so therefore I'm trying to standardize that any absolute feedback I have

about stuck syncs or sync issues is going to be documented on the Wiki such that I make myself redundant

as a person talking about sync issues.

Like, I want it to be like a one-stop shop.

You know when you go to the doctor and they're like, all right, we're going to take your temperature

and then we're going to, like, I don't know, prod you a bit?

I want, like, sync to be resolved like that as best as I can, because that's all I can do right now.

Like, the real solve for sync is, like, some code updates.

But, you know, it's interesting enough, actually, and here's a random tangent, which is amazing,

because you're going to enjoy this tangent, except those who don't enjoy the tangents.

But if you're here for the tangents, you're going to enjoy this one.

I used to work for a motorsport management software system company.

So we made management systems for motorsports events around the world, Australia, America, the UK,

you name it, I've been there, wherever there's a racetrack.

And we have this problem whereby a motorcycle rider has a bunch of motorcycles,

because they're trying to enter as many races as possible to get as much sponsorship money as possible.

So if you have a 600cc bike and a 1200cc bike, those obviously cannot be entered into the same category of race,

because they're in lightweight and heavyweight classes, as in how big your bike is, how roaring the engine is, et cetera.

Now, we came up with a system which is a questionnaire, and you just fill in what your bike is.

So you say, like, what's the cc of your bike? You enter it.

You're like, does your bike have four legs, three arms, an upside-down sandwich or whatever?

You keep filling in questions. And what the expert system does is it figures out which classes you're for.

And, like, Eclat system is just like a defined computer software algorithm.

And I want to do that with the whole sync issue, because it's driving me mad, basically.

I don't mean to be bad to anyone, but I basically want to go to this website where it's like,

are you experiencing a syncing problem? Yes. Please upload a log file. Log file updated. Next.

All right. We've discovered that in your log file, this has happened. Have you tried doing this?

Yes. Next. And it will just keep going until it spits out, like, the exact answer for you so I can stop talking about them.

So I'm trying to get that going as well. Expert systems are cool.

You will get some resources in the doobly-doos about that.

Oh, a good example of an expert system is the Akinator.

You know, the one that guesses which character you are? That's an expert system.

I will now reread your question, though, as I just went off on a very large tangent about sync issues.

I don't understand what the problem there is. Are you saying that you're confused about why it's so slow?

In which case it's slow, probably, either for internet, which you say it's not internet, although it still might be internet because internet is complicated, depending on where you are in the world, et cetera.

It could also be indexing. Like, we need to know what we're sending, right? So it chunks up the file and then sends it in Prequence.

I actually have no idea anything about bikes. The way that we wrote the system, we had another system, namely called the rulebook for the motorsport organisation we work for, which defined the expert system rules.

So they would say, hey, we're a new customer. And I would say, great, have you got your rulebook? And they would say yes.

And they would give me the rulebook. And based on the rulebook, I wouldn't even understand what I was reading.

I would program the expert system. And then we would put some test bikes through it, and then inevitably when the first event for that motorsport championship would happen, we would get a bunch of calls and emails.

And they'd be like, this motorcycle should be allowed in this race, but your system says it's not allowed. And I'd be like, okay, according to the rulebook, section three, paragraph four, subsection A, that bike isn't allowed.

Could you clarify this, please? And we went backwards and forwards and backwards and forwards and backwards and forwards until we just had an exception system where they could say, here is an exception.

This bike can actually enter this particular race course. And it always had a justification field where we required like clock of the course, which by the way is like the director of the event, to like put in a reason there.

So like worlds are very, very complicated. So I'm going to try and do an example. Again, this is like wishy washy because I haven't read all that code yet.

Neos is huge, right? So let's imagine that you have a really complicated object. So I'm just going to be de facto a meme and say a custom inspector or a custom multi-tool.

That's a really complicated object. There's slots everywhere. It's very, very big. Saving that to your inventory is going to take a defined amount of time because of how big and complicated it is.

Let's now put seven of those in a world. It's then going to have to say the exact state of seven of those in the world. And so it's going to times that object saving by seven.

It will be a little bit lost, so it might be six or five because there are some duplicates it can link up. But it still needs to know like the location of all of those objects, all of those slots.

So if there's a hundred slots, each have individual position rotation scales, and then all of the variables that exist on there, a value field that says two, another value field that says four, it's got to save all those.

And the whole way it works is whenever you save a world, it takes the entire world, serializes it to a big database, and then just shoves it in the cloud.

And so that will take longer for worlds than it does for individual objects simply because of how much stuff is there and how complicated that is.

It's the equivalent of basically saying I would like to ship in terms of a moving company my entire apartment or one room of my apartment.

It's a magnitude bigger because of how much more stuff there is and where that stuff is located.

So if your home is taking a long time, maybe consider removing stuff in your home.

Personally, I don't use my home world. I think it's silly that people do put lots of stuff in their home world.

My home world is basically a diving board into the rest of Neos.

Zach asks, could it be my RAM and CPU? Probably not. Probably not.

OK, moving forwards, Rockman says, what do you think of the Quest Pro and how does Neos face and eye tracking work?

So Neos face and eye tracking, by my knowledge, currently does not work for Neos.

I created an issue for both the HTC Vive focus series and the Quest Pro, which can be tracked at this following link.

And once this issue is closed, we will support those headsets.

As for what I think about them, I am disappointed that the Quest Pro is $1,500.

I'm also disappointed that the Quest Pro is lacking certain features.

I'm also incredibly disappointed that at the keynote for the Quest Pro and related stuff, they had pre-animated demos of some of the technologies there.

I won't be buying any headset before I've seen a hands-on review from people who I can trust, such as the larger VR content creators,

and in some cases, before I can even go and take a look at the headset and put it on.

Headsets are heavy and uncomfortable, and before I drop $1,500 on something, I need to know what's going on.

The last time I did that was with an index, and that was a risk, and it was OK.

We're still talking about Zach's home world. Let's take a look at what's going on.

Saving is different from loading. The CPU freeze during loading is probably a different problem than saving.

Yeah, weight distribution is also massive.

That's why the headsets have so many straps and stuff like that, right?

You need to adjust those. Read the manual for your headset and see if you're adjusting those straps correctly.

Because if you're not, you're probably pulling your face off.

I just got this picture of someone ripping their face off when it's stuck to a headset.

Sometimes I feel like that after 12 hours in VR. Anyway, let's take this question I missed.

Mr. has a question. Fantastic. Sorry I missed it. Thanks, Lex, for linking it.

So after headless was introduced, is there any plans for servers?

Yes. Headless servers aren't servers, and I feel like I should get that on a t-shirt or something.

Headless servers are not our final envisioning for servers. Servers are.

We don't quite know what the gap between headless servers and servers will.

I love these tongue twisters today.

But it would be more tailored to being run in a data center.

And there also might be an opportunity or system or way that Neos runs some servers for you on behalf of the session host and things like that.

There are plans. I think there's some GitHub issues somewhere. You'd have to dig through them, though.

Sometimes, in office hours, I feel like a search engine.

So I'm going to go type the word servers into our issue list and see what I can find.

Yeah, so there's a couple of relevant issues.

There's this, which is like spooling up headless sessions.

You'll see Shifty says here dedicated servers are planned.

So that to me suggests there might be something on the roadmap.

So I'll go take a look at the roadmap.

Probably been a major roadmap here.

It did find that. I only found one.

Okay. Yeah, we need a card for that.

You can find some information there from Shifty and from Fricks.

And with that, I believe we're at the end of questions.

I do apologize for the continual sync issues.

I'm just like, I'm tired of seeing them.

Not because it's your fault, but because it's our fault.

I'm tired of there not being an ability for me to better solve that issue for you guys.

So in lieu of that, I'm trying to make your experience better.

And I want your experience to be you go to a Wiki page and you find your solution.

I don't want you to have to like spam staff or just like say in chat that there's a problem.

But to help me out there, log files, one report, and read the Wiki pages as we develop them.

In the final few moments I've got, I'm going to just point at the Logix channel,

where there's a video of a mathematical problem.

There isn't an AI. I know what you mean.

We'll just stop talking about syncing now.

In the Logix channel, by myself, there is a mathematical problem,

which I don't understand the reason for,

but I am continuing to work with Hamish S.H.F.R. on what the hell we need.

So if anyone has any idea what that video means and wants to speak to me about it,

please do take a look. It is mathematical in nature and AI rotationally in nature.

We appear to be on to something, though.

We've rigged up a new test rig that might show the problem a little bit better.

So if there is a solution there, or at least a problem identification option thingy there,

then I'll update the video or something.

With that, I'm going to go ahead and draw this to a close,

and I will see you guys next week, hopefully for additional questions and awesomeness.

I will speak to you later. Good bye.