Neos VR - Frooxius
A bunch of bugfixes! PBS materials not casting shadows should be fixed, fixed performance regression due to OVRLipSync and Steamworks integration should finally work both on Windows and Linux. Sorry there's not more, I'm feeling a bit brain dead and trying to focus on the new facets and blocking feature ^^;

New Features:
- Added GetUserAnchor and IsUserAnchored nodes (requested by @ProbablePrime)

Tweaks:
- Draggables (Joint, Slider) now send grab events to the components on the same slot
-- This fixes Sliders and such now working with GrabbableAvatarPoseFilter (reported by @H3BO3)
- Downgraded to OVRLipSync 1.43 due to performance problems with the new version (reported by @Shifty | Quality Control Lead)

Bugfixes:
- Fixed Linux builds (both client and headless) using Windows version of the Steamworks.NET wrapper
- Fixed Linux build of headless including wrong name of the native Steam API library (reported by @Enverex)
- Fixed missing shadows on most of the PBS metarials (reported by @H3BO3, @LucasRo7, @GearBell and investigated by @Shifty | Quality Control Lead )
- Wrapped async delays to properly restore synchronization context and updatable context on continuation
-- This fixes flood of exceptions from DelayImpulse node after the node has been destroyed (found in a log from @Hayden (PolyLogiX - ZyroDesign))
- Added filtering of invalid/out-of-range values coming from the tracking system, potentially corrupting the user proxy and causing the user to get respanwed
-- This can potentially fix the userspace avatar proxy being respawned as reported by @FuzzyFoxe
- The userspace proxy avatar won't get respawned anymore because of exceptions (based on issue by @FuzzyFoxe)
- Added a mechanism to notify materials of video texture change in cases where the texture is updated by the video playback engine (this is done to potentially fix an issue reported by @H3BO3 where the textures break sometimes)
- Added a guard against enormous or invalid sphere check values when releasing objects
- Added maximum size clamp for collider dimensions (1e6 currently) to prevent enormous colliders from corrupting the calculations in the physics engine and causing world crashes or random user despawns (reported by @Turk and investigated by @Shifty | Quality Control Lead)

Neos VR - Frooxius
Smaller build today, been busy designing facets and writing up the details on them, but has some small additions, tweaks and bugfixes that I don't want to keep waiting on something bigger.

It's compatible with the previous build so you don't need to update right away!

New Features:
- New context menu icons by @Coffee | Programmer:
-- Updated icons for the Grabbable Setter tip's hand menu
-- Updated icons for enabling/disabling user scaling in the hand menu
-- Updated icons for enabling/disabling lasers in the hand menu
-- Updated icons for entering and exiting avatar anchors using the AvatarAnchorTouchTrigger

Tweaks:
- Opening inspector in the screen mode will now open it for the immediate targeted object, rather than jumping to the root
- Added reference cleanup to the video playback engines, to help prevent potential memory leaks
- Added 10 second initialization timeout to the Unity Native playback engine, to automatically fall back to libVLC when it gets stuck
- Added a CDN endpoint optimized for large files
-- This fixes large (>1.8 GB) video files not being able to be streamed from the Neos cloud (reported by @H3BO3)

Bugfixes:
- Fixed incorrect scale matrix decomposition with a single inverted axis
-- This fixes certain models that use inverted scaling not importing correctly (reported by @SHFR_H)
- Tweaked the Watchdog functionality to write the watchdog file on a separate thread, to avoid potential hiccups when it's enabled (discovered by @Aegis_Wolf | Artist 3D/2D)

Neos VR - Frooxius
Hello, and welcome back to the weekly update!

This one is pretty packed! Because of community feedback and reports, we’ll be prioritizing user blocking functionality soon and we want to hear your thoughts and concerns about what form it should take.

We’re also starting to implement the facet system, with the majority of the system designed. Please join us on GitHub to discuss this as well and help us shape the most important piece of Radiant UI!

Also Creator Jam is celebrating its one year anniversary next week! In celebration of 52 weeks of collaborative creative goodness, we’ll be livestreaming the whole event, so don’t miss it! Details and time below.



