1. Neos VR
  2. News

Neos VR News

Creator Jam Winter Holiday Party, Amadepolis VR Opera Concert, Neos Festa 2

Hello everyone and welcome to another weekly update!

This week we have some major community highlights and announcements for you. The Creator Jam is putting together a Winter Holiday party with gift exchange on December 20, details are below if you’d like to participate.

This Saturday also saw two notable events. The content creator festival “Neos Festa” by the Japanese community has officially opened with many amazing exhibits and we saw the first opera concert held in Neos, featuring the Amadeus Artists from Vienna. If you missed the live streams you can check it out below!



[h2]Creator Jam Winter Holiday party[/h2]
The weekly community-held Creator Jam is planning a holiday party later this December with a gift exchange. If you’d like to join in, check out the official announcement:

Originally posted by Medra
Hello everyone!
The holidays are almost upon us ...so it's time for:
Creator Jam's Winter Holiday Party #2

Sunday, December 20
Starts at 2PM EST(UTC 19:00).

Come hang out at our yearly Winter party exchanging gifts, dressing up, and enjoying each other's company.

There will be a gift exchange held at 2:30PM EST(UTC 19:30).
Anyone that brings a gift can participate in the gift exchange.

Have a gift but don't want to participate, feel free to give gifts to specific people or everyone :)

Everyone is welcome.

I look forward to seeing all!

Here are some photos from the last year's event!

