1. Neos VR
  2. News

Neos VR News

2021.4.9.1114 - Connection reliability improvements, bindings additions, fixes

Hello everyone, sorry for taking so long before the next build, past few days were a bit crazy! Reinstalled my whole system and had a bunch of things catch on fire at once, so I've been working on putting them out and making sure they don't happen again or so we have better tools to deal with it (particularly Patreon API being messy)! ^^; Also our spinoff Neos Classroom app needed some updates too.

The good news is a bunch of things are more robust now! There was a problem in the transport protocol and some related things, which affected the NAT punchthrough and relay, causing problems connecting to sessions through LNL. Those have been fixed (I pushed them to cloud soon after it happened, but the fix is now in main Neos too, which will help prevent potential session crashes) and made more robust with more logging, protections and auto-recovery, to make sure this doesn't happen again!

I've also took it as opportunity to finally implement a protocol fallback system when connecting to sessions. Instead of just trying one, it tries all of them if one fails! In case there's another connectivity issue, Neos will now automatically fallback to Steam Networking Sockets. It even tells you what it's doing now with more verbose info! This also fixes some cases of people not being able to connect, e.g. due to session orb having LAN URL on it or someone's connection just not playing nice with LNL.

I've also investigated some issues with the KFC balances that have been reported and fixed an issue that caused them to be calculated incorrectly. If you were missing some KFC it should now show up properly. NCR and CDFT were unaffected, but they benefit from the fix too. There's now also a command so you can request your transaction history for any of the tokens too to make sure everything is good!
In other news, there are some more bindings updates for desktop. Crouch is now a single brief tap, with a longer press being the normal hold behavior. Duplicating, destroying and saving items is now also easier with key combinations! Others like pasing and undo/redo have been moved to the new input binding system, so they don't clash with other behaviors anymore either.

There are other quality of life changes too, the "Null" unlodaed material now has soft checkerboard transitions, which should fix the flickering in some cases and session asset transfers getting stuck should be fixed too.

[h2]New Features:[/h2]
- Implemented connection protocol fallback system, which will try all possible protocols (and URLs for each protocol) when connecting to a session
-- This should improve the reliability of connecting to other sessions. E.g. in cases connecting through LNL fails, the connection will try connect through Steam Networking Sockets if available
-- This also fixes users failing to connect through a session orb spawned by a user who is on the same LAN as the session, due to connection being attempted on the LAN IP first and failing
- Neos now shows detail about the current part of the connection establishing process (e.g. connecting through direct IP, NAT punchthrough, Relay or Steam Networking Sockets)
- Added /requestTransactionHistory command, which will generate and send your complete transaction history for given token to your email (requested by @Alex from Alaska)
- Added periodic validation of cloud transaction balance data, to catch any potential problems early
- Added ArgumentValues to LocaleStringDriver which allows driving locale string with static arguments in addition to fields
-- Old "Arguments" is now ArgumentSources
-- This is mostly internal change to add flexibility for the localization system
- Added a mechanism for determining when the user is able to crouch and when not
-- No Clip and and any Physical Locomotions with gravity currently set to 0 do not allow crouch
-- PhysicalLocomotion has AllowCrouch property which can be used to customize the behavior

- Added internal diagnostics and tools for solving some common Patreon linking and rewards issues
-- We now have ability to unlink a Patreon account from Neos account in case you register another Patreon account. However the unlinked account wil be PERMANENTLY blocked, please do not rely on this capability to casually change Patreon accounts and only use it in case of issues

[h2]Tweaks:[/h2]
- You can now duplicate grabbed items using Ctrl+D on desktop
- You can now destroy grabbed items using Ctrl+Shift+D on desktop
- You can now save grabbed items using Ctrl+S on desktop
- Implemented a different mechanism for the crouch toggle, using a single tap (suggested by @Nammi)
-- By briefly pressing the C key you will crouch until it's pressed again
-- If the key is held for longer (100 ms at the time of writing) you will stop crouching once you release it
- Ctrl+V to paste and Ctrl+Z and Ctrl+Y to undo/redo are now handled by the new input binding system
-- This fixes Ctrl+Z toggling the slow movement (reported by @Shifty | Quality Control Lead)
- Desktop photo capture is now much closer to user's viewpoint
- Rewrote the "Null" shader when material/shader isn't loaded yet to add soft checkerboard transitions and fix flickering/strobing for parts of mesh that are right at the transition edge
-- This should help significantly reduce eye strain and graphical glitches when worlds are loading (reported by @Ukilop, SmallObservantBird, @uyjulian and @Shifty | Quality Control Lead)
- Darkened the checkerboard of the "Null" shader to reduce eye strain
- Darkened the default checkerboard texture to reduce eye strain in certain scenarios
- Upgraded cloud API libraries
- Improved performance of the cloud relay and NAT punchthrough service