Creator Jam 53 – Jammaversary
Come join us as we celebrate Creator Jam's 1 year birthday...a Jammaversary!!! We will tour the best of worlds and share the lovely creations you all have made within a year's time.



When: Sunday May 31st
Starts 7:00AM EST(UTC 11:00) and will continue for 15 hours!
to accommodate everyone around the globe

Everyone is welcome.

See you there!

Every day of that week there will be an event.
Complete schedule will be posted soon on Twitter and Discord.

We need your feedback on self moderation tools
After long discussions with the team and the community, it is time to start talking about self moderation tools. We've been getting a steady influx of new users and with the community growing, there are unfortunately personal conflicts.

We've been getting an increasing amount of user reports and requests for this kind of functionality, as well as reports of people avoiding Neos due to lack of this functionality (which didn't seem too necessary until now).

It is our philosophy to use global banning only as the absolute last resort (e.g. in cases of illegal activity or severe attacks) to avoid cutting people from their social platform or workspace and instead providing you with the functionality to help you manage your own experience better.

Because of that, we’ll be prioritizing some self moderation features, particularly user blocking and vote to mute, spectator, kick or ban another user. Before we do that however, we want to discuss this with everyone in the community.

We’re always listening to your feedback and thoughts and the best place for this kind of discussion is our official GitHub, so please join us!

User Blocking
The ability to block has been a long-requested feature and we’ve been putting a lot of thought into how this feature would be implemented. We’re making sure the way it’s implemented will be healthy in the long-term for the community.

We’ve already gotten lots of great feedback and ideas over at GitHub, but we want to make sure that more people see this, as this is something that affects the community on a personal level.

You can read more about our plans for this and join the discussion here at GitHub.

Vote to Mute/Spectator/Kick/Ban
Another common request was ability to vote kick users, particularly for sessions where the host is away and unable to moderate.

We’d like to add this feature in a more expanded way, where you can vote to mute, set to spectator, kick or ban the user, in order to give a more fine grained control to help de-escalate the situations and avoid abuse.

The system would be optional as well (although likely on by default), so it will be the choice of the host which of the vote abilities are allowed (if any) in their sessions or if the functionality is available only if they’re away.

Same as with the previous issue, there are more details on the GitHub issue and we’d love to hear what you think about this feature as well.

Need any other moderation features? Please let us know!
We want everyone’s Neos experience to be as comfortable as possible, so please let us know about any problems you’re experiencing with other users or any concerns you have. You can always talk to Veer, our chief of moderation, about any issues or reach out to other members with the moderation badge.

We take your problems seriously, even if we avoid taking immediate action against the member. As an official team we only want to step in when it's absolutely necessary (and when we have evidence to take action) and instead opt in to give you better tools to help manage your own experience.

Even in cases where we won’t be able to take action against the user, we still get valuable feedback on what kind of problems you’re dealing with and that allows us to prioritize features and solutions that will give you more power to deal with them.

Alternatively if you have an idea for a particular feature that could help and that’s currently missing in Neos, feel free to make an issue on GitHub for it as well!

Details and discussion on the Facet system
The first pieces of the Facet system are already being implemented, while the design of the overall system is being finalized. Facets, Containers and Workspaces will be the bread and butter of the new UI system, which is why we want to hear your thoughts on it as well!

In short, facets are small or big pieces of UI that serve any function, from an FPS counter to scene inspector. Facets live in containers (grids, split layouts, tabs…) and can be freely moved between them.

The new dash will be a primary container for many facets, but you’ll be able to place them on your hands, in your playspace or in your viewpoint as well.

Each layout or loadout of facets is considered a “workspace”. Workspaces can be switched on the fly, allowing you to create different loadouts for immersion, social hangout, building, streaming or any other purpose.

If you’d like to know more, we’ve written a more in-depth description over at GitHub. Any ideas, suggestions, concerns and other feedback are welcome! You’ve helped us shape and polish other pieces of the radiant UI, like the context menu, gripping system and the new lasers, so we want to start the discussion for the most major parts early on.



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

