1. Neos VR
  2. News

Neos VR News

2020.6.5.201 - Fixed dynamic bones breaking, improved usability of private UI...

Mostly busy implementing Facets, Containers and Workspaces now, but pushing out a few tweaks and bugfixes so they don't wait! Dynamic bones should no longer break and clicking private UI should be easy again!

[h2]Tweaks:[/h2]
- Extended the world-space laser tool/laser priority mechanism so each tool provides its own information whether it's currently in use or not
-- This should make private UI much easier to use, as gently holding trigger will no longer prevent the world laser from taking priority over private one, while at the same time letting currently active tools to take priority when needed (e.g. brushes or LogiX tip not getting interrupted by the private UI) (based on feedback by @ProbablePrime, @Shifty | Quality Control Lead, @SHFR_H, @Earthmark and others)
- Added one more delete confirmation step when deleting worlds, with the button in a different location and capital letters to prevent accidental deletions (based on feedback by @PeterTheThinker and @Neosmotic)
- Made Tween components non-persistent by default (based on feedback by @Ardes)

[h2]Bugfixes:[/h2]
- Fixed avatar manager attempting to equip default avatar pieces on users that have left or been destroyed in the meanwhile, causing those avatar pieces to remain in the world (found in log from @H3BO3)
- Fixed Dynamic Bones breaking randomly when some parts of user avatar proxy are missing (@CanadianGit, @Kal, @Cyro, @Ryuvi, @Shifty | Quality Control Lead and others)
- Fixed PositionAtUser breaking when Feet or GroundProjectedHead is selected as position/rotation source
- Fixed other user's Item Shelves forcing the laser to activate (reported by @Dante)
- Fixed LNL protocol silently closing all connections due to listener socket reporting a busy error when trying to read received data (reported by @Cyro)
-- This only seems to effect some Linux systems, possibly ones with really small buffers or some strange socket contention issues, let me know if this helps or not, as it might be just masking some other underlying issue

2020.6.3.391 - Support for running multiple instances of Neos, many bugfixes