[h2]Neos Classroom:[/h2]
- Added ability to hide the presentation table and the database in Neos Classroom
- Added exit button to the Neos Classroom screen
- Fixed users being able to join the same session multiple times when pressing the Join button rapidly

[h2]Bugfixes:[/h2]
- Improved handling of malformed network messages in the LNL protocol to prevent misbehavior and session crashes
-- This also improves robustness of the NAT punchthrough and relay service and prevents the connections getting stuck in limbo state
- Added extra error handling for the NAT punchthrough and relay services as well as watchdog service
-- Combined with above, this should reduce downtime due to unexpected errors and issues connecting to other users (reported by @Aegis_Wolf | Art Director, @Shifty | Quality Control Lead, @Lewis Snow | Lead Audio Engineer, @Theo | Video Production, @Veer | Chief Moderation Officer, @Alex the pet peeve avali 🐦, @聖なる人 (Holy), @Skywind Kitsune, @Rukio, @Turk, @H3BO3, @DAWKY, @NatBard, @Eearslya, @Epsilion, @Shadow Panther [RU/EN, UTC+3] and others)
- Fixed cloud cleanup tasks not working properly and throwing exceptions
- Added locking mechanism for running Patreon updates, to prevent multiple update jobs running in parallel, resulting in some users receiving multiple messages and wasting resources (note that you can still get multiple messages in some cases if the process fails and needs to re-run again)
- Fixed KFC balance status not being updated properly in some cases (reported by @Shifty | Quality Control Lead, @Nammi and @H3BO3)
-- The balance on the user profile has been recalculated and should now represent the actual number
- Fixed context menu breaking when the locomotion module isn't setup (e.g. in worlds where locomotion is disabled)
- Fixed Userspace interaction laser in desktop mode being misaligned, causing odd interactions with any non-projected userspace elements
- Removed deprecated "Setup Circular Menus" from CommonAvatarBuilder
- Fixed not being able to delete inventory links with invalid URLs (reported by @3x1t_5tyl3 and @jeana)
- Added username RTF sanitiazation to the contacts list and inspector (reported by @Vixus)
- Fixed not being able to edit LogiX parented under yourself (reported by @Polaris (she/her), @Hayden and @Ukilop )
- Fixed keyboard block not being properly registered in-world, causing inputs to be still processed when typing/editing in text fields
- Fixed local session assets not loading after the original owner has left the session (reported by @3x1t_5tyl3, @Toxic_Cookie)

2021.4.6.931 - Startup crash fix & import fix for models with intermediate thumb

Hotfix for startup crashes on Oculus runtime and imports failing due to defining an invalid thumb bone segment! Compatible with previous, don't need to update unless you're running into issues.

[h2]Bugfixes:[/h2]
- Fixed import failing on rigs that have a thumb bone labeled as intermediate segment (reported by @かず (kazu / GitHub: kazu0617))
-- Real thumbs do not have intermediate segment, only metacarpal, proximal and distal. When it's defined as intermediate it's assumed to be distal instead.
- Fixed crash on startup when using the Oculus runtime (reported by @Zandario and @Froppy)

Easier building in the new desktop mode, community playing with face tracking

Hello everyone and welcome to another of our weekly updates!

We have some more good news for the desktop users! Building in the new desktop mode is now significantly easier, with gizmos and LogiX now being much more friendly to mouse and keyboard operation. Not only that, but VR users benefit from those changes as well, as they add new workflows there as well!

The new desktop mode and things around it also received more polish in form of small additions, tweaks and bugfixes based on your feedback, so some of the initial pains should be gone! The input bindings have been adjusted too, making Shift the sprint key again, with Z toggling the sneaking on and off instead.

There's still more to come to make the process even easier, notably UI aligned and freeform camera, which will remove some of the clumsiness of working from the first person view.

