1. Neos VR
  2. News

Neos VR News

2020.6.19.941 - Random session crash fix, more low level optimizations

Pushing an extra hotfix based on some crash reports due to the optimizations/changes in the last build. Hopefully this fixes the issues, let us know if you're still experiencing problems!

[h2]Optimizations:[/h2]
- Added more memory pooling to the sync message validation, reducing GC churn and related increased memory and CPU usage for the host
- Optimized low level ReferenceID operations

[h2]Bugfixes:[/h2]
- Fixed released drives from the local part of data model being encoded for syncing, causing the session to crash (based on reports by @art0007i, @Zane, @AdmiralSoap through @Shifty | Quality Control Lead)
- Fixed sorting issue for SessionOrbsController

2020.6.18.1194 - Kick/Ban security exploit fix, CPU/memory optimizations

Pushing a high priority update to fix a security exploit that lets users kick/ban without proper permission. I've pulled in a bunch of other things from the WIP Radiant Dash build as well as a bonus (the new dash is not ready for release yet), including some memory/CPU optimizations and possibly fix for the ocassional random particle effect freeze!

[h2]Security:[/h2]
- Fixed incorrect kick/ban request validation logic, which can let users kick/ban others without having the sufficient permission to do so (reported by @I wont shut up about reflections, logs provided by @drecalen and @bbblacketer)
- Added extra diagnostic information for kicking/banning for future issues
- Some more small cloud security additions

[h2]Optimizations:[/h2]
- Heavily reduced memory and CPU usage for managing sync elements by deduplicating their lookup tables
- Added memory pooling to sync message validation, heavily reducing memory allocations (and associated CPU usage) for the host
- Added reference cleanup on Dispose to the reference controller, to aid the GC and help prevent potential memory leaks
- Upgraded to Unity 2019.4.1f1 (from 2019.4.0f1)

[h2]Bugfixes:[/h2]
- Fixed particles in userspace not emitting at the correct position
- Fixed occasional excessive allocations and calculations during particle system emissions

2020.6.16.1053 - More RadiantUI, UIX sorting bugfixes, other fixes and tweaks

More progress on the new RadiantUI dash, Facets and Containers! I've also discovered a few UIX bugs during this development that caused incorrect sorting (things rendering behind when they should be in front in various cases), which required parts of UIX to be redesigned a bit, but they should be good now! Let me know if there's any new unexpected UIX breakage.

Some new UIX features that came along with the RadiantUI work too, like TiledRawImage (perfect for UI grids and such). Also a bunch of other bugfixes and tweaks that were done on the side.

[h2]New Features:[/h2]
- Added Padding support to Grid Container (and to facet containers in general)
- Added grid placement visuals to the GridContainer for facets
- Added TiledRawImage under UIX/Graphics, which renders a texture tiled based on the size of the UI rect elements with tile size and an offset (can be used to make a grid for example)

