1. Neos VR
  2. News
  3. Nested Sessions, bHaptics Tropical Showcase event, VBLFC Registrations Open

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.



[h2]Friday Livestream Q&A[/h2]
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!
[previewyoutube][/previewyoutube]

[h2]Nested Sessions[/h2]
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.

[h2]New Haptic Volume Filters[/h2]
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.

[h2]Projection 360 and PBS Displace material additions[/h2]
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.

[previewyoutube][/previewyoutube]

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.

[previewyoutube][/previewyoutube]

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

[h2]bHaptics Tropical Showcase event[/h2]
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!



[h2]VBLFC Registrations Open[/h2]

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!

[h2]Progress on BEPUv2[/h2]
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!