1. Neos VR
  2. News
  3. First phase of Input Binding system finished, community highlights

First phase of Input Binding system finished, community highlights

Hello everyone and welcome to another of our weekly updates!

This week we have some exciting news on the progress on the desktop mode. One of the major pre-requisites, the first phase of an input binding system, has been completed, finishing a large rework of Neos' internals in order to support new functionality. There's still lots of work to do before the desktop mode is in usable state, but with the new system it was already quick to add locomotion support, with more to come.

We also have another important change to our guidelines, to reduce some vagueness and anxiety it has caused. You can read more details below, on what we changed and why.

There are also many awesome community highlights, including a 3D snake game, some beautiful worlds and even a snowboarding mechanic in Neos. We showed off some of our own progress on the MTC Streaming & Recording room on our latest livestream.

[h2]Important update to the guidelines[/h2]
Veer, our chief of moderation, has made an important change to our guidelines based on feedback we have received from you, the community and discussion with the moderation team. Specifically we have removed this guideline: “ii. Publicly display fetishes or lifestyles in a blatant manner that may make others uncomfortable.”

While our original goal was to ensure that users will avoid using avatars and tools in public that tend to make a lot of people uncomfortable, we have found that this statement ended up being too vague and caused some anxiety over what constitutes as fetish/lifestyle and what does not.

Because we want Neos to be an open and tolerant space where people can freely express themselves, we have decided to remove this particular guideline as it was too subjective. Note that actual adult content is still not allowed in public, but other than that we don’t want the guidelines to be too strict or unclear.

To deal with people becoming uncomfortable around particular people and/or avatars, we’d like to direct users to use self-moderation tools instead, whether that involves politely asking them to change their avatar or banning them from your own sessions. We can also prioritize avatar blocking features and similar solutions to expand the set of tools available to everyone to make their experience more comfortable.

You can read the latest guidelines here.

[h2]MTC Streaming & Recording room showcase livestream, pizza[/h2]
If you missed our regular Friday livestream, you can check out the recording below. We have showcased some work in progress on the upcoming MTC Streaming & Recording room, which will teach users how to use Neos' built in streamer camera functions as well as provide a place to host events and record with a pre-built green screen.

Nexulan has also let the chat pick ingredients for his pizza order for some hilarity, thanks to generous Twitch sub gifts!


[h2]First phase of new Input Binding system complete[/h2]
After some long major reworking of Neos’ input handling internals, we have released the first phase of our new Input Binding system! Originally Neos’ input handling code has grown organically over the years and had a lot of hardcoded rules and checks for specific controllers and combinations of input methods.

This has made it harder over time to add support for new VR controllers, but especially other input methods, like keyboard & mouse or gamepads for the desktop. We’ve also had requests for being able to customize the controls and add more different input devices over past years.

To solve this problem, we have designed a proper Input Binding system that replaces the hardcoded rules with a generalized system, while at the same time providing more flexibility and makes it easier to add support for new devices.

[h3]Input Groups & Actions [/h3]
The new system is based on a concept of “Input Groups”. Anything in Neos that needs to receive inputs defines one or more input groups, each with a list of actions (boolean, analog, 2D and 3D) that it receives.

These groups are then registered with the input binding system, which fill search and match bindings for those actions and handle sorting and blocking of inputs based on the priority of each group.

This way, if a particular input source (controller Trigger button for example) is used by a higher priority input, it will naturally block for any other inputs that might want to use it, rather than those blocking rules having to be hardcoded. This way the system adapts to customized controller bindings too.

Thanks to the new system, we could greatly simplify the code of common interactions, tools, locomotion system, avatar anchors and other inputs, removing all the old controller-specific code and replacing it with a more unified system, that is easier to extend and build upon, effectively serving as an abstraction layer between input devices, ensuring that any Neos behaviors don’t need to worry about any specific input devices.

The rework of Neos’ input internals has taken a while and currently only provides small improvements in behavior. For example we have fixed handling of dead zones and movement exponent curve, which was computed incorrectly. Thanks to this you should now have better control when moving in Neos, but you might also need to tweak your deadzone and movement exponent settings a bit if they become too sensitive.

