From Neos Wiki
Jump to navigation Jump to search

Prime Time, ProbablePrime's Weekly office hours for Questions, Tutorials and Documentation and anything else that doesn't really fit.

Here are the notes from August 25th 2021

These are rough notes typed by ProbablePrime. If there are errors please edit away!


Please do remember to check our Roadmaps as a lot of questions here are partially covered there. Do continue to ask them but the roadmaps are there for you to read:

Additionally, do remember that the Physics Update is actually composed of two parts:

  1. The BEPU 2 Update - This updates the internal Neos Physics Engine to BEPU 2, It does NOT include Rigid Bodies
  2. Rigid Bodies - This will be things like Gravity for objects etc.

Additionally, make sure that if you're having trouble with something you consider opening an issue. In some cases we may be able to help you out with fixes, improvements or information. Thank you!


Khosumi:Q: Would it be possible to use the new physics system to calculate the speed of sound to create realistic sound muffling / delay?

  • The speed of sound isn't a problem here. Generically in 3D engines the speed of sound is constant and it doesn't really matter.
  • We are looking into other audio systems/engines that would assist with muffling. Especially occlusion based muffling so that sound through walls sound muffled etc.
  • We're currently looking into Steam's Audio library, but we're blocked by:

rampa_3Q: Date and time? Are we having Neos variant of Y2K like bug?

EarthmarkQ: Can we get clarification on why specific characters are disallowed in dynamic variable names? Many Unicode characters are allowed, but it seems like many are not and I do not understand the intent as to what the difference is.

playz the piss avaliQ: is there a way to mine NCR?

KhosumiQ: Is there any plans to add rudimentary, if at all, cloth physics for things like skirts, scarves, etc?

  • Cloth physics is very different from Rigid Body physics.
  • You can do Cloth with Rigid Bodies but its very inefficient, it will not be include in the Bepu update
  • If you'd like cloth physics please ensure you request it on the Neos Issue Tracker

HowieDuhzitQ: Is there plans for a built in browser or a way to pull windows into the world similar to OVR Toolkit?

  • Yes, this is on the Roadmap. See it's card on the roadmap.
  • The desktop part of your dash was the first part in getting this sorted as it enabled neos to capture a desktop view.
  • This data isn't sent anywhere though which would be the next part.

RucioQ: If you have time, could you describe the viseme system and how it works? I was in Linux and noticed that I saw no visemes applied to my avatar when looking in a mirror (I take it the viseme library isn't in Linux), but other players did making me wonder if visemes were processed on the host for incoming audio and then distributed to clients

  • We use Oculus' Library to do take your voice data and convert it to a viseme "weight". This library is not available on Linux currently.
  • Once we have these Viseme "Weights" we send just the weights from your computer to everyone else in the session. This cuts down on the data we need to send but still let's everything work!

KhosumiQ: I have noticed the mirrors have had a bug which existed for a very long time (Black spots appearing randomly, seems to only affect AMD cards). Is it simply a driver issue or something that could possibly be fixed later?

  • I'm not sure, please take this question to Geenz's Graphics Office Hours.
  • They, did mention wanting to take a look at meetings at some point

RucioQ: Makes sense, but what kind of doesn't is how my visemes are displayed for others in the world when I'm the one in Linux if it is processed on my side and synced

  • In some cases it is possible for other partipants in the session to process your voice data into Visemes.

Earthmark:Q: I remember that visemes were expensive, and that's why it's run only for yourself?

  • Yup, there is a cost here. Analysing your voice data is somewhat costly.

RuicioQ: Does that only apply to Linux or is that how it works for all clients all the time?

  • I forget the specifics, but it should lead to visemes displaying regardless of your OS for other users.

Earthmark: Driving a dynamic variable was been labelled as against the data model in the past, but that's honestly most of the usage I've gotten out of them. I'm curious what use cases are they supposed to be used for? What should I be using for common variables instead? & If the name doesn't change often or is only set up statically, is it ok to drive if the value is pretty much constant? Or does that force extra recalculation?

  • I'm not sure. I need to do some research.

BAT54Q: Will Neos be supporting Decagear's facial tracking and if yes, will we have to configure avatars seperately for both HTC and Deca's blendshapes?

  • In as many cases as possible, Neos tries to abstract away the hardware or input devices from the user. Facial Tracking, Haptics and to some extent controllers already show this.
  • For example within our face tracking capabilities we don't actually mention HTC or "Vive" at all.
  • Should we implement Decager's Facial Tracking we'll tie this into the same generic systems. It will be largely plug and play and work with existing avatars.
  • As for us doing this, you'd need to check the GitHub for a feature request.
  • We also have an item which would allow us to let our users write their own input plugins for various hardware that we cannot support natively. You can read about this on our roadmap

Khosumi:Q: Has anything been said about adding curves to dyn bones settings such as elasticity, dampening, gravity?

  • This is unfourtuantely on the "Collections" waiting list as curves are basically a list(collection) of "Control Points" that determine what a curve looks like.
  • You can find more information about collections in this issue.

Earthmark:Q:I'll be curious how curves integrate with LogiX, to me it feels like two parts of the same problem

  • Potentially it'll look something like the "+" node that allows you to add extra elements and specify them

Jam10o:Q: related to the generalized devices thing: I've seen a couple of folks putting custom input and data into Neos using local websocket servers - is this a reasonable stopgap?

EarthmarkQ: Opening up full access to localhost is a security issue from my perspective, and the lack of port filtering for local host feels very odd to me. Is there a reason port has been avoided from the allowlist system that I'm not understanding? I can understand default protocol ports like http and https being different, but that goes from 2^16 possible pokeable ports to 2

  • I agree, and will look into this.

KhosumiQ: What is inside the character controller, and can we access it?

  • Generically, "Character" stuff. Things like gravity, friction etc.
  • You can modify some properties but most of it is handled entirely by Neos.
  • There's also a collider which allows the user to walk and jump arouind. Please don't disable it!!

EarthmarkQ: After trying to poke at the world manager used by the dashboard facet, it has a template field that is only applicable to a specific c# interface, it feels like this gets really close to suggesting we can make useful things easily out of the component only to have that snatched away and it feels very odd to me. Are there any plans to focus more on making newly added systems end user customizable? It's called Template or something with template in it

  • We'll follow up offline about this, you can indeed use this facet to make things.
  • The MMC voting system uses it.

Jam10oQ: reading the connecting Neos wiki page - is there any performance impact on other people if I'm doing lots of networking related stuff in logix on my own character? still trying to wrap my head around what is local and what isn't, so I'm guessing if I grab stuff from ws, do something non-local, I'm the only one doing anything network

  • Yes there is a performance impact.
  • ensure that you're running the websocket/http connection from just one user
  • Ensure that you aren't writing too much data or writing data too quickly.
  • One number every few seconds is totally fine (E.g. HeartRate), but numbers or large data sets every millisecond would be a problem.