[h2]Tweaks:[/h2]
- Tweaked custom sizing mechanism for facet containers to be more intuitive
- Added world name to the "Role not available" message on headless (requested by @aat#1337)
- Dimmed the GridSpace world preset's skybox (based on feedback from ProbablePrime#4895, implemented by @Coffee | Programmer)

[h2]Bugfixes:[/h2]
- Redesigned part of graphic chunk hierarchy mechanism to properly split graphics that follow a nested graphic chunk into a separate rendererer, so they can be sorted properly to render over the visuals of the nested chunks
-- This fixes graphics that should render on top of some nested graphic within a graphic chunk actually rendering below it (e.g. having an overlay overlapping on top of a scroll area or rendering visuals over nested canvases)
- Fixed incorrect graphic sorting on UIX canvas with overlapping graphic elements under the same parent
-- This fixes some graphic elements that are earlier in the hierarchy rendering on top of elements later in the hierarchy when the element later uses submesh that has already been used earlier
-- Certain elements that naturally cause overlaps, like the OutlinedArc are excluded from this precise sorting for better performance
- Fixed invalid calculations of the Maximum Traction/Support slope threshold values, causing certain angles to throw an exception (reported by @H3BO3)
- Tweaked logic for determining which item can be placed on the toolshelf to exclude non-persistent parts (like the hand proxy visual)
-- This should fix tools not being placeable on the item shelves in the edit mode (reported by @ProbablePrime and investigated by @Coffee | Programmer)
- Made VirtualKey, VirtualShift and VirtualModifierKey components clear the "ClearFocusOnPress" field of the Button component on startup if present
-- This fixes custom UIX based keyboards hiding themselves when typing into private UI (reported by @SmolCookie, @Lewi-bean | Audio Designer)

1000 followers on Twitch, first Neos textbook in English, progress on Radiant UI

Welcome to this week’s update on the latest in the NeosVR realm!

We’ve got lots of exciting news this week! We have broken the record of 100 concurrent users for the first time! Not only that, but we also reached our 1000 follower goal on Twitch! It has been a fun ride so far and we’re grateful to everyone watching, asking questions on our stream or just having fun!

The first Neos textbook, originally written in Czech, has also been translated into English! It still needs lots of proofreading and tweaks, if you’re interested in helping out, read more below and let us know.

RadiantUI is also progressing quite well, with the work now being very visual. The core of the new dash is nearly complete and will be swapped out soon, details below!

As part of the work we’ve also added some new shaders, including a brand new PBS Distance Lerp, which lets you create a variety of visual effects that are reactive to distances to points in the world.



[h2]Over 100 concurrent users for the first time![/h2]
We had a visit by Roflgator, a well known Twitch streamer, and he helped us reach over 100 concurrent users online for the first time! Thank you Roflgator! Thanks to your viewers, we were able to meet that milestone, and we’ve gained a lot of new Patrons to boot. We're overwhelmed with your support for this project and we look forward to your streams in the future!

[h2]We reached 1000 followers on Twitch, thank you everyone![/h2]
Our official Twitch channel has been slowly growing over time, but recently we managed to jump quite quickly and reach over 1000 followers! We’re grateful for everyone’s support on Twitch, it’s been a really fun ride so far and a great way to show everyone what Neos can do, talk about what’s been added or what’s being worked on and answer everyone’s questions.

In celebration, we’ll be holding a special celebration livestream within the next few weeks! We’ll have some fun things to announce, so keep an eye out, more information coming soon. In the meanwhile, you can watch this Friday’s thank you stream here:

[previewyoutube][/previewyoutube]

[h2]The first Neos textbook in English - looking for proofreaders![/h2]
Several months ago, the very first NeosVR textbook was published in the Czech Republic, written by doc. Ing. Mgr. Petr Klán, CSc, one of the university teachers using Neos VR as part of their educational courses.

Recently he has finished the initial translation of the book to English, which will make it available to a much wider audience. However before it’s released to the public it needs a final layer of polish.

Note: These previews are initial translations, the text is not final


If you’d like to contribute, this is your chance! The book is about 100 pages long and covers the basics of virtual reality and Neos, covering everything from avatars, basic tools, gizmos to LogiX. It is written in LateX, so you will need a basic familiarity with it, as well as some familiarity with GitHub and pull requests.

We’d like to include the names of the contributors in the book itself (with the biggest contributor(s) appearing on the cover) and make the prints available to our users as a gift. The PDF version will be released for free for everyone.

If you’re interested in helping out, reach out to a team member (ideally Frooxius) and you will be given access to a private GitHub repository.

The print of the original Czech version

[h2]New PBS Distance Lerp shader for fancy reactive effects[/h2]
This week we’ve added a few new shaders and features to existing shaders to support the new Radiant UI. As a bonus, we’ve also thrown in a brand new shader that was planned for a while: PBS Distance Lerp.

This is a special version of the physically based shader which is reactive to proximity to points in space. It will displace the mesh and control emission based on the distance to each point, with support for up to 16 independent points, each with its own emission color.

All the distances and ranges are individually controllable and the displacement direction can be overridden too. This allows for creation of a wide variety of reactive visual effects that are very efficient to render thanks to the whole operation being GPU accelerated.

We can’t wait to see what you’ll make with this new shader! You can watch some quick showcase of its capabilities from our last livestream here:

[previewyoutube][/previewyoutube]

[h2]Progress on RadiantUI - new dash is shaping up![/h2]



All the pieces of the last major parts of RadiantUI are finally coming together, in the form of the brand new dash. It’s not only designed to be significantly more functional and flexible than the old one, but also to have a more modern and polished look, featuring curved screen and sleek animations.

[previewyoutube][/previewyoutube]

The new dash is based on UIX and as such inherits all of its flexibility. It can house arbitrary UI’s, containerized into “screens” that can be switched between. Typically most screens will be Facet containers, allowing you to add, modify or remove any UI pieces as you prefer.

You can see the new dash in action in the devlog videos below. Please note that it’s still work in progress and things will change before the release, but it’s getting close. For what’s about to come, see the What’s Next section.

[previewyoutube][/previewyoutube]

[h2]Community Highlights[/h2]
This week's highlights are focused on two new worlds released by Bobotron!

[h3]Metamovie Update[/h3]

Jason Moore, the leader of the awesome MetaMovie project has released another video update, showing off the latest areas built for the project in Neos. Check it out below:

[previewyoutube][/previewyoutube]

[h3]Friday Night Vibes[/h3]
With movie watching in mind, this world resembles a small but fancy movie theatre world, with a popcorn maker and soda to boot! The theatre itself offers a range of seating, from lounge chairs, various kinds of couches and hot tubs as well for the ultimate movie watching experience!





[h3]Rubix Cube[/h3]
This environment is great for streaming, as shown in our most recent Friday Night stream where we celebrated our 1000 followers for watching us! It features a couple different seating areas, a dance floor and a ton of music to listen to, so come give this place a visit or see it first in our archived stream on Twitch!



[h2]What’s Next?[/h2]
There’s still lots of work to be done on the RadiantUI, but the core functionality of the new dash is nearly ready. We’ll be wrapping the existing UI into it next week and making some modifications so we can swap to this new dash in the official builds.

After this swap, we’ll start reworking and redesigning the old pieces of UI into Facets, gradually replacing them one by one. This way the change to a new UI will continue to be a more gradual process, allowing us to gather feedback as we go and correct the course before we stray too far.

There are exciting times ahead, with the overall development of RadiantUI reaching its final stretch, particularly one with the most visual changes!

And as usual, thanks everyone for your continuing support. We couldn't be doing this without you and we're excited to bring you more updates as we go!

2020.6.14.978 - More progress on RadiantUI, small additions, tweaks and fixes

Pushing out some additions, tweaks and bugfixes so they're not waiting on other things. Main focus is on the new RadiantUI, the new dash is now even more complete! I'm getting ready for making the swap to it soon, wrapping the existing UI (with few modifications) into it and then continuing to rework the system to facets.

[h2]New Features:[/h2]
- Added UVOffset and UVScale properties to MeshUVRaycastPortal, which allows adjusting the UV to match the texture offset/scale on the material
- Added ClipRect to UV Rect material, which allows clipping any visual outside of the given rect

[h2]Work in progress features on RadiantUI:[/h2]
- Added open/close support & animation to the new dash
- Visual tweakd and additions (like borders) to the new Dash
- Added header Facet container to the new dash
- Other general progress on implementation of the new dash and underlying systems

[h2]Tweaks:[/h2]
- Some small performance optimizations for components fetching their initialization info
- Upgraded to Unity 2019.4.0f1 (form 2019.3.15f1)

[h2]Security:[/h2]
- Fixed settings being able to be synced from the worlds (reported by @sleepingkaikai through @Shifty | Quality Control Lead)
- Some more cloud security improvements

[h2]Bugfixes:[/h2]
- Fixed all friend links on users not being clickable (reported by @LakeSheep, @sleepingkaikai, @jeana, @GalexY, @Coffee | Programmer and @Shifty | Quality Control Lead)
- Fixed CurvedPlaneMesh freaking out when the Curvature parameter reaches very low values near 0 (reported by @Coffee | Programmer)
- Fixed invalid Crop rect on TextureThumbnailSource from preventing the object to be saved (reported by @A Monsoon of Babies)