(also this doesn't lag as much anymore thanks to the audio system optimizations!)

[h2]Amadepolis VR Opera Concert[/h2]
Saturday also saw another notable event, an unprecedented concert with opera singers, presented digitally through Neos VR to a live remote audience. This event combined mixed reality capture of the opera singers with thematic virtual environments.

The event was viewed by a live audience in Neos VR as well as streamed live on YouTube. If you missed it, you can watch the recording below, it’s definitely worth a watch, including some of the afterparty.

[previewyoutube][/previewyoutube]

This is an amazing achievement by everyone involved and not only a way to bring art to the audience safely during the pandemic, but to also expand it with virtual elements that wouldn’t be possible in real life.

Here are the official credits for the artists and the production team that put this whole experience together:

[h3]Live Moderation:[/h3]
Neivi Martinez

[h3]The Artists:[/h3]
Penelope Kendros - Soprano
Laura Olivia Spengel - Mezzosoprano
Cornelia Sonnleithner . Contralto
Neivi Martinez - Soprano
Timothy Jon Sarris - Tenor

[h3]The Accompanists:[/h3]
Elisa Mazorati
Alice Chang
Byron Zuang Yue
Evgeni Ganev

[h3]Production Team:[/h3]
Sid R. Sittner - Art Director and VR Expert
Konrad Gill - Co-Production und VR Expert
Neivi Martinez - Executive Producer & Artist Management

[h3]Special Thanks:[/h3]
Niederösterreich 3D - Monuments of Amadeus & Beethoven
Marcin Lubecki - 3D Anfitheater
Outallectuals -Intro/Outro Theme - Afterparty Music
Rite of Community by Potzman - Rites of Calling- Download under: https://outtallectuals.bandcamp.com/album/rites-of-calling-ep-outta055

The event was realized in cooperation with Amadeus Artists Vienna, ViARsys and Neos The Metaverse.

[h2]Neos Festa 2[/h2]
This Saturday the Japanese community has opened the second Content Creator Festival dubbed “Neos Festa”. You can now visit the world in Neos and check out all the amazing submissions both by the Japanese and international community, with each submission taking the form of a booth.

In the world you can find a stylish UI both in Japanese and English, which allows you to open individual booths as well as filter them by category, provide descriptions and links to authors' websites or Tip Jar and of course opening the booth itself.



You can have multiple booths open at once, but the system will automatically close them as you go, keeping the system resource usage low and the world running smoothly. The world’s architecture was designed by GONT_3 and komashiba, with LogiX and UIX by orange and rhenium and logo by coreless. The project is also utilizing the 3rd party Neos .js API client by Bitman.



We recommend visiting the world and checking out all the submissions yourself, ranging from cool worlds, item exhibitions, gadgets, utilities and even playable games. If you missed the opening event, you can watch the recording here:

[previewyoutube][/previewyoutube]
You can also follow the event on Twitter under the #NeosFesta hashtag.

We’re very happy to see more events like this, celebrating the creativity and freedom of expression in Neos VR across the international communities.



---------------------------

This his all for this weekly update. Thank you everyone for reading and big thanks to everyone for your creativity and hard work making all of these amazing events happen in Neos! See you the next week with more Neos news.

2020.12.9.819 - Headless ban by name/ID commands, audio stream diagnostics

Sorry for another small build, just a few additions. Mainly ability to ban users on headless without them having to be present and some new diagnostics for audio streams to help gather data for voices being choppy. Made some tweaks to the PatreonSkyController as well, so it displays better now!

[h2]New Features:[/h2]
- Added banByName and unbanByName commands to headless, which allow (un)banning user by their Neos username without them having to be present in the session (based on request by @Shadow Panther [RU/EN, UTC+3])
-- Make sure you have the correct name before using this, using their UserID is preferable (you can get it from logs)
- Added banById and unbanById commands to headless with same functionality as above, but using UserID instead (starting with U-)
- Added NormalizedStart and NormalizedEnd to SphereAligner, which allows aligning the items to a section of sphere
-- Default is 0 to 1, but for example 0.5 to 1 will map to the upper hemisphere
- Added AudioStreamMetadata (under Assets/Utility) which provides diagnostic information for an audio stream
-- All the information is local and will likely be different for each user
-- It provides buffer state (unread samples, missed (underrun) samples and so on)
-- It provides encode state for user owning the stream (samples vailable for encode, frame size and more)
- Inspector for AudioStreams now shows diagnostic information as well as diagnostic graph to help diagnose issues (based on report by @Zephyr.С and @Shifty | Quality Control Lead)
-- The graph shows number of unread samples (white) and number of last missed samples (red)
- AudioStreams now support adjusting the buffer size, rather than using a fixed one

[h2]Tweaks:[/h2]
- PatreonSkyController will now use SphereAligner instead of random positioning to ensure better spacing of Patreon names and pictures
-- By default it uses a the upper hemisphere, but the range is configurable in case you want to set it up in your world (based on feedback by @Veer | Chief Moderation Officer)
- PatreonSkyController now shows all eligible Patreons, rather than just a fixed random subset, the order is randomized on every load / enable/disable

- Merged Dutch locale additions (including MTC 2.0) by AnotherFoxGuy
- Merged Spanish locale tweaks and additions by @Ruzert

2020.12.9.60 - Fixed large videos not downloading from the CDN

A small priority patch to unblock issue with an upcoming event. Compatible with current build, no need to update right away if you're not affected by this issue.

[h2]Bugfixes:[/h2]
- VideoTexture will now use the Video CDN for downloads as well, instead only streaming the video, fixing issue where video files above certain size would fail to download when regular CDN is used (reported by @VRxist, @Cid and @Neivi)

2020.12.8.638 - Controller Battery Level access in LogiX, virtual haptic sampler

Sorry for smaller build, hopefully there are some useful goodies! You can now create virtual samplers for the haptic system for testing or building NPC's with them (and I imagine many other use-cases), you can now access your controller battery level with LogiX and there are new options exposed on the VideoTexture provider for loading videos from online services.

The eye tracking and Oculus SDK's were updated as well and this build also has a regenerated precache, so the new MTC loads quick for new users. There are a bunch of other smaller tweaks and bugfixes as well.

[h2]New Features:[/h2]
- Added "VirtualHapticPointSampler" (under Input/Haptics) which samples and outputs the haptic sensations in the environment (based on feedback by @guillefix)
-- This can be used for testing the haptic system of building virtual NPC on top of it, that are able to "sense"
- Added "Battery Level" property to all controllers (accessible through Standard Controller or specific controller nodes) (requested by @emiru)
-- Battery level is reported in range 0...1
-- Negative values mean that battery level isn't available
-- Note that not all controllers/API's might support getting the battery level. Even though the property is available
- Added MaxWidth and MaxHeight optional overrides to VideoTextureProvider, which will try to load variant that doesn't exceed given size (requested by @LeDrascol)
-- Currently this only works with online streaming services, as other video assets don't have variants generated at this point (this will likely change in the future)
-- When both of those are null, online services are implicitly limited to 1920x1080 for stability. By setting either one of those you can increase the limit (e.g. force it to load 4K YouTube videos assuming a valid stream is available)
- Added "Prefer Audio Only" to VideoTextureProvider, which will try to pick audio only versions when loading media from a streaming service (e.g. YouTube) (requested by @LeDrascol)
-- Note that this is subject to availability of the streams and accuracy of extracted listing of the streams. Some streams that report no video actually contain a low resolution video data anyway

[h2]Tweaks:[/h2]
- EnumInput`1 LogiX node now uses the new generic type preset selection (based on report by kazu0617 on GitHub)
- Added several more common enum types to the presets for enum nodes
- Categorized some uncategorized components (including most suggested by @Alex from Alaska)
- Conformed all UI icons/sprites to 256x256, reducing memory/VRAM usage on some that were 1024x1024
- Upgraded SRAnipal SDK (Vive Pro Eye & Lip tracking) to v1.3.1.1 (from v1.3.3.0) (new version notified by @Danyy59)
- Upgraded OVRPlugin (Oculus SDK) to 1.55.0 (from 1.52.1)
- Regenerated Precache data to include the new MTC and fonts for quick loading for new users
- Moved NeosClassroom configuration file location to the app folder, rather than root on Quest
-- This fixes access denied exception on Quest 2 despite being granted access permission (reported by @Karel | CEO)
- Lasers now start in disabled state, preventing their unitialized visual being shown if the controller is disabled (based on feedback by @Ralii The Avali)

- Merged French locale additions, tweaks and formatting cleanup Python script by @xqua
- Merged Czech locale additions by @rampa_3 (UTC +1, DST UTC +2)
- Merged Polish locale additions by @art0007i
- Merged Russian locale tweaks by @Shadow Panther [RU/EN, UTC+3]
- Merged Korean locale additions and tweaks by @MirPASEC
- Merged Esperanto locale fixes by @Melnus
- Published Czech Steam Store translation by by @rampa_3 (UTC +1, DST UTC +2)
- Published Chinese Steam Store translation by @Melnus

[h2]Bugfixes:[/h2]
- NeosSlider will now filter NaN values quietly, to avoid severe performance degradation by excessive logging (based on report by @Shadow Panther [RU/EN, UTC+3] and @Shifty | Quality Control Lead)
- BoundingBoxDriver will now filter invalid values before assigning them, preventing errors from propagating further and causing logspam (based on report by @Shadow Panther [RU/EN, UTC+3] and @Shifty | Quality Control Lead)
- Added invalid input filtering to Light component to prevent visual artifacts with invalid values (e.g. NaN) based on report by @Shadow Panther [RU/EN, UTC+3])
- SyncPlayback now supports non-looped backwards playback (when speed is negative), properly reporting IsPlaying state and starting from the end when "Play" command is issued
- Added extra diagnostics for audio buffer read/copy operations (based on log from @Tekno Catron#8745)
- UpdatesDelayWithValue node will now sanitize the value if the value is a reference type that has been destroyed in the meanwhile (this fixes some background errors, found in log from @Tekno Catron#8745)
- Fixed cyclic reference in AvatarObjectComponentProxy causing crash (reported by @Hayden (PolyLogiX Studio))
- Fixed Static Asset Providers not always unloading asset when the URL is rapidly changed while a load process is still running
-- This fixes the provider randomly keeping the asset still loaded, even though the URL is null (reported by @Enverex)

Contacts+ (contacts of contacts) session mode, cloud upgrades, haptics additions

Hello and welcome to another weekly update!

This week we had two major changes. One was Contacts+ mode for session access, prioritized based on popular community request and the other was a cloud infrastructure upgrade and series bug fixes, which came out of unexpected issues.

The haptics system introduced last week has also received numerous additions, tweaks and bugfixes, not only improving the bHaptics integration itself, but also enabling it for standard VR controllers, allowing you to use Haptic Volumes to create control haptics.



[h2]Contacts+ mode (Contacts of Contacts)[/h2]

Based on popular demand from the community, we have prioritized adding the “Contacts+” session access mode. Unlike the regular “Contacts” which allows only the contacts of the host to join the session, this one will allow users to join as long as any of their contacts are within the session.

This makes the sessions using this setting more accessible, removing the need to figure out who the host is and send them a friend request. It’s also particularly useful for headless sessions, where only a select few users can initially join the session (or only the owner), but once they’re in any contacts and their contacts can join.

Because we value privacy and security, we took special care with how this feature was implemented. Whenever a user joins, they are authenticated and verified, ensuring that people can’t join even if they somehow get the session’s ID or URL. If all of their contacts leave the session, they won’t be able to rejoin either.

At the same time the backend API is designed in a way to make it practically impossible to determine another user’s entire contact list. Obviously it is possible to tell if the user who just joined is someone’s contact, but anything beyond that (including checking any other user) isn’t accessible through the API.

[h2]Haptics framework improvements and additions[/h2]
Since we introduced the new haptics framework last week for the bHaptics vest, we have added multitude of new features, tweaks and bug fixes to it. Notably the system now works with VR controllers as well, allowing you to use Haptic Volumes to trigger haptics on user’s controllers and test how it works.

Both bHaptics and VR controller drivers now also interpret other sensations as well, including Pain, Temperature and Vibration. Since they’re vibro-tactile systems, those sensations are translated to vibrations (for example Pain will produce a pulsing sensation to simulate heartbeat), but once more haptic devices are supported they can interpret this information and create more accurate haptic responses.

We have also showcased the bHaptics integration in our official livestream this Friday. If you missed it, check out the recording below:

[previewyoutube][/previewyoutube]

[h2]Major SDK upgrade and bugfixes for the cloud backend[/h2]
Earlier this week we noticed some degradation with the cloud backend, particularly with the asset variant system that’s responsible for computing optimized versions of textures to reduce VRAM usage and loading times. The system got flooded with enormous amounts of duplicate jobs, leading the queue to grow to 8 million and progress very slowly, as the system threw invalid jobs one by one.

This discovery has led to a series of upgrades and bug fixes for the cloud backend. We moved to the v12 version of the Azure storage SDK’s, moving away from the deprecated v11 version. This required a large chunk of the code to be updated, as the API’s weren’t compatible with each other, but also provided a noticeable performance improvement.

The asset variant compute system was also improved and partly redesigned to prevent this pathological scenario from occuring again. The system will now prevent most duplicate jobs from being created in the first place, but even when they happen (as is possible with a highly concurrent system) it will discard them much faster than before.

We have fixed some other internal problems with the cloud service, which resulted in certain internal tasks failing (particularly with world/item synchronization). Those failures were compensated by another subsystem, but caused unnecessary processing and bloat, which is now removed.

Another part of the system that received some bug fixes was the NAT punchthrough and relay system, responsible for establishing real time session connections. If you’re using custom session IDs, they would be randomly rendered unjoinable. This behavior has now been fixed.

The relay system, which is used when connection cannot be established directly with NAT punchthrough now also performs several attempts to establish a connection, improving reliability of joining a session with more spotty connections.

With growing population, improving and upgrading the cloud backend is very important to ensure that everything keeps running smoothly and so we can reduce the internal cost. There are many more upgrades and improvements planned, but we’ll handle them as needed.

[h2]Regular Oculus Quest / Android builds[/h2]
Neos has had Oculus Quest builds available in early preview for Patreon supporters for a while, but they were typically seldom updated, as doing so required a lot of manual labor and would often be very behind the main PCVR versions on Steam.

Starting this week, we have automated the process of building and publishing the new APK’s for sideloading, making those builds always match the PCVR version. Currently PCVR is still our main priority and focus, but automating this part of the process will help bring more attention to them in the future as it will ease the development iteration process.

You can expect the Android builds to be typically updated within a day of publishing a regular PCVR build on the private android-preview branch on Steam, which can be obtained through the #android-testers channel in our official Discord.

[h2]Community Highlights[/h2]
Hey there everyone your friendly neighborhood Turk here this week to showcase what the community has made! This week we have Maps aplenty!

[h3]Ancient Temple[/h3]
A very old, somber temple brought to you by Enverex, from it’s nice aesthetics to it’s hidden temples, see if you can find the mysteries that are hidden within. See if you can find the special magic portal! Thanks Enverex!



[h3]Japanese Onsen[/h3]
A nice flavourful Onsen with some nice summer night atmosphere! Come on by, take a dip, appreciate some tranquility gardens, and watch some videos! Thanks Rhenium, GAWAWA, and Cid for the map! (Special Thanks to Vigilabo, Orange, lilhatategami for their object contributions)



[h3]Builders Dojo[/h3]
A wonderful world and concept set up by LosAngelesGraff! A Dojo for builders to build! Hosting the map daily, it’s an open world for people to make wonderful art pieces, creations, toys, or friends that get spread through the Neos Community! Thanks Graff!



[h3]Inverse Nebula[/h3]
Welcome to this canteen amongst the stairs, but inverted? A Casual RP Map made by DeliriousJax and Co. Where there are some scenic views to contemplate as you get a drink at the local Tavern. I hear it’s hosted by a Security Droid S-05 so you’ll feel plenty safe. Thanks S-05!



[h3]Breakdance[/h3]
Also we had another Dance Cypher hosted by the IDA this week! JJfxMultimedia, B-Botics and Charma and the Crew managed to bring Makoto from the Korean Dance Community over and dropped some sick moves! Good Dancing guys! If you want try to stop by sometime, they are open to having people stop by and dancing! Even I‘ve participated and it’s a blast!

https://twitter.com/i/status/1334915980963717122



----------------------

This is everything for this week, if you’d like to know more about the smaller additions, tweaks and bug fixes you can always check out the patch notes on Steam or in the #neos-updates channel on our official Discord.

And as always, thank you for your support! Neos wouldn’t be the same metaverse without your help, awesome creations and being part of a great community!