HTC Vive Lip Tracking Showcase
We’ve released another official Neos video! Now that our video editor Theofilus The Folf is back, we’ll be making more videos to show off what Neos can do. A few months back we’ve integrated the HTC Vive lip tracker (currently a dev-kit/prototype), but we haven’t shown what it can do with variety of avatars until now:



Friday Q&A livestream from the Neos News Studio
This friday we’ve gotten lots of interesting questions on our regular weekly stream! We’ve discussed a lot about the future development of Neos, including large scale worlds, scripting languages, servers and more.

If you missed the stream, you can watch it below. It even includes a quick weather report from Aegis_Wolf! ;) And as usual, if you have any questions, feel free to join our next stream, we’re on every Friday at 3PM PST!



Beginner crash course - Equippable & Snappable Items and Dynamic Bones
Based on popular demand, the theme of this Wednesday’s beginner crash course live stream were equippable and snappable items as well as dynamic bones! If you missed the stream, but still want to learn how to create items to customize your avatar, you can watch the recording here:



If you want to learn more about Neos, you can catch the stream every other wednesday on Twitch. Let us know what you’d like to learn about next!

Creator Jam one year anniversary next week!
This week, we’ve given the spotlight entirely to Medra’s Creator Jam, as we’re approaching the 1 year creator jam Jammiversary, celebrating a whole year of collective, collaborative creativity!

The creator jam has become one of the staple events of Neos, giving birth of the coolest creators on the platform and organizing it consistently for an entire year is an amazing achievement in itself!

As part of the celebration we’ll be live streaming the whole event next week, so set it in your calendars if you won’t want to miss it. Details below!

Medra and his Creator Jammers have also recently had their 50th Creator Jam, their Spring Megajam!



If you want to learn more about the Creator Jam and what was achieved, Medra has written up more information for you:

Creator Jam
Background
It didn’t take too long being inside Neos to notice a unique culture and a unique time in history. I saw that the community was positive but scattered. This fledgling metaverse needed a bedrock event that would embody the ethos of Neos. A way to build community even if someone could only be available one day a week, be a veteran user, or a newbie.

And I imagined a future Neos that had thousands of users. They would go to all sorts of events and activities, play games, socialize, and more—a digital translation of the meatspace but with more possibility. The original population of eccentrics who all knew each other, helped each other, shared ideas, and created together would be lost to a flood of those that consumed. The creators would be scattered and fragmented. I wanted to create a place that would retain that original Neos spirit.

That is Creator Jam.

About
I’ve created, hosted, and maintained an open collaborative worldbuilding event. Since June 2nd, 2019 for Creator Jam has been running every Sunday for 51 weeks straight. It is the longest running and only continuous weekly event in NeosVR. Creator Jam has used the headless client from its first release and has been an excellent stress test for Neos’ capabilities.

Creator Jam Discord formed June 2019 to allow users to be able to plan for future events and share.
Creator Jam Trailer is a professional quality trailer showing off both Neos and Creator Jam.
Twitch Stream runs live every Sunday during the Creator Jam. This will eventually be archived on Youtube.

Statistics
Like Neos, Creator Jam has grown quite a bit. Some interesting statistics and notable facts are:

Creator Jams events last 7-10 hours
I work 10-30 hours a week on Creator Jams(including the event itself). This equates to a minimum of 510 total hours dedicated to Creator Jams.
1000’s of assets have been personally searched, downloaded, and imported: shareable and free for commercial usage
700+ assets including models, sound effects, gadgets, etc are available immediately in a Creator Jam Public shareable inventory folder. Many more can be acquired by visiting inside Creator Jam worlds.
Almost all assets in Creator Jam are public domain, attribution license, and free for commercial usage.
Most participation, help, and assets in Creator Jams have been credited.
Records of attendance have been kept for almost all Creator Jams.
Over 380+ different visitors have attended total
Maximum total attendance in a single Creator Jam: 55 people (Creator Jam 51 – Comic Books)
Maximum total participation in a single Creator Jam: 22 people (Creator Jam 35 – Prop Hunt Game)
Total attendance per CJ has increased and is usually around 35-45 people