Thanks to the rework we also discovered some serious performance bugs, which have been fixed and have done general cleanup of related systems, removing a lot of the cruft. While the surface benefits of the first phase of this new system are relatively minor, the main improvements are yet to come.

[h3]Locomotion in desktop mode & future additions[/h3]
Thanks to the flexibility and ease of use of the new Input Binding system, it has taken us less than 5 minutes to add locomotion support to the new desktop mode, giving users the ability to walk, fly and jump around.

While the desktop mode isn’t in a fully usable state yet, having this new input system implement is a major milestone towards its implementation. With it finalized we can now continue adding more features and building out necessary pieces to make the desktop mode properly usable, so stay tuned, there’s a lot more to come now!


We’ll be also adding support for other input devices, like gamepads, giving you more options on how to play Neos. Once the system stabilizes a bit more internally, we’ll also start looking into exposing it for user configuration, allowing you to customize the bindings. This will be likely done through a configuration file first and UI later on.

[h2]Community Highlights by Turk[/h2]
Hello everyone! I hope everyone’s week went wonderfully! This week has been a little exciting as stuff has been a bit busy amongst the Neos community. New things have appeared through the creative void that is the Metaverse that is Neos. So let us shine a light on some of the things people have been making!

[h3]3D Snake by Joe Sylva & Napo[/h3]
Showcased at the Metaverse Meetup we have 3D Snake! With a Maximum of 8 players you can grab your own snake and proceed to enjoy some VR quality fun as you twist, turn, pull, and push your hand all around to get that snake into those tight nooks and crannies. Be careful to not crash into anything! Your snake will explode and then you’ll have to restart your score all over again! (There’s also skins too! Instead of a Worm you can use a Dragon!) Props to Joe Sylva and Napo for showing him the ropes! This only took 2 weeks to make and the time shows!

[h3]Boolean Beach by Aetoriz[/h3]
An amazing map that took alot of our inspirations by storm! Enter this gentle beach filled with multi tones of gray black and white. Watch as all the trivialities of life fade into the dull and mundane. Jump and climb over the beach’s cliffs and dunes. This map has some nice styling and is definitely a sight to behold! It truly feels like you're in a different place entirely. Props to you Aetoriz! Thanks for making the map!

[h3]Donut Dimension by QueenHidi[/h3]
A wonderful idea to instill the spirit of the donut into everyone. The “Donut Tutorial” as called by many wanting to get into 3d Modeling made by the BlenderGuru. Shows as a nice world to showcase the example of everyone's donut! Thanks to everyone who contributed a Donut and Thanks Hidi for making a neat interesting map!

[h3]256fes Room by Danyy59[/h3]
The 256fes challenge is back in season! People in Neos have been coming together to try and make assets with only 256 triangles! Now you might ask, why do that in this modern day and age? Well of course limitation breeds creativity! There have been all kinds of things made like avatars, maps, or even toys and tools! If you want to partake in the 256fes challenge just get into Blender and make something with only 256 triangles :) Thanks Danny for sharing your passion and showing us other parts of the modeling community!

[h3]Delvr Community One Shot by Chris and Tomo[/h3]
The boys over at DelVR have some cool things to show us with the new DnD system being used live and with a community behind it. They had their first community oneshot and it seems pretty packed! Check out part 1 of their vod to see how it went down. Thanks Chris & Tomato!

[h3]VR Snowboarding by orange[/h3]
Thought the vehicle craze was over yet? Guess not! We had Geese, we had cars, now we have snowboards! As the Japanese Community in Neos was participating in a VR Snow Festival, all kinds of snow toys and maps are being made! Anyone feeling for some SSX Tricky in VR? While not released yet this got a lot of interest on twitter, so I figured it was appropriate to showcase the cool and new things users are cooking up in Neos!



That's all for this week, we hope you had a great one and we're excited to bring you more progress on the desktop mode now with one of the major pre-requisites implemented, as well as clean up some other features, tweaks and bugfixes in the queue over the next weeks, so stay tuned!

And as usual, big thanks to our community for supporting this platform and allowing us to improve it every day. See you next week!