1. Neos VR
  2. News

Neos VR News

2020.7.15.1186 - Native support for MikkTSpace tangent generation, tweaks, fixes

Native support for MikkTSpace algorithm for calculating tangents! It's on by default for newly imported models, you can also recalculate it for any existing mesh from the inspector. This should fix many inconsistencies in normal maps and height maps and visual artifacts.

Also a bunch of other stuff that has accumulated. Improvements for headless and some fixes for handling permissions/roles. Fixes for incorrectly used video playback engine in some cases, causing potential crashes.

[h2]New Features:[/h2]
- Integrated the Mikktspace Tangent Space calculation algorithm directly into Neos (recently requested by @H3BO3)
-- This should produce more robust results and fix visual artifacts (like normal map seams) for models. This algorithm is very widely used (e.g. by Blender, Unity, Unreal Engine, Substance Painter and others) so the tangents should now be consistent with many industry standard tools
-- It is now used by default on imported models, instead of Assimp's tangent space calculation.
-- You can also run it manually on any existing mesh through the StaticMesh in the inspector, by running "Recalculate Tangents (Mikktspace)"
-- Since there wasn't existing .NET Wrapper for this algorithm, I've made one and published it as open source under MIT for anyone to use! https://github.com/Frooxius/Mikktspace.NET
- Added overloads for Math function nodes with two inputs that accept scalar as first argument and vector as second
GitHub
Frooxius/Mikktspace.NET
A .NET / C# wrapper for the Mikktspace tangent generation algorithm - Frooxius/Mikktspace.NET

[h2]Tweaks:[/h2]
- Increased number of parallel jobs for processing uploads and record syncs, reducing some queue stalls with long-running jobs (this should reduce cases of the syncing sometimes taking a long time)
- Disabled RTF parsing for Input and Display LogiX nodes, making it easier to edit/diagnose strings with RTF tags in them
- Some internal moderation tool improvements (based on suggestions by @CanadianGit, @Veer | Chief of Moderation and @Dante)
- Some other internal security improvements
- Sealed many of the LogiX node types, potentially enabling compiler/JIT optimizations
- Set Global/Local Rotation/Scale nodes now use identity rotation/scale as a default when value is not plugged in (suggested by @Alex from Alaska)
- Headless will now skip most heavy updates in the gameloop if no users are present in the world, effectively treaing it as a background world (based on previous feedback by @Enverex)
- Changed default order of dash screens (based on suggestion by @Shifty | Quality Control Lead)
- Tweaked dash screen button colors
- Headless client/server will now use the higest available role when setting up role overrides, rather than skipping assigning it altogether when the role is higher than the host is allowed
- Upgraded to Unity 2019.4.4f1 (from 2019.4.3f1)
- Updated the Debug build of Neos

[h2]Bugfixes:[/h2]
- Fixed VideoTextureProvider getting corrupted when unexpected error occurs in youtube-DL (e.g. due to invalid URL) and not loading any subsequent videos (reported by @A Monsoon of Babies)
- Fixed invalid playback engine switching when playing videos from URL with unknown MIME, resulting in Unity Native being used when libVLC should be used instead and resulting in potential crashes (reported by @RΞBOЯИ through @Shifty | Quality Control Lead)
- Fixed Atan2 LogiX nodes having swapped X and Y inputs in relation to the underlying function (reported by @Zyzyl)
-- Exiting instances will have their inputs swapped on load to preserve the original behavior
- Fixed some more potential time comparison errors due to local system timezone (when updating world statistics and focus changes)
- Fixed headless host not getting assigned proper role (effectively defaulting to Admin), causing odd behaviors in the permission system (e.g. not being assign certain roles in some cases, but giving role higher than it normally could in others) (based on feedback by @Enverex)
- Fixed headless host using the DefaultHostRole when determining which role can and cannot be assigned, rather than taking the actual Host role into account
-- This fixes odd behavior where the host is a friend or has an override and as a result gets a higher role than regular host, but this higher role isn't taken into account (based on feedback by @Enverex)

Customizable Radiant UI dash, build your own UI, official Neos Merch

Welcome back to another weekly update!

This week we’ve reached another important milestone with our UI overhaul, finishing the ability to customize the layout of the new RadiantUI dash and even make your own UI pieces for it! Some other parts of the new UI have also gotten extra polish and cleanup, like the lasers and gripping system.