We're also seeing some cool uses of the Vive Facial Tracker in Neos, from silly avatars to people producing some machinimas and cool videos. Check out the community highlights below to see it in action!



[h2]Building made easier in the desktop mode[/h2]
In the last week, we have focused on improving the building process in the new desktop model, specifically making the Developer Tooltip and LogiX tooltip much easier to use. To achieve this we have introduced new behaviors to both, that benefit both desktop and VR users.

The developer tooltip now has a new interaction mode for gizmos, using projection based on the direction the tool is aimed at, instead of the position of the tool. On the desktop, the projection mode is used automatically. Coupled with the cursor becoming freeform on interaction, this makes gizmos behave in a more familiar way, similar to tools like Unity, Blender and so on.

[previewyoutube][/previewyoutube]

In VR you can toggle between the old behavior and the new, with the projection mode being particularly useful for manipulating gizmos and moving, rotating and scaling objects over large distances with ease, without having to scale yourself up, or fly too far.

The LogiX tooltip has gotten similar treatment, with new behavior to allow connecting wires using the laser, in addition to the tip of the tool itself. On desktop, this is essential to being able to easily connect the nodes, but it expands the workflow in VR as well.

Specifically on desktop the cross gesture to disconnect wires uses projection mode as well, with small tolerance (10 cm at the time of writing) to allow dealing with spatially arranged wires.

[previewyoutube][/previewyoutube]

A lot of other smaller behaviors have been changed, tweaked and fixed as well, particularly positioning of spawned inspectors, nodes, grabbing things, assigning references in the inspector and so on, making the building process on desktop overall much easier and less frustrating.

There are still some major features planned that will further improve the usability on desktop coupled with the changes above, notably UI aligned camera as well as freeform camera, which should get rid of some of the clunkiness from editing in the first person view.

[h2]New default avatar, improvements to desktop and fixes[/h2]
Alongside making the building process easier in the new desktop, we have also applied numerous tweaks, fixes and other additions to the desktop experience, as well as other general features.

For example the motion blur effect has been made configurable for in-game cameras (including the streamer camera). The key bindings and their behavior was also improved based on general feedback, as more things keep falling into place, based on general feedback we have made the Shift key the sprint again, with Z key toggling sneaking on and off, since it's used less often and more in editing scenarios.

We introduced a brand new default headset avatar as well, with a custom design and optimized assets! It even shows the user's profile picture on the front! The hand models have gotten a refinement and optimization pass as well.

We have also made some improvements to the cloud API and increased the database throughput due to increasing load with the growing community, which should ease some issues with slow responsiveness and messages not loading in some cases.

[h2]Community Showcase[/h2]

[h3]Facial Tracking in Neos[/h3]
With the new facial tracking craze, and finally hitting the shelves for the rest of the world we figured it was only a matter of time till folks in the community got their hands on them! Folks now can see where the facial tracking can really shine in personal projects, cinematic environments, or even just for casual expression! Thanks Jax, Froppy, and Reactant for giving us some nice showcases for Neos! Can’t wait to see what folks will make!

[previewyoutube][/previewyoutube]

[previewyoutube][/previewyoutube]

[previewyoutube][/previewyoutube]


https://twitter.com/i/status/1376727150976466945

[h3]Ocean View by VRtualis[/h3]
Feeling the warmth of the room, and the chill lofi in the background, you enter the map just feeling at ease and all anxieties melt away. A new map by the VRtualis team, another environment for folks to use as a cloud home, or for users to just hang in! This map just oozes quality for folks who just want to relax in a nice environment. Thanks VRtualis for keeping the effort up!


[h3]Creator Jam 98 NotSims[/h3]
Creator Jam is at it again! This week it was one of the first 24 Creator Jams! We had the JP and English Communities each have their own crack at the Creator Jam theme this week which was NotSims! People focused on building environments with Guhehe’s Building Tool making some wonderful environments! Check it out and see what folks made! Thanks CJ Team!



[h3]MetaVerse Easter Meetup[/h3]
Happy Easter from the community everyone! This week we had a nice community easter party! People searched for eggs, ate some chocolate, and got really sleepy and took some naps!. So hopefully you channeled your inner bunny this weekend! (With bunny ears of course!) Thanks to everyone who came to hang that day! If you are ever new and want to just meet some folks, come to a meetup! You won’t regret it.



