Hello everyone, welcome to office hours for the 8th of the 11th, 2022. Is it the 8th already? Damn it. Okay.
So we're going to get started with some questions that we've already got. Please put questions in the thread that's been created and I'll get to them as soon as I can.
Sorry for the sniffles today. It appears I have a cold.
So Specs ask, while I know Neos updates are on hold, I'm curious if you or someone else on the team has investigated the Quest Pro's face and eye-tracking implementations.
Do they seem to differ significantly from vibes? No one has looked at that to my knowledge, although Geens owns one, so maybe they'll tinker around and take a look.
Ozzy has a question here which says, it's like a question that they asked yesterday in questions, but despite trying to test it with Headless, I could not figure out how World Path works properly.
Can you go into more detail about it if possible? Namely how to use it with Headless.
No, because I don't know. I'd have to dig it up and make sure I get documentation on it, but like Lex said, records, which is actually what we call worlds, avatars, models, gadgets, whatever it is that you save to your inventory, it's called a record, and worlds are also records.
They have a path, and if you know that path, you can use it in various ways, so World Path lets you sort of overwrite the path of that world, and you can pick that up.
It's a little bit like the custom session ID property that you can do, where you can have a static session ID using custom session ID.
Those are really cool for actually the MMC voting world. I have a Headless server where I just start it up, and because that custom session ID never changes, all the gadgets and stuff I've made to link to that world still work.
I will make a note to dig into that one, but I'm not going to stumble through it today. I've just written it down on my notepad in about size 80 font, because I couldn't reach my notepad, and I don't really care how big I read it.
There we go, I can read that. Cool. Moving forwards.
Iregubus says, why spawning a camera makes my FPS drop a lot?
Yeah, that's just because the camera is rendering. If you're not looking at the camera, then again, it's probably because the camera is still rendering.
It shouldn't be that impactful.
When you say drops a lot, do you mean like a few? 5, 10, 20?
It will drop a bit, though, because it's like re-rendering the scene for that camera.
Particularly if it's like a 4K camera. I've seen a lot of people doing that.
You know the mirrors with the customizable resolution? Those have got like 8K on them, and I've seen people that set them to 8K and then complain about their FPS, and it's just like, well, you have an 8K mirror, so maybe drop it to 4K, you probably won't notice the difference.
Yeah, it might render twice, I'm not sure.
A good actual test would be trying a portal as well. So if you do create new object portal, a portal is like a stereoscopic camera, so see what your FPS goes to with that.
By stereoscopic, we mean different view for each eye, by the way, sorry, like scientific words, sometimes good, sometimes bad, so I'll clarify them.
Random fact of the day, the smallest camera resolution you can go to is 4x4. No, wait, 2x2, it might be 4x4 or 2x2, I don't know anymore.
I did know, and then I started talking, and now I don't.
That's it for questions, I see people typing, until people paste their questions.
The color sampler node, that does the smallest resolution camera that is possible. I double checked the code on that before I put out the sample color tutorial.
That sample color tutorial was, I don't know why these things come in waves, but it seems like when I recorded that, like everyone was asking about it,
and I was just getting barraged at questions where people were like, it doesn't work on videos.
I'm not sure it does, it doesn't work on skyboxes, pretty sure it does.
That's why that video is basically just like every object type sample color works.
I haven't opened the code base today, but I should, so I'm going to go ahead and open it.
Zach asks, will you spook by someone being in your world that you made private while you're making a presentation?
No, no, there's a difference in my head at least, with making a presentation or delivering a presentation.
So yes, I am working a presentation for Friday, it should actually be up on YouTube as well,
there'll be a three minute presentation on some projects we're doing at an event.
The event is public, but I would link it, but it's basically going to be six minutes of Neos.
We've got two projects that are using Neos, and then three to four to five hours of stuff that doesn't involve Neos,
and is mostly about sort of opening up people's faces and putting in metal plates and stuff, it's really gross.
So cool, but I'll put the videos up when I can get them up.
The other project I'll have to get permission for, but my presentation is my presentation, I'll just put it on YouTube.
The general rule of thumb for my worlds is if it's open, it's meant to be open,
and if you come in and it wasn't actually meant to be open, that's my fault, that's not your fault, that's my fault.
I might still ask you politely to leave, but I should never be mad at you.
It's the equivalent of people leaving their blinds open and then complaining that people are looking through their windows.
I understand if I'm camped out in front of someone's house with binoculars or something,
but if I'm just walking past, right, I should fight.
Let's move forward.
Arugaba says, how do I move objects around my inventory? You can't.
I just posted a weird and complicated way of doing it, but you can't natively right now.
Now, whenever I see people complaining about that, whilst I do understand, and I do emphasise,
if you, when you're watching YouTube videos inside Neos doing absolutely nothing,
if you manually move one item a day, then in ten days you'll have moved ten items to their correct location,
and in a hundred days you'll have moved a hundred items.
So you can move them, it's just really complicated right now.
You have to spawn the item, go to the place where you'd like it to be, resave the item to that folder,
go back to the original location once your sink has been synced, and then delete it from your location.
I have a video on my channel about how I organise my inventory,
and I've seen being very rigid and strict on that has worked,
such that I don't really have many issues,
but I do have dump locations such as the root of the inventory and a temp folder.
I recommend a temp folder because that means that the root of your inventory isn't fooled with stuff,
and it means that you can just go into that temp folder whenever you need to just quickly save something,
go into that temp folder.
Moving forward, Zach says, someone claims they spooked you because their booper made a sound,
and you turn it around extremely fast. That happens all the time.
Generically, if you have sounds on your avatar, I hate them because they're always done wrong.
Not always, like I'm not saying for you particularly, I'm saying for the collective you,
and the entire community, it's like I have a booper, it makes a noise in the global audio space at 500,000 volume,
and yeah, I'm going to be startled by that.
Make sure you're using appropriately volumed and distanced audio on your voice.
Thank you.
Nigabah says, does voice messages count in the storage space? Yes, they can in your storage space.
Additionally, if you're having sync issues, voice messages might get stuck as well.
So I do recommend voice messages because they're cool, but kind of don't at the same time
because there's no way to sort of delete them after the fact, so they can build up.
Yeah, root of the inventory is just make a temp folder, right, make a temp folder,
and that way when you know that you want to go take a look at your shame and your mess,
you can go into the temp folder, but otherwise you have a clean root inventory.
Just do it right now if you're in the US. Open up your inventory, make a folder called TMP,
whatever you want to call it, just that's where you save stuff where you don't know where it goes.
Theo asks, so they're clear with their Quake 3 spawn sounds.
If they're local, reasonably volumed, and yeah, sure, oh, yes.
Rigobus has another question, which is, is it safe to delete the entire Neos cache folder after it gets too big? Yes.
But ensure that you are deleting the cache and not the local database.
You can clear the local database, but that has different implications for clearing the cache.
There are two folders. You can find out more about them at a lovely Wiki article,
which a certain someone wrote. I don't know if you know their name.
Probably. Yeah, that linked for you. Yeah.
So you want to be deleting the cache and not the database. You can delete the database, of course,
if you would like to, but do follow the guide there because I'd rather you didn't, basically.
But I know that some people need to occasionally. I answered the Quake one. Let's move forwards.
Zari says, I have some tidbits of the awesome Edu stuff you've worked on.
Is a lot of that private to the institution or is there someplace to explore those?
Some of it's private for like patient privacy reasons.
Some of it's private from like busyness and some of it's private from laziness.
So it's sort of a mix there. I am trying to be like exceptionally public
about the jaw reconstruction stuff I'm doing because there's no real reason to hide it.
Particularly now I've replaced all the patient data with just 3D artist stuff.
So we'll see. Like I said, the talk I'm giving on it on Friday, I should be able to make public.
So I'll just shove that on YouTube when I can. I'm going to scroll back through my pictures
and find a very particular picture. Yes, here you go.
Welcome to jaw land.
Additionally, because there's something like cute about it,
I'm going to link this video for you guys as well.
So I'm doing this presentation on Friday at an event.
And I wanted to make a slide deck. And so I made a slide deck that was boring
and then I brought it into Neos and added visual assets for it.
So at this point in the video that I just linked, my headset's on the floor.
I'm done practicing for a while, but for some reason I'm still recording because
I don't know, I'm recording the clip. Yeah, that makes sense.
So I'm not even paying attention to what's going on on my screen.
I think I was making tea at the time or something.
But I came back and I just watched these two animated individuals just play.
Because whilst I'm talking about the slide that's on view there, they're just doing their stuff.
There's a camera anchor that's green in the middle there, which will be where the camera is during it.
And it's just like, I don't know. I was mesmerized by how cool it was.
Yeah, the little people in my computer.
We're really trying to sell the difference in the educational sector from 360 degree videos,
which lots of people in the sector call VR and actual VR, where there is space
that you can move through and interact with.
And so lots of my slides for that presentation have animated stuff on them.
That one is just like tip top. That one, I had the idea really late at night.
I'm going to do it. Tony says,
Not a question, but I had to clear my local DBs since downloads were extremely slow after clearing it.
Stuff was downloading at full speed. Yeah, I don't even know what's up with that one.
We've got to look into that more. There is a bit of a show about that one.
That's really weird. That's why I say if you want to clear your database, knock yourself out.
But don't continually do it. I've seen people that clear it every day because they think
that's just how you keep Neos working. And the answer is no.
That's a really bad way to keep Neos working.
That's the equivalent of cleaning your oven out or your chimneys or your sink
or the toilet cleaning that every day. It's just weird. Don't do it.
Like a full deep clean. I know that there's some people, myself included,
that will give it a wipe around every day.
But you get out the frothy, super duper ultra bleach cleaner and drain the sink and that.
No. We actually have a few TV shows in the UK which followed around Clean Freaks.
I can't remember what it was called, but they basically took Clean Freaks and then put them into dirty houses.
There was one episode where they took them all to this big manor house that just wasn't that clean.
They freaked out over the smallest thing. The chandelier had cobwebs on it.
I remember this lady screaming and running out the room because there were cobwebs on the chandelier.
Also, what's the difference between a spider web in your house and a cobweb? I don't know.
On the top of my head, a cobweb is when dust has settled on the web.
So it's not really a functional web for the spider anymore. It's just dust and spider web.
These clean people bleach the toilet every day, vacuum every day.
I think there was one that steamed the curtains every day.
We have actual nearest questions rather than talking about cleaning houses all day. Excellent.
Easton asks what do you think about AI writing? I've been playing around with the opening to Playground.
It's really impressive. I had it write multiple SpongeBob episodes. Interesting.
I get a little bogged down by AI, to be honest.
There's usually a channel on a lot of Discords that I'm in where they just post AI art.
And I mute those and try and get no notifications from those.
Or if the server doesn't have a dedicated AI art channel, I ask them to make one.
Because it can resemble the same problem as like TikTok or YouTube Shorts
where it's just like an endless supply of stuff.
And at a certain point, you're just looking at it to look at it, not looking at it for any purpose.
So it's just like, it's weird. It is cool. I'm sure I would use it in some cases.
But I don't like playing with it. There needs to be a use for it.
I know you're talking mostly about AI writing. So again, there has to be a use for it.
I'm not going to go play with it just for the sake of playing.
Am I going there to generate images I need for inspiration? That's a use.
Am I going there for inspiration for actual writing? Yes.
Am I going there because I'm making an open world survival game akin to Skyrim
and I need a bunch of books to place within the world?
That's a perfectly good reason for AI writing, as far as I'm aware.
But am I going there to do a bunch of AI writing because I don't want to do my dishes,
vacuum my floor, clean my sink or go to bed? Then that's a problem.
I'm trying to reduce the amount of times where that occurs.
Otherwise, you know, you're watching YouTube Shorts for like three hours in bed
and you're just like, I don't know what time, date or planet I'm on right now,
but I should really sleep. I think it was Fur.
Yeah, Fur was saying to me yesterday that they installed a third party YouTube app
on their phone, which still works with regular YouTube, just so that Shorts weren't on their phone.
Probably going to do that. A friend back in my university days,
they bought an ancient, it wasn't ancient, I think it was brand new,
but they bought a wind-up alarm clock.
And the reason they bought the alarm clock is because they were just tired of using a phone.
They're like, it's just not working. You know, it goes wrong. It's not charged.
There's apps on there I don't want. When I sleep, I just want an alarm clock that rings
and that's all it does. So they bought a mechanical alarm clock.
And it worked really well, except for if they forgot to wind it.
Thank you, Scary. That's actually really good to know.
I'm going to install one of those, yeah.
I uninstalled a bunch of apps that shouldn't be on my phone anyway.
Let's be honest, right? Most phone apps are just for wasting time.
Oh, we have a question I missed. I'm so sorry.
Yeah, I totally missed that one. I was just about to ask if there's any more questions.
How do I save world orbs? The option is always grayed out even on public worlds.
And I can only create a session orb, but wouldn't a session orb just link to a session?
Yes, it would. And then you have your answer there, which is you have to select new session
in the expanded world view, and then you can get a world orb there and save it.
I will now paranoidly scroll for more questions just in case I've missed them by talking about
mobile phones and cobwebs for too long. Ah, Tiki has a good question.
So is there a way to put a foot-like collider so, for example, the tail collides at the ground?
You're going to hate this one. For that you need a dynamic bone collider,
which can only be spheres right now, in the ground, which is parented to your avatar,
which is incredibly big. And then you'll have a floor collider for your dynamic bone.
That's how you do it. I'm going to draw a crappy paint image for you right now.
I don't have any of this running, but I feel like doing it, so I'm going to do it.
It's going to be amazing. Oh yeah, they've got a really long body by mistake.
Alright, here you go. Here's how you set it up.
So, you put that giant sphere collider, but parented to you,
and you make it really, really big, and then the tail will be unable to go through the ground.
I hope you enjoyed Prime's artwork.
Yeah, big huge ball that you carry around with you.
I'll try not to make many innuendos about the big balls dangling behind you.
There's another question, which says,
since Neos uses some kind of Unity, is it compiled of IL2CPP?
I don't know much about the Unity side of things, actually.
I just don't need to go there a lot, and it's kind of scary to go there,
because it's a little bit of a mess down there right now.
The Froox Engine side of things is just a compiled DLL.
We do a bunch of post-processing on that DLL to make it even more efficient.
That does work with the IL, so just make it more efficient.
I haven't looked into that as well, because that's kind of scary.
But, once it goes over to Unity, it's a regular Unity project.
On the very rare occasion where I compile the Unity project,
I get the made-by-Unity splash screen before I get Neo's splash screen,
because I'm using a version of Unity that doesn't have a pro license or whatever.
So it's just like, made-by-Unity, and then giant Neos logo.
But it's like, OK, cool.
Forgot where I was for a moment.
So we're closing in on half an hour,
so if you have any additional questions, please go get them typed up,
and I'll get them answered in the order that they appear.
Merogverse has another question,
which is it possible to load a C Sharp script
or some other programming language that is in text form?
No. Well, sort of.
It's a long question, depending on what you want to do, really.
So the ultimate way of doing C Sharp would be to write a plug-in.
That would give you infinite freedom to do whatever you want.
If you want to hook up Neos with logics to a firework machine,
you can totally do that.
Someone will probably enter the world and immediately crash it
and, like, shoot off all your fireworks,
but you could do it if you wanted to.
Below that is then, of course, mods,
which is where you are modifying the existing game.
That has limitations whereby you'll probably crash the game
more than you realize if you're writing mods,
particularly if you're in multiplayer sessions.
And then beneath that is logics,
which, of course, you know our language,
but that's not text-based.
And then beneath that is there's a couple of worlds
which have text-based languages that people have created.
Those are usually limited in what they can do
and probably wouldn't be suitable for generic programming.
They are suitable for sort of playing around and experimenting,
but they can do things like create cubes, create shapes,
mathematical shapes or otherwise, et cetera.
They're really cool.
In the future, on our roadmap,
we want to look into taking a look at something called WebAssembly,
where you can kind of just write any language
and compile it in a way that will work with Neos.
We don't know what that will look like.
It is on the roadmap.
Moonbase has a question here.
They say, how does one do color dialogues?
Let's say changing material color in your avatar.
What's the best way to do that?
Unfortunately, right now,
the best way to do color dialogues
is either to copy the inspector's components.
You can do that.
All you need is a UIX canvas,
and then you can make a button
that will trigger a color dialogue and work correctly.
That is a little bit complicated.
So what some people do is they'll parent
a invisible color dialogue to their avatar, to their tool,
and then when it's needed,
they will summon it to a correct position,
turn on its active checkbox, and then you can edit it.
That is okay.
If you do do that, though,
consider just having one of them
and then redirecting where it's driving its color to,
rather than having multiple.
If you have set colors,
then set colors can also be done without the color dialogue.
I should probably do a tutorial at some point
on how you can basically inspect an inspector
to figure out how to make UI in UIX.
It's kind of cool.
It's like, oh, on my personal customized piece of UIX,
I need a number input box.
How do I do that?
Well, if you inspect the inspector,
you can find out how the inspector
does a number input box.
Lex asks, are you able to modify
currently as functionality of plugins
in case you want to, for example,
add values to enums or add functionality to a class?
Adding functionality to a class should be easy
by either using partial classes,
extending it or something like that should be easy.
That would really be like a C sharp question, though.
How do you add stuff to an existing class?
Partial class might work.
Extending to a new class might work.
Of course, you have the opportunity
to overwrite our bootstrapper.
At that point, you can do whatever the hell you want.
I understand that might be tricky,
because you might say like,
hey, no, I want this method to do something different.
You might be able to overwrite it.
It's a little bit tricky, isn't it?
Moving forward, Scant says,
does Neos prefer a large message,
a few large messages or mesh messages?
Does Neos prefer a few large mesh meshes
or far more smaller ones?
I noticed that a specific world I was uploading
would only save with the former.
Not saving probably has nothing to do
with the size of your meshes.
I would say smaller ones currently,
but I don't have any scientific basis
to back that up currently.
Specs says you can create an application
running a web server and interact with it
using WebSockets.
That would keep Neos vanilla.
I believe that's in reference to plugins,
mods, and stuff like that.
That would work, but please, for the love of God,
consider the HTTP notes.
So many people just always use WebSockets.
And I'm like, that has additional overhead, you know?
If you're doing request response style data,
just use HTTP. It's much better.
Everyone's like, but a WebSocket server!
And I'm like, just use HTTP notes.
It's how the rest of the world works.
The rest of the world only opens up a WebSocket channel
when they need bidirectional data flow.
Moving forward to Irigibus has another question.
I saw someone with a UI searching public objects in Neos.
That is RedX.
It could also be GilFX's original one,
which you can find in GilFX's public folder.
I use the GilFX's one because I can't find RedX
either.
I dislike the situation that we have in Neos for it.
It's like, if you don't know where something is,
you can't find it.
I know that's obvious and follows logically,
but it's annoying.
And the whole, like, ask someone that's already got it,
I also find that annoying.
But in this case, it is correct.
If you don't have RedX, just ask someone for it.
It'll probably be in one of those new user folders
as well, which should make it a little bit easier to find.
Oh, yeah.
Easton's got a link for you.
Yeah, bidirectional repeated data.
And so it's like an event flow, right?
So a good example which might be easy to figure out
is, let's say you have two applications.
So you have a chat application, which is for chatting,
and then you have an application which is
to get the weather in my city.
Let's run a test here.
So for the chat application, should we
use WebSockets or HDP nodes?
I'll give you guys some time to think and maybe type.
We're having, like, a live Q&A with chat.
All right, that's enough time.
So for chat, we should use WebSockets
because we need bidirectional data flow
and we need surprise data, right?
Someone needs to be able to send a chat message
and the person needs to receive that message.
To get the weather in my city, though,
we don't need a bidirectional data flow.
We need a request response data flow.
It's known as HDP nodes.
Get me the weather in my city.
Here is the weather in your city.
Done.
Connection closed.
OK, moving forwards to additional questions.
So we can move on here.
That's done, that's done, that's done.
That's done.
Who else?
How do I buy more storage space?
So you can buy it with Patreon by subscribing to our Patreon.
That will only kick in at the start of the month.
So you've unfortunately just missed the start of November.
So you'll have to wait until December for Patreon storage
to kick in.
Or you can use NCR to rent more storage using,
you'll have to use the standalone build to do that.
I believe the price is a little weird right now,
but it gets you storage automatically.
There's also a bunch of Neos users who will just give you
storage space for a while because they have NCR
and they don't really know what to do with it.
There you go.
Lex says I'm kind of using WebSockets to continuously get
messages from our YouTube live chat.
Yep.
Perfectly fine use for WebSockets.
I love how I'm just going to grab this image of Delta's
Avatar and I'm going to grab my artwork and just put them
in the same message.
It's just beautiful.
You know, it's like that meme where it's like how to draw
an owl or it's like draw two circles and then draw the
rest of the owl.
With that, I believe, though, we're out of questions.
I will give the spec some time to see if they're already
typing.
If there ever is, we'll stop questions.
All right.
We've got the last question, if that's a question.
We'll move on with the rest of today.
I hope my dishwasher finishes soon.
I want to cook dinner.
Is it possible to construct meshes dynamically with
Logix?
Last question.
No more questions, but yes and no.
Depends what you want.
There are 3D printers that exist inside of Neos.
What they do is they use a pen tip and Logix to move a
pen tip around and just draw the pen.
They're really quite good, but they act like 3D printers,
so you get all the internalized geometry.
So if you do a square on the 3D printer, sorry, a cube,
got to be three dimensional here, then it won't be like
the cube that you can create from the create menu where
there's no internals.
It'll be a cube with like goop in the middle coming all
the way up.
If you want to do not that, the triangle procedural
meshes is for you.
Aegis has just posted there in their public folder,
which I believe is in Neos Essentials somewhere.
They have a mesh editor that uses the triangle procedural
mesh, which is really good.
And then beyond that, if you want procedural,
Neos Plus, which Linker has just posted there, has
dynamic mesh nodes, but it is a plugin.
However, once you've finished with your dynamic mesh,
if you bake it, it will turn into a static mesh and then
you'll be able to take it back to the non-plugin version
of Neos.
Additionally, there is a world in MMC 2022 where they
allow you to enter a mathematical equation and then
it outputs a mesh.
That's really cool.
Lots of sort of shapes that you can see in nature and
things like that are generated from mathematics,
and so you can do that.
Like if you put in the correct mathematical equation,
for example, you'll get a snail shell or like a close
approximation to it.
With that, I'll go ahead and leave off questions and
this session, and I will speak to you guys soon.
If you have additional questions, ping me, DM me,
questions and help, and read the wiki and use web
sockets for bi-directional communication only.
Goodbye.