In other news, we’re also finally made our official Neos Merch stores open! If you’re interested in getting some official Neos Merch, check the links down below. We’ve got T-shirts, bandanas, stickers, buttons, mugs and more!

We also have some amazing community highlights, the Neos East Japan have created a mindblowing virtual smartphone in Neos, with support for apps!



[h2]Customizable Radiant UI dash[/h2]
Earlier this week, we officially released the ability to customize your own dash. Simply activate the UI editing mode. This will show a grid on the dash and let you grip out the Facets (pieces of UI) and move them around.

You can drop them in another place (either the main screen or the upper bar), resize them by holding trigger and dragging or get rid of them by Destroying them like any other item. You can duplicate them as well if you want multiple copies.

If you accidentally make your dash unusable, you can reset it back to default through the Neos Launcher (configuration tool on Steam). Simply open the launcher, check the “Reset Dash” option and click the big “Launch” button.

[previewyoutube][/previewyoutube]

[h3]How to toggle the UI editing mode[/h3]
The UI editing mode can be toggled on and off at any time.

  • Index: Hold the A (lower) button on the left controller and double tap the same button on the right controller
  • Rift Touch: Hold the X (lower) button on the left controller and double tap the A (lower) button on the right controller
  • Vive: Hold the upper App/Menu button on the left controller until a circle fully appears, then double tap the same button on the right controller
  • Windows MR: Hold the App/Menu button in the middle of the left controller until a circle fully appears and then double tap the same button on the right controller
  • Screen: Press the F6 key on your keyboard


[h2]Make your own UI: Facets[/h2]
One of the greatest strengths of Neos has always been its community and creative power and with the RadiantUI our goal is to bring this power to the whole UI itself. You can now build your own pieces of UI using the Facet system and bring them to your dash.

Not only has anyone the ability to rebuild the existing pieces of UI in their own image, but also build completely new functionality. To do so, you can start by creating your own Facet using the Create New -> Object -> Facet template.

This will create a simple UIX canvas with a Facet component attached on the root. This component defines how the canvas should be sized when it’s integrated into a container (like the dash) - you can specify minimum and maximum sizes, allowed aspect ratios and preferred sizes.

Within the canvas you can build any functionality you want as any other object. You can use LogiX, even put in some 3D objects (although you have to be careful with how they get used). Once you’re done, save the Facet into your inventory.

To spawn the Facet and place it into your dash, select it in your inventory and click the new purple button, with an arrow coming out of the square (this will change in the future). This will spawn the Facet in your private space and let you place it into your dash.

[previewyoutube][/previewyoutube]

IMPORTANT: At this moment, this system is mainly for experimentation and building your own UI. Be wary which Facets you place into your private UI, as they can potentially contain malicious code that can access some of your private information.

Use Facets only from sources you trust, they should be treated as installing an application on your system. To help mitigate potential risks, you can only spawn out Facets you saved into your own private inventory at the moment.

As more measures and functions are put in place in the future, those restrictions will relax.

[h2]Polishing the rest of Radiant UI[/h2]
Some of the previously introduced pieces of the new UI have gotten some extra polish. For example the lasers now have intensity patterns based on the action, which should help provide more information to visually impaired users (e.g. with color blindness or blurry vision).

Thanks to the new UI Editing Mode the equippable item grip repositioning has also been improved. Instead of being tied to the Builder Edit mode, it now uses the UI Edit Mode, so it no longer requires builder permissions to adjust the pose for weapons, tools and other items.

A lot of its glitchy behaviors have been also fixed and it can be now toggled on the fly, without need to equip and re-equip the item.

[h2]Official Neos Merch[/h2]
You’ve asked for it and now it’s here! We’ve opened two official Neos VR merch stores: Redbubble and Spreadshirt! You can get some Neos themed stickers, buttons, mugs, T-shirts and a bandana!

The reason why we choose two stores is so we can offer different kinds of products and also have better shipping options based on what you choose. Here’s the main points for each:
[h3]Spreadshirt[/h3]
  • T-shirts
  • Bandana
  • Hoodies
  • Mugs
  • Caps
  • Buttons




[h3]Redbubble[/h3]
  • T-shirts
  • Stickers
  • Better shipping outside of US