--------------------------------------------------------

That's all for this week! If you'd like to keep up with the latest developments, definitely check out our official Discord below, we post in the #devlog channel as we work on things and #neos-updates as we push out new builds. You can also see the release notes here on Steam, with list of all the changes.

Our goal is now adding some extra polish to the new desktop mode, particularly the different camera modes and working on some other features as well as time permits. We'll have more for you next week, so stay tuned!

2021.4.6.764 - Tweaked desktop input bindings, hand rig improvements and more

Hello! Sorry for smaller build again, I just want to push out a few improtant bugfixes and tweaks before the weekly update goes out.

There are some important changes to the desktop mode in this one, notably the default input bindings! Based on some general feedback and internal discussions, the sprinting and sneaking bindings have been changed again (sorry for the muscle memory!), with Shift being used for sprint and sneak (which is used less often) is now toggled on and off by pressing Z.

There are some improtant fixes as well, for example for finger rig detection, some avatars not being able to use the context menu in the desktop mode and permission system session crash (notably on the Among Us Map)!

[h2]New Features:[/h2]
- Exposed "Generate" on MazeGenerator as impulse target (requested by @Kal)
- Added "Material" to MazeGenerator, which allows overriding the material used for the walls

[h2]Tweaks:[/h2]
- Holding Shift key is now used for sprinting again (double tap for directional keys still works too)
- Press the Z key to toggle slow movement on and off
-- It will also automatically turn off if you start sprinting

- Reworked parts of hand rig detection heuristics to improve correct detection from bone names, which should improve hand rig compatibility
-- This fixes metacarpals being incorrectly detected as proximal (reported by @Groxxy but dumber, @chemicalcrux, with sample from @Aegis_Wolf | Art Director)
-- This should also better utilize short finger names used in some rigs (previously suggested by @Groxxy but dumber)
- Moved BodyNode LogiX nodes under Avatar/BodyNode (suggested by @Cyro)
- Categorized the ComposeFinger LogiX node under Avatar/BodyNode
- Reduced latency of some boolean input system operations by a frame
- Improved touchable permission security

- Merged Spanish locale additions by @Ruzert

[h2]Bugfixes:[/h2]
- Fixed Context Menu not being interactable in some avatars in the desktop mode due to it being spawned too close (reported by @Zyzyl, @Scott Daybreak, @firr, @Arito, @Kulza and @Turk)
- Fixed wires being dragged from LogiX interfaces and nodes when holding them and clicking to align them (reported by @xYreous)
- Removed forgotten debugging logging code for dynamic variables (found in a log from @LucasRo7)
- Fixed AvatarObjectPermissions validation causing session to crash when equipping a template avatar for joined user in some cases, when swapping avatars is not allowed (reported by @Nexulan | Community Manager, @LucasRo7, @MAX-KZCLOUD, @ProbablePrime for the Among Us map)

2021.4.5.911 - LogiX tool usable in desktop mode, many improvements & fixes

Hello everyone, got another batch of new desktop mode improvements and additions! Most notably, the LogiX tooltip is now much easier to use in the new desktop! It has projection interaction for connecting wires that not only works in desktop, but also in VR! There's still more things to come, like UI aligned camera with freeform cursor, which will make it even easier to use, but this should hopefully help quite a bit already!

Some other behaviors were improved as well with many things, from better inspector spawning position, improvements to controls and many bugfixes too for all things around! Also new nodes for easier work with the BodyNode enum!

[h2]New Features:[/h2]
- LogiX tip now supports projection interaction in addition to physical one as well, allowing you to drag and connect LogiX wires from distance
-- This makes LogiX tip significantly easier to use in the new desktop mode
- LogiX tip now also uses projection for deleting wires by crossing them in desktop mode
-- Note that there is small-ish tolerance (currently ~10cm) for the depth of the wires, allowing deleting wires that are at somewhat different depths (the tolerance can be tweaked based on issues)
-- The projection distance is updated anytime a wire is crossed over with a cursor. If the crossing doesn't catch a specific wire, make sure that your cursor hovers over it at some point (I can make this part smarter if this becomes a common problem)

- Added Slerp node overloads for 3D and 4D vectors
- Added listbans command to the headless, which allows listing of all active bans (requested by @Dante)

