XaiJu
neosvr
neosvr

patreon


Nested Sessions, bHaptics Tropical Showcase event, VBLFC Registrations Open

Hello everyone and welcome to another weekly update!

This week  has been quieter in terms of development as the last, as the main focus  is on integrating BEPUv2, but we have added some useful features  regardless. Notably, Neos now supports nested sessions!

Those are  ideal for setting up hub worlds, when hosting an event across multiple  instances. The instances won't show up until you enter the hub session  and the world browser will also showcase total number of users across  all instances for the hub, giving you better representation of the  number of attendees.

Projection 360 and PBS Displace materials  have also received some new additions, notably offset support for  Projection 360 to create shimmering and distortion skybox effects and  PBS Displace now allows modulating the vertex displacement by the XZ  position the world, allowing to easily randomize displacements when used  on large set of objects, rather than having them all synced.

In  cooperation with bHaptics, we also have an official Tropical Showcase  event on July 3rd at 1PM PST in a brand new tropical island map! This  map is fully setup with haptics, which will let you feel the environment  in ways you couldn't before, especially if you own the haptic vest and  accessories!

The VBLFC convention has also opened registrations, if you're interested in attending, make sure to register in the link below.

Friday Livestream Q&A

If  you missed our last Friday livestream you can watch the recording here!  We answered a whole bunch of questions about Neos' development,  features and other things, so if you're interested in learning more  about the development it's worth a watch!

https://youtu.be/nKqAxktltIE

Nested Sessions

We  have added support for nested sessions, allowing easier creation of hub  worlds for events such as the Metaverse Meetup, Creator Jam and the  upcoming VBLFC. Nested sessions by default don’t show in the world  browser unless you’re present in the parent world (typically a hub  session) to avoid cluttering the world browser.

In addition, the  parent session will also display the total number of users in all of its  nested sessions. This way you can get a much better idea of how many  people are attending a particular event, even though it’s spread across  multiple individual sessions and hosts.

If you’d like to make a nested session, all you need is to add a configuration setting to your headless server named parentSessionIds. This is an array of session ID’s that are the “parents” - essentially a  hub worlds through which the session will be accessible.

For  this reason it’s recommended to use custom session IDs, otherwise you’d  need to update your configuration every time the parent session  restarts.

The second requirement is that the host account of the  parent session needs to be a friend of the host of the nested session,  otherwise it won’t be accepted as an actual nested session. It will  still not show in the world browser, but won’t be counted to the totals.

We  have also updated corresponding components that provide metadata about  the number of users. In addition to JoinedUsers and ActiveUsers, there  are now TotalJoinedUsers and TotalActiveUsers which contain the summed  up numbers from all nested sessions.

One important note is that  nested sessions aren’t a security mechanism. They are primarily designed  for public events as an organizational tool, but do not actually  protect the data necessary to join the session. If you need to control  and who cannot, you’ll have to use proper mechanisms for that, such as  cloud variables. You can read the last week’s weekly update to learn  more about those.

New Haptic Volume Filters

We’ve  made some small improvements to the haptic support in Neos as well,  adding a CylindricalDistanceHapticFilter and VelocityHapticFilter, to  give more flexibility in modulating haptic feedback from the  environment, whether it’s just for your controllers or haptic vest like  bHaptics.

CylindricalDistanceHapticFilter allows modulating the  strength of the haptic feedback based on a distance along a cylinder. In  contrast to Sphere, it can be configured so the intensity remains the  same along the Y axis, but increases or decreases as you move further  from the center.

VelocityHapticFilter does pretty much what it  says on the tin. It allows the change of haptic strength in response to  the relative movement speed within the haptic volume. This is calculated  for each individual haptic sampler point. This can be useful to create  air or water drag haptics.

Projection 360 and PBS Displace material additions

As  a fun thing on the side, we have made small, but hopefully quite  impactful additions to two of the materials in Neos. Projection 360 now  supports offset map, which displaces the view direction per-pixel using  the R and G channels in the texture. The displacement can be also  modulated or completely masked out using another texture.