We hope you’ll like the choices, but we’ve got some more to come! If you won free merch in our original giveaway, it should be shipping soon!

[h2]Community Highlights[/h2]
[h3]Evolver Neos Phone by Neos East Japan[/h3]
https://twitter.com/mikan3134/status/1282253366383370242
Looks like the NEJ team is creating something new and awesome again! This collapsible device resembles a really thin smartphone, and has the capability to store applications and tools. The NEJ team has made it really easy to add facets and other items using their custom app creator, so give this amazing device a try!



[h3]Reading Nook by Mcham3[/h3]
A dreamy little world made to be a cozy reading area. I would personally love to have a room like this in my house, and I swear I’ve seen something like this in one of my dreams! Beautifully done, Mcham3!



[h3]‘MURICA by Creator Jam![/h3]
The jammers are back at it with their zany world designs! This one is complete with a fast food restaurant, yelling southerners, fried everything and a souped up american-flag painted monster truck with a mounted machine gun that fires fighter jets playing “America, f#$@ yeah!”. Happy 4th of July!



[h2]What’s Next?[/h2]
With the dash itself now being customizable, we continue to expand this system, so Facets can not only be placed in the dash, but also on your avatar. This will let you place some key pieces of UI in different places for quick access, such as on your hands, your viewpoint or permanently pinned in your playspace.

We’ll also continue reworking more pieces of the old UI and build new ones as Facets. The next ones on the list are particularly the world switcher and the world browser, which will be merged with session joining, to make it easier for everyone to find active sessions.

Even in the short time we’ve already seen some amazing custom Facets and this is just the beginning for the new system, we can’t wait to see all the incredible stuff that you will create!

Thanks for reading this weekly update, we hope you enjoy the updates and we can’t wait to bring you more. And thank you for supporting Neos and making it better every day!

2020.7.10.1281 - Paste from clipboard button on dash, tweaks, bugfixes and more

A bit smaller build today, doing some cleanup of issues and adding new small facets. Time to test the dash auto-upgrade systems, new "Paste content from clipboard" should be added to all dashes! :smile: (please let me know if it runs into some issues) Also tweaks and bugfixes as usual!