- Added new nodes for working with BodyNodes under Utility/BodyNode (based on feedback by @Turk)
-- Chirality - gets body node's chirality
-- RelativeBodyNode - gets the body node which is the root of given body node's tracking space
-- FingerNodeIndex - gets the index of the finger node
-- IsEye - is given body node an eye
-- OtherSide - gets the other side for sided body nodes (e.g. left leg will give the right leg)
-- Get Side - gets specific chirality of given body node
-- Finger Type - gets the finger type from a body node (thumb, index, middle, ring and pinky)
-- Finger Segment Type - gets the finger segment type from a body node (metacarpal, proximal, intermediate, distal and tip)
-- ComposeFinger - composes a BodyNode from a finger type, segment type and chirality

[h2]Tweaks:[/h2]
- LogiX tip now spawns new nodes at the location of the screen cursor in the new desktop mode, making working with nodes easier
- Tweaked positioning of spawned inspector from the developer tooltip to be more consistent
-- This heavily improves the positioning when in desktop mode, preventing the inspector from spawning at akward angles and too close to the view
- In-game photos now persist list of users who have exported it within the session
-- This prevents the "Save Screenshot" from reappearing after rejoining a session
- When spawning a photo captured by someone else, the "Save Screenshot" option won't reappear for the user who spawned it
- Grabbed object laser smoothing is reduced when the laser is pointing at a touchable interface (e.g. inspector canvas)
-- This makes it easier to drop in textures, materials and other references to fields in the inspector, without having to waiting too much on the laser to catch up
- Lowered smoothing of the FOV change when running in the desktop mode (based on feedback by @Shifty | Quality Control Lead)
- WASD double-tap sprinting now keeps the sprint active as long as any of the keys is held, even if the original double-tapped key is released (requested by @Shifty | Quality Control Lead)

- Upgraded to Oculus SDK v25.0 from v19.1 which includes OVRPlugin 1.57.0 (previously 1.55.1)
- Upgraded to SteamVR Plugin 2.7.3 (SDK 1.14.15)

- Merged Korean locale addition by @LUA

[h2]Bugfixes:[/h2]
- Fixed TooltipMultiplexer not passing through OverrideTargetPoint calls, resulting in projection mode on developer tooltip in multi-tools misbehaving (reported by @Shadow Panther [RU/EN, UTC+3], @ItsDusty and @RaiRu )
- Fixed incorrect target distance calculation when in the new desktop mode, resulting in not being able to drop references/textures/materials to inspector from a distance larger than 1 meter (discovered by @Rue Shejn | Artist 3D)
- Potentially fixed mesh renderers becoming visible and/or not having assigned proper materials, blendshapes and other properties when the mesh was previously setup and cleaned up (based on report by @Kal, @Cyro and @Shifty | Quality Control Lead)
- Context Menu will no longer auto-dismiss immediatelly if the cursor isn't inside of it
-- In other words, the cursor needs to be inside of the menu first, before the auto-dismiss behavior activates
-- This fixes the context menu immediatelly closing in some cases due to the cursor not being automatically centered in the screen (e.g. when using gamepad or on Linux where cursor re-centering isn't supported as reported by @Greyfus, @hare_ware and redyoshi49q)
-- This should also fix it being dismissed when the user is moving too fast (reported by @epicEaston197 and @Shadow Panther [RU/EN, UTC+3])
- Interactive Camera will automatically stop mirroring when switched to the desktop mode (reported by @Hayden)
- Audio Streaming Panel now has the audio output placed outside of the UI canvas, preventing it from being too quiet when spatialized due to the canvas scale (reported by @marsmaantje and @Elektrospy)
- Fixed sides of dash not being visible when the display (or Neos window) has a narrow aspect ratio (reported by @hare_ware)
- Fixed log-spam when exception occurs during permission validation (found in a log from @LucasRo7)
- Added extra diagnostics to the AvatarObjectPermissions to help diagnose crash reported by @Nexulan | Community Manager, @LucasRo7, @MAX-KZCLOUD and @ProbablePrime
- Fixed IME input mode not getting activated in the new desktop mode, making it impossible to write certain symbols like Japanese (reported by @Aetoriz)
- Fixed regression in texture variants incorrectly combining point-filtering with billinear and higher, causing textures to not be able to switched to Point filtering if there is another request for the same texture that's Billinear or higher