This is  ideal for various distortion and shimmering effects. For example for  skyboxes with clouds or water, you could make those parts wobble and  shimmer to give them a bit more life. The material now also supports  worldspace view projection, which simply ignores any rotation of the  mesh.

https://youtu.be/op31aG5o5KQ

The PBS Displace material has also a significant addition in the form of  worldspace vertex offset map. This uses a texture which is sampled  either based on the position of the mesh or each individual vertex, to  produce an offset for the vertex displacement map. This can be  particularly useful for randomizing or otherwise modulating animated  offsets for things like subtle motion of plans, so all plants don’t move  fully in sync.

https://youtu.be/VNQr_k0H0MY

We hope that those small additions will open up some new cool creative options when building worlds and items in Neos!

bHaptics Tropical Showcase event

Coming  this summer on July 3rd at 1 PM PST is the Tropical Showcase! Set in an  upcoming map built by our team to showcase the possibilities of Neos  and the haptic feedback system with the bHaptics vest and accessories.

This  beautiful tropical island map is designed to not only be a cool summer  hang out map, but it’s equipped with many environmental pieces fully set  up with haptic volumes. Those will trigger haptic feedback not only on  your controllers, but also any bHaptics accessories, including the vest,  arm and feet attachments and the face haptics.

If you’d like to join for the main event, make sure to RSVP here.  However the map itself will be open for anyone to join any time in case  you’d like to check it out on your own or take it apart to see how the  haptics work!

VBLFC Registrations Open


Virtual Biggest Little FurCon has officially opened their registration! You can sign up here.

Their  event dates are July 9th through July 11th. Make sure you register for  the event prior to attending. You won’t be able to access it until you  do!

Progress on BEPUv2

The  first bits of BEPUv2 are now starting to get integrated into Neos! The  work is still pretty much in phase where there are many disconnected  pieces floating in the air and we’re looking for a good way for them to  crystallize, but based on some more experimentation and designing it’s  starting to form.

The core goal right now is to determine how  Neos’ concepts (e.g. different types of colliders, like Static,  Triggers, Active, Haptic Triggers and Samplers, Character Colliders and  others) map to the BEPUv2 physics engine and what’s the most efficient  approach for them.



Determining  where exactly physics fits into the pipeline has been also an important  part of the design process, since our goal is to solve some  long-standing problems, notably collider interactions lagging by a frame  when inside a moving vehicle or other moving structure.

This has  been pretty much narrowed down to the physics poses being stale when  queried due to being updated before beginning of the frame from the  network and the restructuring will help there. We’re still considering  how it’ll fit in with other update phases and some future optimizations  and changes, avoiding some duplicate work.

One of the key things  that we’re focusing on with this implementation is designing it so the  engine gets utilized more efficiently too. There's one major problem  right now in Neos, where even static colliders and triggers currently  eat a lot of performance due to constant broadphase updates.

With  BEPUv2 Neos integration will make sure to properly manage the  kinematics and make them sleep when they're not being actively changed,  which should improve performance quite a bit, especially on maps with  lots of colliders.

It's essentially one of the issues that the  huge Minecraft world imports ran into - tons of triggers for the culling  actually eat lots of performance because of constant updates in the  physics engine. With this redesigned system that will be avoided.

There’s  still a bit to do before we get the first functional version and then  aim for feature parity with the current version of Neos, reimplementing  all the existing functionality. Stay tuned for updates, as we’ll likely  have danger nightly builds once we have things working!

There  will also be some more types for colliders. E.g. Static Triggers and  Static Haptic Triggers and some more, for ones that you're certain won't  be moving in the scene, which will allow them to be even more optimized  (they won't have to be managed to wake up or go to sleep at all).

Anyway,  that's all for this week! And as usual big thanks for everyone for  supporting Neos and being part of this platform, without everyone's help  we couldn't be working hard on it every day! See you next week!


More Creators