Events
Halloween Party – Party world built by Turk to celebrate Halloween and Megajam.
Winter Holiday Party – Party world built by Turk to celebrate the Winter Holidays and Megajam, which included users of the newly migrated Japanese community. Communication was aided using a translation tool created by Anomalous.

Game
Magician’s Mistake – A Medieval Prop Hunt game – Created first heavily used game in Neos. A remix of the Creator Jam 35. Original creation was a combined effort of 22 people over the course of 3 days. ProbablePrime made considerable improvements to the original.

Notable Worlds
Haunted House – The first haunted house in Neos.
Airships and Floating Islands – Airship world with usable flying ships that can move from island to island.
Avatars – A world that also contains a snappable body part avatar: Potato Bot. Anomalous and ProbablePrime contributed to the design of the Potato Bot.
Neos Asteroids – Created VR version of Asteroids in Neos.
Wild West – Created a multifaceted Wild West environment.

Notable Items
Items were created for Creator Jams. This is a select list of the most known/used items within the community. Only a fraction of the interesting things created during CJ’s are listed here:

Floating Airship – Built entirely in Neos by Anomalous.
World Cleaning Robot – Robot to clean and organize root created by Anomalous.
VCR, VHS tapes, and shelves – Youtube tutorials listed on the Neoswiki were converted to VHS tapes that can be played inside a VCR. A Youtube url to VHS creator was also made. Created by Anomalous and Sirkitree.
Sled – Usable sled created by Jiggyjosh and Coffee.
Spray Can – Spray can created by LucasRo7 and Phox. Later modified by an unknown person who added a silly string shooting feature.
CBTK(Color Blindness Toolkit) – Accessibility tool created by A Monsoon of Babies to help with visualization of color blind states. Useful for making more user friendly interfaces and worlds.

What’s Next?
Thank you all for reading this week’s Weekly Update. We hope you continue to have a fun and safe time and remember: social distancing is important in real life, but you can stand as close as you want to one another in VR!

We’re looking forward to hearing from you on the moderation tools, facets and any other things regarding development of Neos. We’ll be implementing more of the facet system over next week as well as the blocking functionality.

And a special thanks to Medra for giving us the lowdown on his awesome Creator Jam events! You guys have made so many cool maps and items, and Neos wouldn’t be the same without you!

As usual, if you have any questions, ideas or concerns, you can reach us at our official Discord, GitHub or our regular Twitch livestream.

Have a good week everyone!


Neos VR - Frooxius
Starting to add stuff for the Facet system and related changes (it has some WIP bits too that are not listed here, NO TOUCHIES!). Also some more additions and tweaks to the new laser! The laser priority has been improved, so things in front of private UI will now take priority! Also when grabbing objects with laser, pressing trigger will now straighten their axis up. More to come soon!

New Features:
- Added "NestedCanvas" component, which allows nesting canvas within another, maintaining proper render order and masking from the parent canvas
-- This doesn't handle the nested canvas positioning, that's your responsibility!
-- However it will handle forwarding any touch events within the rect
- Pressing trigger when holding an item with laser will now align the nearest axis of the held object upwards
- Added "DualColorImage" UIX graphic
-- This works nearly the same as "Image", but instead of a single tint color uses two colors, that are interpolated between based on the brightness of the input image. This lets you make UI sprites that are color-agnostic and use two arbitrary colors to easily customize the scheme
- Added "UIX Canvas" to the Create New dialog, under Object. This spawns a sample canvas with a bunch of different examples (layouts, buttons, text fields, scroll area, slider)

