1. Neos VR
  2. News

Neos VR News

2021.7.22.458 - Disable desktop option, Assimp model importer update, fixes

Another small patch. Adding some new security options, updating Assimp library to the latest version and fixing up some regressions.

Compatible with previous builds!

[h2]Security:[/h2]
- Added disableDesktop configuration option for Config.json, which allows completely disabling the Desktop functionality in Neos (based on request by @Earthmark, also previously requested by @kazu0617 Neos:kazu)
-- This disables both the Desktop texture, as well as any other components that provide interactions with desktop (e.g. forwarding inputs)
-- Note the tab and components are still present in the data model, but their behaviors are short-circuited
-- This can be useful when you need/want increased level of security, for example in business settings

[h2]Tweaks:[/h2]
- Updated Assimp library to the latest commit from source
-- This includes 278 commits of various additions, improvements and bugfixes for multiple formats (you can check the merge for details at our fork: https://github.com/Neos-Metaverse/assimp)
-- Updated the Assimp.NET library to correspond to the updated ABI of the native library
-- This also fixes a specific .stp file crashing Neos on import (reported by @Cyro)

- Merged Japanese locale additions by @Aesc

[h2]Bugfixes:[/h2]
- Fixed regression causing the ReverbZone presets to not work (reported by @Ryuvi | Technical Artist)
- Fixed regression causing PlayOneShot to not work when the audio clip isn't loaded and there is nothing else forcing it to load (reported by @orange)
- Fixed Neos showing unread message count from non-Contacts (reported by @Fuzy Sidwell and @Shadow Panther [RU/EN, UTC+3])
- Fixed regression where holding item in VR would make you unable to release it when the dash is opened (reported by @AshtonSparx)

Two Factor Authentication support, Upcoming branding refresh

Hello everyone and welcome to another of our weekly updates!

We have some exciting news for you. Based on increasing community requests, feedback and votes, we have implemented two factor authentication for the accounts! You can now secure your account with Time-Based One Time Password (TOTP), using an app like Authy or Google Authenticator.

The setup is quite simple and can be done by scanning a QR code given to you in Neos. By default any credit transactions (NCR and KFC) will always require a code to process. You can optionally enable the protection for login into your account as well, once we update account.neos.com website it'll be made default for everyone as well.

We have also begin overhaul of Neos' existing branding, to bring it up to modern standards and design guidelines. In the upcoming weeks, we'll start replacing our logos, banners and other materials with brand new designs and releasing official branding guidelines. If you'd like a bit of a sneak peek, check out some of the materials below!



[h2]Upcoming Branding Refresh[/h2]
The Neos Metaverse is getting a fresh coat of paint!

[previewyoutube][/previewyoutube]

We are excited to announce that Neos has begun an overhaul of its existing branding! These changes include but are not limited to, a redesign of the official logo, the introduction of an official color palette, and the introduction of the official Neos Metaverse typeface, “Stephenson”.

In the weeks to come, we will be releasing an official set of branding guidelines and updating the brand identity across the board. This includes updates to the design of Mentor and Moderator badge and onward to the existing icons, along with new background artworks for the Discord, Steam page, and website. These changes will open up a new world of opportunity when it comes to ways Neos is able to promote itself and be identifiable in the wild. There are many plans in the works…



For specific thoughts and concerns feel free to contact or tag Chroma on our Discord.

It's a new day in the metaverse!

[h2]Two Factor Authentication[/h2]
Implementing two factor authentication has been something we heard our community asking more and more frequently as time went on, so we decided to prioritize it, to provide increased account security for everyone.

As of the latest build, Neos now offers the Time-Based One Time Password (TOTP) 2FA authentication which anyone can setup on their account. In order to use this method, you’ll typically need an authenticator app on your phone, such as Authy or Google Authenticator.

[previewyoutube][/previewyoutube]
2FA account setup. The code shown in the video is for demonstration purposes only and has been scrapped. NEVER show your QR code and recovery codes to anyone.

In Neos on the tools panel (the same one that contains New World, Avatar Creator and NCR Withdrawal & Deposit options), you can find a new “Setup 2FA” option. Clicking this will open up a wizard that will walk you through the setup.

You can do so by scanning a QR code with your phone or manually typing in the security code (the latter is not recommended). Once you have it scanned, you will be given a set of 8 recovery codes.

Those codes can be used in place of the 6-digit code in case you lose access to your phone. If you do need to use them, we recommend that you deactivate 2FA (using the same button as to activate) on your account immediately and reactivate to generate a fresh secret and set of recovery codes.

Keep in mind that each recovery code is 1-time use only, meaning you will run out of them quickly and get permanently locked out of your account if you lose both. We recommend storing them at a secure location.

[h3]Protecting NCR[/h3]
By default, once 2FA is setup, you will be asked for a 2FA code for every NCR (and KFC, since they use the same underlying system) transaction. This provides a great degree of security, preventing anyone from sending or withdrawing credits from your Neos account when your computer and/or password gets compromised.

https://www.youtube.com/watch?v=Db10T1CXpHA

[h3]Protecting Account Login[/h3]
At the moment logging into your account isn’t protected by 2FA by default. You can enable this by sending /enableLogin2FA command to the Neos account in your Contacts, which will require each fresh login to input the 2FA code.

https://www.youtube.com/watch?v=Jw2vGjI-10k

One caveat is that our account.neos.com website hasn’t been updated to support 2FA yet, so when the login protection is activated you won’t be able to login there. We are working on updating the website as soon as possible, but this solution should provide a good workaround.

If you need to login to the website, you can also use the /webLogin command from Neos or the AdminX tool bundled with Neos. It will suppress the 2FA login for 3 minutes, giving you enough time to login and automatically re-enabling it afterwards.

If you use the "Remember Me" option you will not need to input 2FA code every time you start Neos. This trades some security for more convenience. The authentication codes are refreshed every time you login, so generally shouldn't pose a big risk, but if you want even higher security you can just do a fresh login every time.

[h2]QR Code Procedural Texture[/h2]
One of our core design philosophies is to implement any functionality in the form of general building blocks that can be used for other purposes as well by everyone in Neos. One of such blocks is a brand new procedural texture - StringQRCodeTexture.

[previewyoutube][/previewyoutube]

This texture lets you specify arbitrary text string as payload (as long as it fits into the QR code), level of error correction and two colors for the QR code. It will update dynamically in real time, so you can build whatever logic you like to encode any text you like.

While it’s a bit more niche, we hope that some of you will find it useful and fun to play with!

[h2]New LogiX nodes for detecting open dash and quick time formatting[/h2]
If you’d like to add a cool visual to your avatar whenever you have your Neos, SteamVR or Oculus dash open, now you can! With two new LogiX nodes you can detect whether the Neos’ own dash is open or the external platform one (e.g. SteamVR or Oculus) is.

We also added a set of three nodes to make formatting DateTime more convenient, making it easy to show just the time or date part with configurable style. Similarly there’s a node to quickly format a TimeSpan structure.

[h2]Desktop can now send items to contacts, export and set profile picture[/h2]
Thanks to some recent changes, we added a behavior where holding an item in the desktop mode with the Right Mouse button and opening the dash with Esc will keep the item held in hand. This implicitly enabled some previous VR-only interactions, such as sending items to Contacts, exporting through File Browser or setting a Profile picture to work.

We still plan to redesign those UI’s to make the interactions more intuitive and idiomatic, but it should help make those old ones usable in the meanwhile! We also disabled physical grabbing in desktop, fixing cases where the avatar would grab a nearby item with their hand due to proximity, rather than the item the mouse cursor was pointing at.

[h2]What’s next[/h2]
Apart from the new features, tweaks and fixes, we are continuing with several other tasks, notably the BEPUv2 upgrade. We have now finished implementing all collider types and using the asset variant system to generate and cache the acceleration data for Mesh Colliders and Convex Hulls.

This change will significantly speed up loading of worlds and reduce CPU load - a moderately heavy mesh collider would take about 680 ms to generate, but only 48 ms to load from a pre-generated version.

We also implemented tracking of transform hierarchy changes, updating the collider transform in the physics engine in all cases as well as responding to changes in scale. The system that tracks those changes has been extended to allow separate tracking of position/rotation changes and scale changes, so parts that are only interested in scale changes do not have to update when only the position/rotation changes, resulting in better efficiency and less wasted cycles.

[previewyoutube][/previewyoutube]

There is still much to do, you can check the tasks on our Physics roadmap on GitHub. We also recommend checking other roadmaps, the #devlog channel on our official Discord and release notes for a full list of all the additions, tweaks and bugfixes.

And as usual, big thanks to you, our supporters! You are what makes all of this possible and keep us moving forward with your feedback, support and creativity every day. We’ll see you next week!

2021.7.21.1383 - 2FA deactivation mechanism, crash bugfix, SignalR reconnect fix

Another smaller patch, adding ability to disable 2FA on your account once setup. This can be crucial if you lose your phone and need to setup a new one (you use the recovery codes in this case) or your phone/code becomes compromised and you need to regenerate a new secret.

Also new command that makes it easier to login into the account.neos.com with Login 2FA protection enabled before the website is updated, just send /weblogin to the Neos bot and login to the website in the next 3 minutes!

Some small fixes as well, one causing a crash and another for the SignalR not reconnecting in some cases.

Compatible with previous build.

[h2]New Features:[/h2]
- Added mechanism to disable 2FA on the account. This can be used to run the 2FA setup again, generating a fresh secret and set of recovery codes
-- To disable, open the "Setup 2FA" dialog again after you have set it up on your account
-- Deactivating will require either a 2FA 6-digit code or a recovery code
-- If you lose your phone, you can use the recovery codes to setup a new one. We recommend disabling and re-enabling IMMEDIATELLY, as each recovery code is 1-use and you will run out of them quickly
- Added /weblogin command, which temporarily (3 minutes) supresses account login 2FA requirement
-- This can be used just before you want to login to account.neos.com, e.g. to edit Wiki
Tweaks:
- Merged Czech locale additions by @rampa_3 (UTC +1, DST UTC +2)
- Merged Japanase locale update by @Aesc

[h2]Security:[/h2]
- Fixed PlayOneShotAndWait causing stack overflow and crash Neos when playing the same clip after it has finished playing and the clip hasn't been loaded yet (@epicEaston197)

[h2]Bugfixes:[/h2]
- Added custom reconnection logic to SignalR which will reconnect to the service in case the built-in reconnection logic fails
-- This should fix cases of messages to being sent/received in case of connection interruptions (reported by @Banane9, @AshtonSparx, @Shadow Panther [RU/EN, UTC+3], @brodokk and @Froppy)

2021.7.21.402 - Fix sending large items, desktop can now send items and more

Just an extra small patch with some improvements for desktop (no more accidental grab sphere grabbing and you can now send items to Contacts and Export stuff, since it was easy enough to do thanks to recent addition) and important bugfix for large items not being able to be sent. Also the Discord bot now links properly to the actual GitHub webpage instead of the API JSON! :smile:

Compatible with previous build.

[h2]Tweaks:[/h2]
- The Neos Discord bot now links to the HTML page for the #🐱github-feed channel for pull requests instead of a JSON (fixed by @ProbablePrime | Docs, reported by @Alex from Alaska)
- When opening dash in desktop mode, the last grab input is now preserved
-- This allow sending items in Desktop, Exporting through file browser, setting profile picture and doing other interactions that require holding object in world (reported by @kazu0617 Neos:kazu, @Gawdl3y, @Psychpsyo and @Alex the фурри авали🐦)
- Physical hand grabbing (with grab spheres) is now disabled in Desktop mode (suggested by @AshtonSparx, @Turk | Mentor Manager, @H3BO3 and @Toxic_Cookie | NTC CEO)

- Merged Korean locale additions by @MirPASEC
- Merged Japanese locale additions by @Aesc

[h2]Bugfixes:[/h2]
- Fixed complex objects failing to send due to entire manifest being included in the message and exceeding SignalR limit (based on report by @Enverex and @kazu0617 Neos:kazu)

2021.7.21.127 - 2FA support with TOTP, dash opened LogiX & quick format nodes...

Hello everyone, sorry it took so long to get a new build out, things have been a bit rough lately. However there are some nice goodies in this one, we finally have 2FA support!

You can setup TOTP two factor authentication with apps like Authy or Google Authenticator - scan a QR code that Neos generates for you and then enter 6-digit code to confirm certain actions. By default any KFC/NCR transfers always need a code. You can optionally enable it for login as well, but currently this breaks login on account.neos.com (e.g. used for Wiki login).

We'll expand on this in the future and cover more actions and make it configurable too, so you can decide how much of a tradeoff between security and convenience you want for your account, but this should be a good start.

One of the building blocks for 2FA is also completely general and you can use it for anything you like - we now have QR code procedural texture! You can generate QR code for any text string (within a size limit)!

There are a bunch of other goodies too, e.g. you can now detect when Neos dash and/or SteamVR/Oculus dash are open with LogiX! There are some handy nodes for DateTime formatting too. Some other tweaks and bugfixes too.

[h2]New Features:[/h2]
- Implemented Two Factor Authentication (2FA) using the TOTP - Time-Based One Time Password (based on combination of GitHub voting, Patreon priority voting, and general community feedback, originally requested by @0utsider | Programmer, @Karel | CEO, @Alex from Alaska, @ProbablePrime | Docs, @Toxic_Cookie | NTC CEO, @3x1t_5tyl3, @Raith (CytraX) | Programmer, @Jack, @chemicalcrux and others)
-- You can enable 2FA on your dash from the tools facet, which has new "Setup 2FA" option
-- To setup you'll need a TOTP authenticator app, like Authy or Google authenticator
-- Once enabled, every credit transaction (NCR, KFC) will require a 2FA code to complete
-- Optionally you can enable 2FA requirement for login by sending /enableLogin2FA command to the Neos account
--- IMPORTANT: Currently this breaks login at the account.neos.com website, as it's not been updated with 2FA support yet
--- Using "Remember Me" will not require 2FA code every time you start Neos. If you want even more increased security, do not check this option and manually login every time. However this shouldn't pose a significant risk, as the "remember me" token is invalidated every time you login
-- You can disable 2FA requirement for login by sending /disableLogin2FA command
-- Take care to protect your secret code and recovery codes. If you lose them, you'll PERMANENTLY lose access to your account
-- AdminX and Headless support 2FA login as well
--- Note that with Headless you cannot use auto-login in the configuration file with 2FA, only the dynamic "login" command will work
- Added StringQRCodeTexture procedural texture, that generates QR code for a string payload
-- ECC Level and colors are configurable
-- QR code size is automatically chosen based on payload length. If the payload is too large, error texture will be generated.
- focus headless command now also accepts session ID (requested by @Glitch)
- Added logsFolder setting to the headless configuration file, which allows overriding where the logs are stored (requested by @Glitch)

- Added quick format LogiX nodes for DateTime (implemented by @ProbablePrime | Docs)
-- Format Date (shows just the date)
-- Format Time (shows just the time, with optional 24h clock and milliseconds)
-- Format TimeSpan (with optional seconds and milliseconds display)

- Added "Export Screenshot" option for screenshots that were already saved (based on feedback by @FreeSpirit)
-- This allows you to re-export screenshots or export them on another machine
-- Note that this doesn't check if it's already been exported on given machine, so you can end up exporting multiple copies

- Added IsNeosDashOpened LogiX node (under Users) which indicates whether given user has their Neos dash opened
- Added IsPlatformDashOpened LogiX node (under Users) which indicates whether given user has platform-specific dash opened (SteamVR dash or Oculus) (based on request by @Shifty | Quality Control Lead, GrayBoltWolf)
-- Note that Oculus dash is untested, if you run into issues with it let me know!

[h2]Tweaks:[/h2]
- Removed VBLFC badge from the session dialog
- Updated various cloud libraries to latest versions
- Images imported as Neos Photo are now implicitly treated as a captured screenshot - saved to the Steam Screenshots, Pictures in Documents and to Inventory (when enabled) (based on feedback by @FreeSpirit)
- Save As Screenshot nd Export Screenshot context menu options now close the context menu when activated, to help confirm that they went through
- Enabled detailed SignalR errors to help diagnose some issues (e.g. sending large objects not going through as reported by @Enverex and @kazu0617 Neos:kazu)

- Merged Russian locale additions by @Shadow Panther [RU/EN, UTC+3]

[h2]Security:[/h2]
- Removed legacy Registration Form (reported by @badhaloninja)
- Improved security of authentication tokens by hashing them at rest

[h2]Bugfixes:[/h2]
- Fixed credit transfer messages showing red as failed to send (reported by @Earthmark and @Shadow Panther [RU/EN, UTC+3])
- Headless account is no longer counted against the max user limit (reported by @Shadow Panther [RU/EN, UTC+3], @Kulza and @Fuzzy)
-- This fixes confusion where the world seems to have 1 free spot, but will fail to join due to that spot being occupied by the headless host account
- Fixed not being able to assign null as valid cloud variable value of type Uri
-- This fixes not being able to unfavorite default avatar (and other things) (reported by @Shifty | Quality Control Lead, @Shadow Panther [RU/EN, UTC+3] and @epicEaston197)