Support for running multiple graphical instances of Neos on one machine and overriding database/cache locations via commandline argument (they're related, each instance needs its own unique database folder)!

A bunch of bugfixes for lasers/gripping, UIX interactions and more stuff as well!

Also more pieces for Facets/Containers/Workspaces in this build, mostly internal now (the UIX interaction mechanism now has a filtering system, with ability to pass the filters to nested canvases!).

[h2]New Features:[/h2]
- Added support for running multiple instances of Neos on the same machine (requested by @ontodistro and @cashmoney#9801)
-- Each instance needs its own unique data path as Neos now implements its own single-instance database locking mechanism
- Added support for changing the data and cache path when launching Neos (requested by @ontodistro and @cashmoney#9801)
-- To change the data path, provide the -DataPath argument. This determines where local user profile and database are located
-- To change the cache path, provide the -CachePath argument (this one is optional when running multiple instances, cache folder can be shared and left default)

[h2]Tweaks:[/h2]
- "Blinking" blendshape name is now recognized by the avatar creator and will be setup automatically for eye blinking/closing (based on avatar imported by @Veer | Chief of Moderation)

[h2]Bugfixes:[/h2]
- Fixed BlockRemoteEquip not working correctly (reported by @Lewi-bean | Audio Designer)
- Fixed World update cycle sometimes still running a single cycle after the world was disposed
- Added extra debugging information to socket errors (based on reports by @Cyro)
- Tweaked mechanism to prevent null parents, to prevent situations where a slot has no parent at all (based on report by @0utsider - Programmer and @jeana)
- Fixed tooltips that were equipped through the "Equip" context menu option being saved to the inventory when the green plus is clicked (reported by @Shifty | Quality Control Lead)
- Fixed touch (press) events incorrectly transferring to UIX elements when UI is moved or changed, causing buttons to be pressed when the trigger is just held continually (reported by @H3BO3 through @Shifty | Quality Control Lead)
- Fixed laser held item rotation breaking for other users in worlds hosted by headless server (reported by @Beaned, @Gourry through @Shifty | Quality Control Lead)
- Fixed tool actions getting interrupted when trigger is pressed and they hover over private UI (e.g. LogiX tip or brushes) (reported by @Shiltin, @H3BO3 and @Shifty | Quality Control Lead)
- Fixed tools not properly finishing their actions when they're interrupted by trigger-block mechanism (e.g. LogiX tip getting a wire stuck at its output)

2020.6.2.95 - Laser item rotation additions, new grid space, many tweaks fixes

More pre-requisite building pieces for the Facets, Containers and Workspaces in this build, such us hidden layer, nested canvas extension and canvas interaction system rework (should behave the same, but opens new possibilities under the hood, watch out for any new interaction quirks/bugs). Also a bunch of other additions, tweaks and bugfixes!

The wrist-twist held item rotation returns, now as proper feature! You can also now easily switch to unconstrained rotation mode. Nullable types are easier to instantiate now. The GridSpace template has been completely redesigned by @Coffee | Programmer to look better and more modern. A bunch of LogiX nodes were added as well.

[h2]New Features:[/h2]
- Added "Hidden Layer" component under Rendering, which will hide any renderers under its hiearchy, unless they're part of selective render list on a camera
- Added "Get Active Locomotion Module" LogiX node, which returns the currently active locomotion module on given user (requested by @Hayden (PolyLogiX - ZyroDesign))
- Added support for nullable types when instantiating generic components using type aliases (based on feedback by @Dante)
-- This lets you type types like "float?" or "float3?" or "int?" and will also display those types as such in the inspector and other places
- Redesigned the UIX interaction mechanism, so elements can freely pass interaction and then later accept it, without having to be refocused (this provides significantly higher flexibility for implementing context-specific interactions)
- Extended the NestedCanvas system, so events that are not processed by the nested canvas will now propagate upwards in the hiearchy in the parent canvas (this makes it behave more closesly as if it was just another part of the same canvas)
- Added ability to switch laser grabbing to unconstrained rotation by double pressing the trigger (double pressing again switches it back)
- Implemented wrist twist rotation rotating objects held by the laser (requested by @Turk, @sirkitree, @Shifty | Quality Control Lead and others)
- Reworked the "Gridspace" world template (implemented by @Coffee | Programmer)

[h2]Tweaks:[/h2]
- Added reference cleanup to UserRoot on destroy/dispose, to aid the GC and avoid potential memory leaks
- Added "Ignore Touches From Behind" to UIX canvases (default on), which will filter any interactions from behind of the canvas
-- This fixes inspectors and other UI's being interactable from the back of the panel (reported by @PeterTheThinker through @Shifty | Quality Control Lead)
- Tweaked interaction laser priority mechanics, so context menu opened by world interactions (e.g. click to equip avatar or enter world anchor) is preferred hit
-- This fixes scenarios where user can't click to enter the avatar anchor due to the laser being blocked by a collider
- Tweaked the bone binding sorting, trimming and normalizing behavior to avoid rejecting bone bindings that have a single binding with a really low weight
-- This fixes stray "spike" vertices on some rigged models (e.g. example provided by @Runi)
- Play One Shot will now be cleaned up by the user who fired it, fixing scenarios where the the sounds don't clean up when the host isn't present (reported by @Rue Shejn | Artist 3D)
- FriendLink component now also works with button components (UIX, physical button...), rather than being just standalone clickable element (requested by @Vigilabo)
- Changed Full Body Calibrator and Avatar Creator icons (based on feedback from @Shifty | Quality Control Lead and @0utsider - Programmer. Implemented by @Coffee | Programmer)
- Upgraded to Unity 2019.3.15f1 (from 2019.3.14f1)
- Changed the default world save copy permission to "Only Onwers" from "Only When Public" (suggested by @ProbablePrime)
-- This improves savety, as by default any published worlds can only be saved if the creator explicitly choses to
-- Existing instances of worlds are not affected by this change, only new ones. If you don't want people to be able to save copies of your published worlds, please change this setting

[h2]Bugfixes:[/h2]
- Added infinite recursion guard to TooltipMultiplexer to avoid crashes when the tooltip multiplexer references iteself (based on report by @Kal and @Tatsu Kimiero)
- Fixed crash due to infinite recursion with nested canvases when a canvas is nested into itself (reported by @Ardes)
- Fixed cleared out Tweens still updating the value for 1 frame when they're destroyed, causing random value jumps in some cases
- Fixed laser-held item rotation not being properly aligned with the upwards axis when the user is rotated
- Fixed type name "beautification" not handling nested types under generic types properly, throwing an exception
-- This fixes the user getting respawned when pulling inspector for such types (e.g. UserValueOverride items, reported by @Ardes)

Celebrating Creator Jam 1 year anniversary, more feedback on user blocking

Hello and welcome back to the Weekly Update!

This week, the Creator Jammiversary has kicked off! The celebration is going on for the whole week, so there’s still plenty of time to join and have fun, see the program below!

We’ve received a lot of feedback on our GitHub on both the Facet system, which has been progressing nicely and on the planned blocking/votekick system. Please see the details below, as there are still important things to decide and discuss.

On our Friday livestream we’ve also gone over the community creations from May. There’s more and more amazing stuff being created every month, so definitely check it out if you missed it. We show a bunch of cool worlds and a Cross Universe game that’s being made by our Japanese community.



[h2]Creator Jam Jammiversary in progress![/h2]
Today the 1 year anniversary celebration for the Creator Jam has officially kicked off! If you missed the initial live stream and celebration, there’s still plenty of time to jump in and hop through some of the best creations from the weekly community event.

The celebrations are continuing through the entire week of June 1st to June 6th, with the following program from Medra:

Monday - Improv 4:00EST(UTC 20:00)
Tuesday - Telephone Game/Build Challenge 4:00EST(UTC 20:00)
Wednesday - Avatar Fashion Show/Beauty Pageant 4:00EST(UTC 20:00)
Thursday - Gadget/Logix Snippet Drop Off 3:00EST(UTC 19:00)
Friday - Dance Party 6:00EST(UTC 22:00)
Saturday - Scavenger Hunt 3:00EST(UTC 19:00)

[h3]Improv[/h3]
Come out to perform or watch Improvisational Theatre. Improv games will be played on stage.
Performance is encouraged but not required.

[h3]Telephone Game/Build Challenge[/h3]
Groups play the telephone game with worldbuilding. Optionally a individual or team based build competition might be chosen instead of the telephone game depending on who votes for what.

[h3]Avatar Fashion Show/Beauty Pageant[/h3]
Show off your avatar! People will strut on the runway letting others see all the work you've put into that avatar.
Performance is encouraged but not required. Please message Medra beforehand if you wish to participate.
Check out Creator Jam 42 to see examples of the telephone game.

[h3]Gadget/Logix Snippet Drop Off[/h3]
In a relaxed environment stop by and drop off gadgets you've created and especially logix code snippets. We'll keep them all together for others to enjoy. (with credit to author of course)

[h3]Dance Party[/h3]
Wiggle that bod!

[h3]Scavenger Hunt[/h3]
Work individually or in teams to complete a list of tasks to video or photograph and items to grab. Scavenger hunt list will be distributed at near the beginning of the event. Late arrivals can still participate. 30 Minutes before the end of the scavenger hunt everyone will meet back in the world for a show and tell session. Winners will be determined then.

Prop Hunt Everyday (Server will be up all Day and Night)

[h2]Feedback on the user blocking functionality[/h2]
We’ve gotten lots of great feedback on the user blocking functionality on GitHub, thank you everyone for chiming in! This is a really important feature for the future of Neos and having a community involved in its design is crucial.

The major concern is that features like this can be misused by many users and create a negative culture, where users get blocked permanently over trivial matters. At the same time it is important that the ability to block somebody shouldn’t be taken away, as it can be necessary to deal with some genuinely distressing situations.

The best compromise for this kind of situation would be a system, where the one-click block is temporary (e.g. 24 hours). This way when dealing with annoyances, the user isn’t blocked forever.

To actually apply a longer or permanent block, you’d have to expand the block options and add a little personal note (a private one, not shared anywhere, could be even random text) in order to apply the block. This way the permanent block is a bit more effort than the temporary one, but also nothing that would take more than a minute.

We believe that this setup would help nudge people towards using the permanent block in situations where they’re really serious about it and using the quick temporary one to deal with annoyances.

However this presents one problem - having this kind of UI for blocking isn’t implementable with the current UI, so in order to implement it this way, we’d have to wait for the new UI to be replaced, which will likely take a few more weeks.

This way, we have two main options:
  1. Implement the permanent block now as a single button with the existing UI. Later replace it with the system proposed above once the new UI is in.
  2. Delay the blocking functionality until the new UI is in and use other moderation tools to deal with the situations.

Which option would you prefer? Do you feel that the blocking functionality is urgent enough to warrant it being added now or do you think it’s sufficient to wait? Let us know your thoughts on GitHub or if you’d prefer to give your feedback anonymously, you can contact team members on Discord (preferably Veer, our chief of moderation).

There are some other points raised as well. We recommend reading the GitHub for details, but one important one is that the ability to block users can also be disabled by a host of the world. This will prevent game worlds breaking and will allow to also host “block-free” social zones. The fact that blocking is disabled in a particular world would be displayed of course, so users are aware before they join.

[h2]Progress on the Facet system[/h2]
After gathering a lot of interesting feedback on GitHub, the development is continuing on the Facet system. Currently the focus is on designing the more technical parts of the system, so there’s not much interesting to show yet, but some important changes and additions were made to UIX and its underlying systems.

Particular support for nested canvases was added, which allows nesting one canvas into another, with proper masking and forwarding of inputs. This way a facet can be properly contained within the canvas of the container, with the inputs automatically forwarded.

The interaction mechanism for UIX was also redesigned to allow for new kinds of interactions, such as placing a Facet into a container, bypassing any interaction elements that cannot process the currently held item. A support for a hidden layer, allowing certain objects to be only explicitly rendered by a camera has been added as well. As more of the underlying systems are built, the changes will become more visual.

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

[h2]Various improvements, additions and bugfixes[/h2]
As usual, Neos keeps getting steady updates that provide small additions, tweaks and bugfixes, many of them based on the community feedback and bug reports.

One notable fix in the past week has been for the new laser system on Oculus devices. We have found out that when interacting with private UI, the laser is extremely jittery, but only when using Oculus headsets. Some community members assumed this was intended behavior, so the issue wasn’t reported sooner, but now should be fixed!

If you’re using an Oculus headset and you’ve previously disliked the new lasers because of this, we recommend resetting the settings and testing them out again now, to see if they feel any better.

There were many other changes as well, such as a new method to equip tools through the context menu simply by clicking on them, new dash icons and many more bugfixes.

[h2]Working on a new Streamer House[/h2]
We’re also working on a brand new streamer house! Aegis_Wolf is currently designing a new building that will serve as our main environment for our livestreams, but will be freely usable by anyone.

The work is still very much in progress, but you can see some renders here to get an early look at what it looks like so far:



[h2]Community Highlights[/h2]

[h3]Monthly Community Showcase[/h3]
This month, Nexulan has shown off all of the wonderful creations and worlds that our community has graced us with throughout the month of May. We do these every last Friday of every month on our Twitch channel, so come catch us for the next June showcase, or re-watch the stream below.

[previewyoutube][/previewyoutube]

[h3]Education & Science group on Discord[/h3]
A group of educators using Neos have started holding regular meetings to discuss how Neos and other platforms can be used for learning and science, particularly during the COVID-19 pandemic.

If you’re interested in following those discussions and meetings, check out the #edu-science channel on our official Discord. You can also ask a team member (preferably Shifty) for a new “Education & Science” role, so you get pinged with any news in that channel!

[previewyoutube][/previewyoutube]

[h3]Fennec Cave by Kal[/h3]
This world is designed with ambience in mind! The cave’s movie screen actually projects light around the room, giving off an emissive glow that reacts nicely with the shiny cave walls. This is a great place to watch movies, youtube videos, or listen to music with friends!



[h3]Chess World by Kal [/h3]
Kal’s Chess World features multiple chessboards, and a main table with a chess display so people can easily see what’s going on during a heated chess match! With a fancy Victorian theme, this is sure to be a delightful world to play a game of chess in.



[h2]What’s Next?[/h2]
Our main focus is still the facet, container and workspace system for Radiant UI. The first technical phase of getting those systems setup in the first place is the most significant one, once those pieces are up and running we’ll be able to start replacing all of the old UI pieces and reworking them under the new framework.

We’re still waiting on some more feedback for the blocking functionality, please let us know so we can decide the priority better!

Thank you again for reading the weekly update and see you with the next one!

2020.5.28.1239 - New equip method, many bugfixes (laser, video, 100 % usage...)

New ability to equip tools/items by clicking on them, new dash icons by @Coffee | Programmer (for the old dash still), logging joined/left users.

Also some significant bugfixes for the laser. Particularly fixing the laser being very jittery in private UI on Oculus headsets (it's strange that this wasn't reported earlier, as it makes it very hard to use in private UI). Also bugfixes for video playback.

The OVRLipSync was downgraded to the correct version, which shouldn't be causing 100% CPU utilization anymore, so hopefully that's fixed too.

[h2]New Features:[/h2]
- Added ability to equip tools through the context menu by clicking on them (suggested by Runi#1730)
-- You can block this on particular tooltips using BlockRemoteEquip
-- You can also rename the name of the eqipped item from "Tool" by changing the EquipName property
- Replaced all dash menu icons and added appropriate coloring to help speed up navigation (implemented by @Coffee | Programmer)
- Neos will now log users that join and leave on everyone's end (requested by @H3BO3)

[h2]Tweaks:[/h2]
- Changed the 'enable/disable laser" icon (Based on feedback from @Hayden (PolyLogiX - ZyroDesign), @GearBell, and others that I don't remember. Implemented by @Coffee | Programmer)
- Downgraded OVRLipSync to 1.42 from 1.43, which should be the correct version before the high CPU usage bug (reported by @Shifty | Quality Control Lead)

[h2]Bugfixes:[/h2]
- Fixed invalid update order for synchronizing the userspace laser with world, causing the private UI laser to heavily jitter with Oculus headsets (reported by @Veer | Chief of Moderation)
- Fixed Grab Instancer not respecting the physical grab (reported by @Hayden (PolyLogiX - ZyroDesign))
- Fixed UMP (libVLC) videos turning black after first playback (reported by @Purple Juice, @H3BO3 and @Shifty | Quality Control Lead)
- Reworked mechanism for fetching video file/stream type so Unity Native playback can be used for MP4 videos streamed from Neos cloud (based on feedback from @H3BO3)
- Reworked texture updating mechanism to prevent video textures sometimes breaking or behaving oddly
- Fixed interaction laser turning red on grabbables that the user is forbidden to grab by the permission system (reproted by @Shifty | Quality Control Lead)
- Removed deprecated AutoOptimizeAvatar on CommonAvatarBuidler (based on report by @Enverex and @Shifty | Quality Control Lead)
- Fixed text rendering underline/strikethrough/mark effects not ending at the correct location in some cases, making the mark jump to the front or back of the line (reported by @Earthmark)
- Fixed lasers going through private UI even if it's in front of the world UI (and vice versa) with some avatars (reported by @Enverex, investigated by @A Monsoon of Babies and @Shifty | Quality Control Lead )
- Fixed defaultMute property being user-editable (reported by @LeDrascol)
- Some more small security improvements