Tweaks:
- Reimplemented laser priority for the new Radiant UI laser system.
-- Things in worldspace that are closer will now take priority over userspace targets that are behind them (requested by @Turk and others)
-- The new mechanism however allows the userspace to control this, allowing to make high-priority targets that will always take predecence (e.g. emergency respawn button)
- Supressed laser activation/deactivation when holding objects with the laser
- Supressed touch/click events on touchables that are currently held with the laser
- Upgraded to Oculus SDK 16 (includes OVRPlugin 1.48.0, previously used 1.46.0)

Bugfixes:
- Fixed exception when Deleting World using World Orb, preventing the deletion from succeeding (reported by @ChrisWarner103 (DelVR), @Enverex through @Shifty | Quality Control Lead)
- Fixed "stolen" grabbables getting reparented under the original user hand when released
- Removed forgotten debug logging code for session asset transfers

Neos VR - Frooxius
Smallish update with some tweaks. Some improvements to our spinoff project Neos Classroom, since it will be soon used in the first real classroom! Thanks for that work, all Android versions are now updated to the latest Neos version!

New Features:
- Added Min/Max distance, Rolloff, Doppler and Priority inputs to the Play One Shot (requested by @Lewi-bean | Audio Designer)

Tweaks:
- Stripped fallback variants on all shader variants, significantly reducing overall size and memory usage (each variant essentially included its own copy of Diffuse shader)
- Added badge for identifying the representatives of the Spanish Neos community (requested by @Nexulan for @LadyMellow and others)
- Improved UI for Neos Classroom (requested by @Karel)
- Translated Neos Classroom to Czech (translated by @Karel)
- Added more diagnostic information to failed asset gather jobs
- Upgraded to Unity 2019.3.14f1 (from 2019.3.13f1)



Bugfixes:
- Fixed texture loading breaking on the Quest when downloading through the host (e.g. in Neos Classroom) from the Neos cloud (based on report by @Karel)
- Fixed AvatarAnchorTouchTrigger showing the context menu prompt for physical touches (reported by @GearBell and @DeliriousJax)

Known Issues:
- Linux version currently doesn't have functional shaders, they need to be properly recompiled (should take about a day)

Neos VR - Frooxius
A few more tweaks and small additions and bugfixes! Working on the facets now, so build is smaller! ^^;

New Features:
- Added ability for locomotion modules to set the context menu background color, in addition to the icon
-- Simply change the "Color" property to set your own color!

Tweaks:
- Updated the laser cursor icons visuals for better visibility (done by @Coffee | Programmer)
- Tweaked the locomotion mode icons and item colors (done by @Coffee | Programmer)
- Tweaked the texture variant alternatives for BCnm (DXTnm), excluding BC3 versions as potential alternatives
-- This fixes edge case where normal maps with transparency in the alpha channel look wrong due to normal map encoding (reported by @Aegis_Wolf | Artist 3D/2D, @Rue Shejn | Artist 3D, @Shifty | Quality Control Lead)
- Added "Reset Laser Settings" button to the settings dialog (requested by @Reiko9)

Bugfixes:
- Fixed email verification not working correctly (reported by @Nexulan, @Shifty | Quality Control Lead, @Rue Shejn | Artist 3D and other users)
- Fixed DetailNormalMap on PBS and PBS Slice not being marked as normal map, showing up as the un-decoded red version (reported by @ohzee)
- Skipped Azure Kinect SDK initialization on Windows versions older than Windows 10, preventing startup crash on Windows 7 and 8.x (reported by @Drayce the Dragon)

Neos VR - Frooxius
Sorry for no builds in last few days, I was taking a bit of a break as I was going crazy from the UI update. I'm designing the facet system now, first pieces should start coming soon. In the meanwhile here's a whole bunch of goodies from the backlog!

There's new way to enable/disable lasers, will change it into a facet later and tweak, hopefully it helps a bit in the meanwhile. A whole bunch of tweaks and fixes for avatar anchors, the new normal map compression, laser and other stuff.