[h2]New Features:[/h2]
- Added "Curvature" to RadiantDashStateSync which allows reading/writing the dash curvature (based on request by @SmolCookie)
- Added "VirtualMultiKey" under "Userspace/Virtual Keyboard", which allows simulating press of multiple keys on a single button press
-- You can use this to simulate combinations like Ctrl+C and Ctrl+V for clipboard actions (based on request by @Turk)
- Created "Paste Content From Clipboard" facet and put it on the Home screen by default
-- It will be auto-inserted into customized dashes too (you can always move it or delete it if you don't want it)
-- The equivalent button in the "Session" screen has now been removed

[h2]Tweaks & Optimizations:[/h2]
- Text in the Friends list is now properly autosized, fixing cases where large or long world names end up overflowing
- You can now swap the Min and Max values on a Slider to reverse the range (requested by @Turk)
- Optimized CPU and memory usage when generating the UI for the Friends dialog
- Added a copy of the sync status Facet to the top bar by default (only for users who haven't customized their dash yet) (suggested by @Turk, @sirkitree and @GearBell)
- Added blue name badge color as the official Neos moderator indicator - you can approach those members with any community/moderation related issues
- Changed the Neos moderator badge to a more official one (graphic created by @Coffee | Programmer, suggested by @Veer | Chief of Moderation)
- Reordered name badges, so official Neos team/moderator badges always show first, then supporter badges (spark, flame, Patreon, Anorak) and lastly the custom ones (suggested by @Veer | Chief of Moderation on behalf of others)
- Updated the controller tutorial graphics to include information about which controller to use to open/close dash (updated by @Coffee | Programmer)
- The RTF tags are now stripped in the headless CLI interface for easier reading (suggested by @Enverex)
-- The "status" command is excluded, so it's possible to still check the actual full name, including formatting

[h2]Bugfixes:[/h2]
- Fixed ComponentCloneTip not clearing the name when the template is cleared (reported by @Blaze)
- Fixed ambient occlusion effect not being disabled when "Postprocessing" is disabled on a Camera and causing multiple instances of the filter to accumulate when repeatedly toggled on and off (reported by @orange)
- Fixed controller haptics not working when triggered through the hand reference (this fixes haptics being broken after change to NearestUserHand reported by @Rukio and @Shifty | Quality Control Lead)
- Fixed race condition breaking an UIX canvas when Graphic maps a material that gets destroyed before the UIX update cycle completes
- Fixed Facets saved to inventory being named "FrooxEngine.Facet" (reported by @Shifty | Quality Control Lead and @Coffee | Programmer)
- Fixed race condition when pinning glyphs in a Font asset and the dynamic atlas hasn't been initialized yet

2020.7.9.1241 - RadiantUI dash customization support, custom facets and more

I was planning on pushing this tomorrow, but the SteamVR issue kinda speeded it up, so here it is! Customizable RadiantUI dash and ability to bring in your own Facets! :smile: This is another important milestone of the UI overhaul, giving you the ability to customize and extend Neos' UI and build your own favorite layout.

There's a lot more to come still, like placing facets on your avatar, having multiple workspaces (loadouts) and more so stay tuned! This build has lots of other additions, improvements and bugfixes as well as usual.

Also thanks to our @Danger Tester's for helping to polish the facet customization system and catch the early bugs before release! Thanks to: @Blaze, @GalexY, @sirkitree, @Zyzyl, @Abysmal, @Dante, @H3BO3, @Rukio, @Zane, @Alex from Alaska, @GearBell, @ohzee, @Shifty | Quality Control Lead and @Turk !

[h2]New Features:[/h2]
- Finished implementation of Dash customization - you can now enable UI editing mode and customize the layout of your dash, or even add your own pieces of UI!
-- All changes you make are automatically saved to your cloud profile either 1 minute after last change or on exit/logout (whichever is sooner)
-- You can move facets between the main screen and the top bar at the moment. As more of the old UI's are reworked into Facets, you'll be able to customize them as well
-- This system also has layered upgrade mechanisms, which will allow us to insert new facets into your modified setups. If you don't modify your layout, it will auto-upgrade to the latest official layout

[h2]How to activate/deactivate UI editing mode:[/h2]
- In VR with Index/Oculus, hold one of the dedicated userspace buttons (that opens/closes dash or world switcher) and double tap the other.
- In VR with Vive/Windows MR, hold the menu button until the circle fills and then double tap the other menu button.
- In Screen mode press the F6 key. To pick facets off the dash, you need to hold Shift while grabbing them.

- Added ability to bring custom Facets into userspace through the inventory
-- First, save a Facet into your inventory and then click on it once and use the new magenta colored button to spawn it out in the userspace
-- IMPORTANT!!! Only spawn out Facets you trust, they have access to your private UI and data. The mechanism will be more robust in the future, this is meant for early experimentation.

- Added "Workspace" component, which auto-loads and saves workspaces - arbitrary child hierarchies to the cloud at given path
-- This serves as a building block for the Dash customization, but is general and can be used for anything
-- Only works in Userspace at the moment for security reasons
- Added "Reset Dash" to Neos launcher, which allows resetting the dash to default if it becomes messed up
- Added "UserInterfaceEditModeSync" (under Utilities) which indicates of the UI edit mode is active or not and can be used to change the active state (only in Userspace)
- Added "BlockAllInteractions" to Canvas, which allows blocking all interactions with the canvas (can be used to temporarily supress interacting with it - e.g. Facets used this when they're grabbed)
- Added visual placement cursor to GridContainer to provide better feedback about the placement
- Added "GrabTooltipSnapper" which will automatically snap the grabbed object in front of the tooltip/laser location of the grabbing hand

[h2]Tweaks:[/h2]
- Tweaked the Facet placement logic for GridContainer to provide more precision
- Changed Home Icon (changed by @Coffee | Programmer)
- Changed voice mode icons on the dash menu (changed by @Coffee | Programmer)
- Added new Neos logo to the Neos Launcher
- Reduced the size of the Neos Launcher and rearranged a bit to be more compact (based on feedback by @Ardes and others before)
- Removed deprecated texture size ratio from the Neos Launcher
- You can now set worlds owned by groups that you are a member of as your home (requested by @rhenium_75)
-- IMPORTANT!!! Make sure that multiple users don't save this world in parallel, otherwise you end up with sync conflicts
- String GET and POST nodes will now fill the Content output with the exception when OnError is fired (based on feedback by @Alex from Alaska)
- When placing facets to the GridContainer, they will now prefer their last placed size first (suggested by @Shifty | Quality Control Lead)
- Facets now don't accept physical touch by default (if you have existing facets, you'll have to re-enable it if you want this preserved)
- Facets now cannot be placed when edit mode is off (reported by @Turk)
- Facets can now be placed by simply dropping them (suggested by @Rukio)
- Tweaked the RadiantUI dash grid container sizes so they perfectly fit the size of the dash, without partial cells
- Upgraded to Unity 2019.4.3f1 (from 2019.4.2f1)

[h2]Bugfixes:[/h2]
- Fixed race condition in UIX generation, where a sprite/raw-image texture that's not fully loaded (or becomes unloaded) during UIX graphic generation causes UIX to break (reported by @Shifty | Quality Control Lead on behalf of @Aegis_Wolf | Art Director)
- Fixed Facet Container Facet pick visual (the cyan one) getting stuck when Edit mode is turned off while the visual is still active
- Fixed String POST node throwing an exception when trying to send request with body that's null
- Fixed invalid implementation of ForeachComponentInParents, causing certain events not to propagate correctly
- Fixed interaction elements (Buttons, Sliders...) getting their IsHovering or IsPressed status saved and get stuck upon it on load until they're interacted with
- Fixed default facet size growing to take all the available space on each axis none of the preferred sizes fit (the calculated size will only grow to the largest preffered size on each axis)
- Fixed flashing visuals for Facet placement on the GridContainer
- Fixed UIX canvas breaking due to a race condition when a NestedCanvas is removed while an UIX update is still running (reported by @Alex from Alaska)
- Fixed Facets created with "Create New" having two backgrounds with Z-write on, making the second one not render
- Fixed being able to place two facets at the same time (reported by @ohzee)
- Fixed dropping or hovering of laser-held items not working through raycast portals
- Fixed material property blocks on MeshRenderer not updating properly when the number of materials is decreased and then increased again
-- This fixes some visual glitches with UIX (reported by @Abysmal)
- Fixed the cursor and facets being placed out of valid bounds on GridContainer (reported by @Shifty | Quality Control Lead)
- Fixed action.json SteamVR input manifest, newly causing parsing error with the latest SteamVR 1.13 (big thanks to Joe from Valve for getting in touch and identifying the issue for us!)

New RadiantUI Dash, Seated Mode, Voice Noise Gate, Japanese language classes

Hello and welcome back to the weekly update!

This week we have a lot of amazing things to talk about, from the new Radiant UI Dash, the new seated mode or proper noise gate. A lot of progress has been made now that we’re out of testing and onto the main branch for the new UI updates and there’s a lot more to come!

We have some amazing highlights in the community as well, like Japanese language classes!



[h2]New RadiantUI Dash[/h2]
The new Neos Dash has been released, featuring a much more unified, optimized, consistent design built upon UIX (our UI framework). Within the new UI, there is a new section called the Home panel, which houses a lot of features otherwise found in other areas of the user interface, further simplifying the experience of using Neos.

You might have noticed some familiar items moved to the home screen, including the online status indicator, voice meter, voice settings, seated mode, and freeform dash mode. We’ll be discussing more about those last two down below. The current design for the dash isn’t the final design, so there will be alterations in the future. In fact, the plan for the dash is to allow users to customize their dash and home panel utilizing the Facet system.

[previewyoutube][/previewyoutube]

This is a major step in our UI/UX overhaul efforts and even though it’s far from finished, we’re already getting lots of positive feedback on the new UI being easier to use for newcomers and lowering the learning curve, while at the same time making the overall look more modern.

Having a proper framework is now also making it easier for us to address many long-standing issues and implement features that have been requested for a very long time, like the ones mentioned below.

There’s still lots to come, so check out the “What’s Next?” section for more! So far we’ve reworked some key pieces of UI into the Facet system, while the old UI like Inventory, Friends, World Browser or File Browser are simply wrapped in their present form into the new dash until they’re reworked as well.

[h2]New Seated Mode[/h2]
The long-awaited seated mode, found within the home panel in the new Dash, has finally replaced the old maintain-height mode originally found in the user settings panel. This feature is very different from the old system, in that you can now enter seated mode and bend down without your avatar moving your head back up to maintain your original height.

This will make doing things like interacting with people or working with LogiX much more easier and comfortable.

[h2]Freeform Dash Mode[/h2]
One of the things we’ve added to the new dash was also support for better positioning, including a freeform mode. This lets you position it freely above or below yourself. This opens new workflows, where you can keep it constantly open above you for quick access or making it possible to use when leaning back or lying down.

[h2]Decoupled mute from world audio options[/h2]
With the new voice control Facet present on the dash, the actual voice mode system has been partly reworked as well. The mute option is now a global toggle, while the individual modes (whisper, normal, shout and broadcast) are specific to each world you’re in.

This prevents lots of scenarios, where setting yourself to broadcast or whisper in one world would transfer to another, either making people not hear you or blasting everyone’s ears by accident.

[h2]Noise Gate for voice input[/h2]
Neos now implements a proper noise gate algorithm on the voice input, in addition to the normalization. This will completely cut off any ambient noise, breathing and other quiet sounds when the user isn’t talking.

You can adjust the noise gate threshold in Settings. The voice indicator on the dash also helps with this. You’ll see two voice meter bars. The top, bigger one shows your filtered audio - after the noise-gating and normalization. The smaller lower one shows the raw volume coming from your microphone.

Additionally, there’s a small line, which shows the current noise-gate threshold. Simply adjust this line so when you’re quiet, the raw audio volume doesn’t cross it and your filtered in-game audio stays silent. Don’t set it too high though, otherwise your voice might cut out!

[h2]A merch giveaway livestream highlights[/h2]
A week ago, we had our special 1000 follower celebration livestream with a free merch giveaway. To date this was one of our most successful streams and we had a lot of fun playing games with you in the chat.

Our video editor Theo has put together this amazing highlight video, showing the best moments of the stream in case you missed it! We hope to do more of these types of streams in the future, so stay tuned!

[previewyoutube][/previewyoutube]

The first samples of the merch have also arrived! We’re still waiting on the bandana’s to ensure their quality, after which we’ll officially announce the Neos Merch store.





[h2]Community Highlights[/h2]
[h3]SleepingKaiKai hosted a Japanese speaking course[/h3]
SleepingKaiKai and others from the japanese community hosted a classroom, teaching english speakers how to speak certain japanese phrases! The classroom environment was complete with tables, desks and notecards, and was overall an enjoyable experience for all!



You can watch the recording of the lesson by Medra here:
https://www.youtube.com/watch?v=QiB6dQgdtoo&feature=youtu.be
https://www.youtube.com/watch?v=_TyKrwA_iKw&feature=youtu.be

[h3]Avatar Texture Setup Tutorial by Orange (@mikan3134 on Twitter)[/h3]
A japanese tutorial on setting up an avatar’s textures made by a member of Neos East Japan’s team, Orange. This was a very professional tutorial, thank you for your hard work!
https://twitter.com/mikan3134/status/1238430644570447877

[h3]Bobo and Leon infiltrate Omegle![/h3]
Bobotron and LeonClement have gone on an adventure into the video chat platform Omegle! They’ve encountered plenty of interesting creatures and people, and maybe made some new friends along the way! Definitely a funny video worth a watch!

https://www.youtube.com/watch?v=9Xb-FmQkPcY

[h2]What’s Next?[/h2]
With the initial release of the dash we have finally started addressing various issues that have been held up by the lack of technical backing for a while. This now lets us implement new features and address problems more efficiently.

Our next most urgent goals is finishing the Facet and Workspace system, allowing you to customize the dash and place the Facets on your avatar as well and have those changes save to the cloud.

[previewyoutube][/previewyoutube]

Over time we’ll also be reworking more of the old UI’s piece by piece into the Facet system. The next one on the list is the world browser, which will be integrated with the session joiner. This should provide a major usability improvement, making it quick and easy for new users to find active sessions and socialize.

Another of the goals is to also implement the UIX styling system, which will enable us to develop a proper official design for the dash, while at the same time allowing anyone to create and share their own styles for any UI.

There’s a lot more exciting stuff to come in the future! If you’d like to get involved and provide suggestions, feedback and bug reports, check out our GitHub issue tracker and our official Discord.