Also this build introduces experimental support for Azure Kinect full body tracking (it tracks everything, feet, knees, hips, chest, elbows, so it's like having 8 tracker setup currently)! Note that viability of this isn't proven yet, so don't go buying the device yet! It's very heavy on the GPU and you might need two for stable tracking, we'll see more.

New Features:
- Extended Neos' general tracking input system to support multiple tracking spaces that can be aligned to the "root" VR tracking space

- Added experimental native support for Azure Kinect full body tracking (requested by @Reactant)
-- IMPORTANT: This is not fully tested for viability for realtime VR tracking yet. It requires significant GPU processing power (requiring a second GPU to run smoothly) and has potential high latency issues.
-- You can configure the Depth Mode, Tracking FPS, Temporal Smoothing and GPU used for calculations using the AzureKinectConfig.json file next to Neos.exe
- Reworked Neos initialization routine to run asynchronously on a separate thread
-- This allows for rendering frames during the initialization phase and providing info about the current stage
-- This also helps in cases of the database needing repair and causing long startup, making users shut down Neos before the repair is finished (previously reported by @SHFR_H)

- Added Laser Enabled/Disabled option to the context menu to allow temporarily disabling the laser (unless context menu or private UI is intereacted with) (based on feedback by @DeliriousJax, @ProbablePrime, @Shifty | Quality Control Lead, @Hayden (PolyLogiX - ZyroDesign), @GearBell and others)
-- I'm putting this option here temporarily. This should help with some usecases, later will be moved to a facet
-- I'm also thinking of other mechanisms to cover other scenarios (e.g. forcing the lasers off for a certain user)
-- Also currently it's independent for each hand, let me know if this is good or not, I can make it shared for both hands

- Added new default Locomotion Module icons (created by @Coffee | Programmer)
- Added "Solid Color Texture" procedural texture
- Added "PreserveUpOnExit" to AvatarAnchor, which will align the user with the upwards axis when they exit the avatar anchor (requested by @H3BO3)

Tweaks:
- AvatarAnchorTouchTrigger will now use the context menu to confirm enter/exit when clicked (similarly to avatars), to give users better feedback and prevent accidental entering
- Compressed normal maps will now show in their decoded form in the inspector and when pulled out from the inspector, rather than in their red-looking raw form
-- Note that this is just material configuration, the underlying texture is still red-looking and will show as such in certain places. This is normal. (pun intended again). However if some material inspectors don't show it correctly, let me know.
- Tweaked fog volume material default render queue (2540) to fix most cases of the fog rendering through certain materials (Unlit, Reflection and so on)
- Added "UseUserSpaceForDistance" property to TipTouchSource. This will make the distance units be relative to the user's space, rather than the slot the TipTouch source is on
-- This is set on by default, fixing unreliable physical touch on variety of avatars (reported by @Lewi-bean | Audio Designer, sample avatar provided by @Shifty | Quality Control Lead )
- Added cleanup to asset provider reference tracking on disposal, fixing another potential source of memory leaks
- Added "OnReset" impulse passthrough to ElapsedTime node (requested by @H3BO3)
- Renamed "PreserveUp" on AvatarAnchor to "PreserveUpOnEnter" (existing instances are auto-upgraded)
- Recategorized TextEditor components under Common UI/Editors
- Clicking email verification link will now show that the email has been verified rather than "Invalid Verification Token" if the account has already been verified (to avoid confusion due to multiple clicks) (based on recent issue by @Shammy and several other users in the past)
- Lost Password request will now show an error message when an incorrect email is typed

Bugfixes:
- Fixed missing transparent variants of the PBS Slice shaders (reported by @Shifty | Quality Control Lead)
- Fixed "You don't have permission to equip this." not appearing when trying to equip a tooltip from the item shelf (reported by @Turk)
- Fixed Constant Slerp being incorrectly overloaded as Constant Lerp
- Fixed Constant Slerp not working correctly and getting stuck (reported by @H3BO3)
- ValueCopy<T> with WriteBack enabled will now immediatelly update the driven field when it's changed, avoiding the modifying source reading back the old value immediatelly after it's modified
-- This fixes odd cursor behavior with TextEditor in combination with ValueCopy (reported by @Anomalous) and potentially other similar odd behaviors
- Fixed user scaling themselves when grip-equipping a tool while gripping with the other hand (based on report by @Turk)
- Fixed the new physical touch system not providing haptic feedback (reported by @H3BO3)
- Fixed incorrect scaled normal decoding on PBS Color Splat materials (reported by @Enverex)

Neos VR - Frooxius
A few more bugfixes because I can't sleep. I've tried updating Assimp library from the source as well (about 500 new commits since the build we're using), but unfortunatelly animation import on FBX files is currently severely broken, so it will have to wait.

Compatible with last build.

Bugfixes:
- Fixed normal maps not working with PBS Color Splat (reported by @Enverex)
- Fixed user getting respawned when sliding a non-parented grabbable object with laser towards the hand (reported by @Coffee | Programmer, @GearBell, @Christioni and @Shifty | Quality Control Lead)
-- This also fixes the userspace avatar proxy becoming corrupted, breaking private UI interactions
- Fixed common root search returning parent object when the other object matches the first one, rather than returning the first
-- This fixes avatar creator breaking and deleting users when the user and avatar creator is in a non-root slot (reported by @Shifty | Quality Control Lead, @Enverex, @Purple Juice, @Max The Hybrid, @Lewi-bean | Audio Designer and others)

Neos VR - Frooxius
A few more bugfixes for the laser and some other things (like "the mop"). Compatible with last build.

Bugfixes:
- Fixed laser getting corrupted with certain settings, causing the user to be continually respawned (reported by unknown in-game through @Shifty | Quality Control Lead)
- Fixed the interaction laser breaking and causing the user to respawn when running context menu actions on some held items in cases where the interaction target component is destroyed but the object is not (reported by @Rue Shejn | Artist 3D and @Aegis_Wolf | Artist 3D/2D)
- Added sanitization for TRS matrices coming to Neos from the model importer, to prevent odd behaviors where bounding box and actual object visual would mismatch (reported by @ProbablePrime on behalf of @SHFR_H)
- Made TRS matrix decomposition more robust for rotations
-- This fixes some rare cases where some parts of imported 3D models import with a wrong rotation (e.g. the mop 3D model reported by @ProbablePrime on behalf of @SHFR_H)

Neos VR - Frooxius
Some more tweaking and polish for the new laser system and its interactions with to oltips, avatars and such. Fixed and added a few other things as well.

New Features:
- Reimplemented ability to swap any tools on the item shelf, even if the tool doesn't use laser (the laser will automatically come on when pointed at the item shelf with a tool)
-- This fixes not being able to place brushes on the item shelf (reported by Anomalous#0699)
- Added a system for laser interaction target overriding color and to provide interaction target priorities, allowing interaction targets higher in the hierarchy to take precedence
-- This is used for item shelf to always take precedence and to color the laser blue similarly to the old system
- Added "First Person Offset" to camera positioning setting, which allows adjusting forward/backward offset of the camera in smooth POV mode (requested by @ProbablePrime)
- Added "Shadow Map Resolution" property to Light, which allows changing the resolution of the shadowmaps (setting this to 0 will use default resolution) (requested by @Jolzu Groxxy Zyar the Avali)

Tweaks:
- Equipping in-world avatar is now done through the context menu to prevent accidental equips on click (the context menu is opened by clicking on the avatar as before) (based on feedback by @Nexulan)
- Added automatic user respawn when some crucial components (like CommonTool) become corrupted

Bugfixes:
- Added filtering for the new laser sometimes hitting the tooltip that it's shooting from, making the tooltips interact with themselves
- Made locomotion selection option appear in the context menu when there's currently no active locomotion module, but the user has ability to choose one (based on report by @ProbablePrime)
- Fixed model importer generating capsule colliders for rigged meshes even when the "Generate Colliders" option is disabled (reported by @H3BO3)
- Fixed broken circle segment shader (used for voice switcher and importer visual) (reported by @GalexY and @H3BO3)
- Fixed audio buffer leaking data from other sources with video playback, causing odd behavior in some components like VolumeMeter (reported by @LeonClement)

...