1. Neos VR
  2. News

Neos VR News

CHIP-8 emulator built completely in VR, avatar additions, progress on UI more

Hello everyone!

Welcome back to the weekly update. We’ve got a small one today, as most of our development efforts have been focused on the new UI framework, which is nearing its completion. Parts of its design proved to be more challenging than expected, but they’re now mostly solved.

Despite that, we had some exciting events. Last week Aegis_Wolf built a functioning simple 3D modelling tool purely in Neos. This week another of our team members - 0utsider, has built a functioning CHIP-8 emulator completely in VR!

Neos has received a bunch of small additions, optimizations and bugfixes as usual, you can read more about them below.

We’ll be talking about this and more during our livestream on Twitch tonight! We’ll be answering your questions and hanging out with the community like usual so feel free to visit!



[h2]0utsider’s CHIP-8 emulator![/h2]

0utsider, one of our team members, has built an entire CHIP-8 emulator within Neos, based on the original CHIP-8 interpreted language, all made purely in-game with LogiX! This emulator is capable of running ROMs for the COSMAC VIP microcomputer, so you can even play simple games on it.

“It was fun building the Chip 8 emulator in Logix. And hangout with my friends in VR as they would drop by to see the crazy mess of wires running about the gm_flatgrass map where i worked on it. Garry’s Mod was the first game where I made the emulator run in it’s Logix style programming system.“ - 0utsider89





[h2]Avatar pose offsets for more flexible setups[/h2]

We have added a few new components to help with avatars that have unusual body proportions: AvatarTrackingOffset, AvatarPoseOffset and AvatarPoseFilterInstaller. Using these, you can apply a fixed offset to your tracking space or to individual body nodes.

This can be used to setup avatars that have very short legs for example, by pushing the whole tracking space into the floor to compensate, while preserving arm length distances. The offsets are also tied to the avatar itself and are automatically applied to anyone wearing those avatars, without having to fiddle with the settings.

[h2]More reliable 3D model import[/h2]

After reports of some rigged 3D models importing incorrectly, we have investigated and found a series of bugs, particularly for models with bone name clashes. As a result, the Assimp library used to decode the 3D model formats has been updated to the latest version from source and those bugs were fixed, making more models to import correctly out of the box.

[h2]Steam Audio branch[/h2]

Currently Neos is using the Microsoft HRTF Spatializer. While low in audio quality, it provides the best stability and reliability out of available solutions for the moment. Our long term goal is to switch to the Steam Audio spatializer for its high quality and feature set, but at the time it suffers from several issues that prevent us switching to it fully.

However if you’d like to test it out or use it on your own risk, you can! You can do so by switching over to steam-audio branch on Steam, in NeosVR properties. The branch is compatible with regular Neos and is updated in sync with the main build.

While this offers better audio quality, be aware that you might get random pops and complete silence until Neos is restarted and random high CPU usage when playing sound effects. Those are issues with the Steam Audio library that we are waiting to be fixed first and they seem very random in nature, with some users not experiencing them at all, while others encounter them often.

[h2]General additions, optimizations and bugfixes[/h2]

As usual, Neos has received a bunch of bugfixes and optimizations over the course of the week, based both on user reports and our own discoveries. We finally got rid of the slow initial load for inventory folders with lots of items, reduced some memory allocations and CPU usage. Random logging out for long running sessions (particularly headless) was also fixed.

There are some new LogiX nodes as well, particularly Cubic Lerp and Cosine Lerp by Coffee, which allow for building nice procedural animations right inside of Neos. Check out the #neos-updates channel on our Discord or the small patch announcements on Steam for more info!

[h2]Layout system for UIX[/h2]

The full details of the layout system for the new UI framework UIX took longer to design and work out than expected, but they’re now finally being implemented. This is one of the most important parts of an UI framework, as it is responsible for automatically building complex layouts out of several UI elements.

It is designed to handle anything from a simple row or grid of buttons, to complex nested layouts flowing in different directions and provide extensible framework to implement more layout components in the future.

One of the goals of the system and particularly challenging parts of the design was performance. Not only are all computations deferred to a background thread, requiring the synchronous part to do as little as work as possible collecting the necessary information, but it’s designed to avoid recomputations for parts of layout that haven’t been affected.

To achieve this the system is designed to use a hierarchical invalidation propagation, with a way for different components to “absorb” particular changes. For example if a width of a child element changes under an element that has a fixed width itself, the changed width will not propagate beyond that point.

At the same time it will trigger sufficient invalidations that will result in necessary recalculations - even though the width might not have direct effect on parent’s width, it can affect its height though more complex relationships (like text wrapping) and the layout system needs to be able to handle that.

Overall, this will lead to the new UI framework being more responsive, taking less of your system resources (particularly CPU time) and having significantly lower impact on your framerate, while allowing us to build elegant, beautiful and powerful UI’s on top of it.



[h2]What’s Next?[/h2]

With the layout computation system for UIX being worked out and now implemented, we'll be moving to the final stage of the implementation. There are still many things to implement with the new system, but nearly all the hard parts (the layout in particular) are in place now, so the system should be ready to replace the existing UI framework soon.

Thanks again for checking out the weekly update. We hope we’ll have more to share about the UI system soon, it’s been taking long enough, but we appreciate your patience and support. Thank you guys, you’re all awesome!

Prop Hunt, DD Roleplay System, Airship Builder, Simple 3D Modeling Tool More!

Welcome again to the weekly update!

Our community has brought us a ton of new content! Users have recreated the Prop Hunt game from GMod, another group is building interactive D&D tabletop system called DelVR and there’s an airship game being built with crafting system and customizable ships. So many wonderful projects this week!

We’re getting very close to the UIX framework being completed and replacing the old Unity UI system! The 100% CPU usage issue has been mitigated, memory leaks from saving worlds fixed and the load/save process now uses less CPU and memory overall.

Our graphics designer has built a simple 3D modelling tool completely in Neos. There were some smaller additions as well, like new LogiX node for getting UV coordinates from raycast hit or internal audit log for helping diagnose cases of deleted or overwritten worlds in emergencies.

As always we will be talking about these new features during our weekly livestream, so please come join us! The livestream will be tonight at 3 PM PST (6 PM Eastern). We will be playing the Prop Hunt game on the stream so you can see it in action!



[h2]Community Highlights[/h2]
[h3]D&D GameMaster systems by DelVR[/h3]
DelVR is an amazing project brought to Neos by ChrisWarner103 and ToMo, who are seeking to give players an immersive system to play games like Dungeons and Dragons within VR. They have released their second devlog video, detailing the interactive GameMaster systems they have built. This video is a must-watch, this project is amazing!

[previewyoutube][/previewyoutube]

[h3]Prop Hunt - Medra and Creator Jam participants! [/h3]
Medra’s weekly Creator Jam had an awesome theme last week: re-creating the beloved hide-and-seek game Prop Hunt, where players would hide as an object while hunters would seek them out, looking for things that seem out of place.

This has been one of the best Creator Jams so far and everyone seems to love to play this game in Neos. Well done everyone!

[previewyoutube][/previewyoutube]

If you want to see Prop Hunt in action, we’ll be playing a few rounds tonight during our Twitch stream!

[h3]Buildable Airships - LucasRo & RueShejn[/h3]
These two have been hard at work creating an amazing way to build, using triangles and some very clever LogiX to create a polygon building system! Yet another amazing system to show that game development is not only possible within Neos, but can be quite fun! Awesome work guys!
[previewyoutube][/previewyoutube]

[h2]Progress on the new UI framework[/h2]
The new UI framework, internally named UIX (a joke combination of UI, UX and Neos’ naming scheme adding onto LogiX, BaseX, CodeX, PostX and others), is now heavily in its implementation phase!

The new system is already producing visual output and has most of the major building blocks implemented. It might not look as much on the testing videos, but there is quite a lot going on under the hood, as the system is designed to efficiently handle complex UI’s and layouts without significantly impacting the performance.

Any changes to the UI are collected and registered synchronously as they happen, with minimal amount of computational work on the main thread. The heavy lifting of propagating the updates, sorting items, computing layout and geometry is then done on background threads, spreading the work onto other CPU cores and avoiding stalling the main thread and freezing all the visuals.

The system already handles masking and has a clever way of splitting the layout hierarchy into multiple “graphics chunks” - mostly independent pieces that calculate their own geometry in parallel and isolate the changes happening within the UI to reduce the overall amount of computation needed for each update.

For example the root of a scroll region will become its own graphic chunk, so instead of having to recalculate the geometry to shift all the vertices, the whole chunk is just moved. Graphic chunks are also used to implement masking, naturally splitting the geometry into regions with their own stencil buffer parameters.

Because the graphic chunks can be easily dynamically created and removed anywhere within the hierarchy, we can also implement auto-balancing optimizations. If the system notices a part of the layout frequently changing, while other parts remain static, it will simply insert a graphic chunk at the right point in the hierarchy and isolate the recomputations only to the frequently changing parts.

[previewyoutube][/previewyoutube]

[h2]More memory optimizations and 100 % CPU usage fix[/h2]
After more reports of memory leaks caused by saving worlds, part of the save and load procedures have been rewritten to be significantly more efficient and work around a memory leak in a BSON library that is currently being used.

Thanks to this loading into worlds and saving them should now be smoother, taking less CPU time and significantly lower amount of RAM, reducing the stutters and the memory used when saving worlds will now get properly reclaimed, preventing the RAM usage from bloating over time.

We have also tweaked the video playback engine selection after the introduction of youtube-dl integration. This should significantly mitigate random 100% CPU usage reported by many users. The change will now favor native Unity playback engine to better utilize system’s native video decoding (including HW acceleration) when playing YouTube videos in Neos and avoid triggering the CPU usage bug in the 3rd party libVLC playback engine.

[h2]Simple 3D modelling tool[/h2]
Aegis_Wolf, our graphics designer, has built a simple 3D modelling device completely in Neos! You can build models out of triangles or quads, with vertex snapping and coloring and using several symmetry modes.

The built model can then be then baked into a single mesh and used as any other model inside of Neos, even exported into FBX or made into an avatar. Aegis is still actively working on this tool, so expect more additions and updates. If you’d like to play with it, you can find it in Neos Essentials or the MTC Art Room.

[previewyoutube][/previewyoutube]

[h2]New LogiX nodes and audit log[/h2]
We have gotten some new LogiX node contributions from Coffee! There are two new operator nodes x2 and x3 for quickly squaring and cubing numbers. There’s also HitUVCoordinate node under the Physics category, which allows extracting a UV coordinate from a raycast that hit a mesh collider, allowing for some potentially interesting applications.

Neos backend now also has an audit log for any changes being done to worlds and items. This will help us investigate worlds or items disappearing and provide a safety net to restore accidentally overwritten or deleted items and worlds.

However this is meant only for emergency use-cases. If you have important creations you don’t want to lose, it’s a good idea to keep backed up copies and versions of those. In case you lose something you can’t recover, contact Neos staff and they’ll be able to help you.

[h2]What’s Next?[/h2]
There is still quite some work to do on UIX, the new UI framework, namely layout components, interactions and implementing a proper set of components and behaviors so it can fully replace the current hybrid Unity UI system, but after the long design phase it’s finally in the last stretch.

We expect that the swap will happen sometime next week and usher a new era of lag-less inspectors and allow us to finally begin on overhauling the UI visuals and interactions to make Neos significantly easier to use for both new and existing users.

Thank you again for joining us on this week’s edition of the Weekly Update! We hope to see you all at our livestream tonight. And thank you again to all of our Patreon supporters and creative users, without you this project wouldn’t be the same!

HTC Lip Tracking Module support, Youtube-dl integration for better video support

Hello again everyone! This week’s update showcases useful new features such as youtube-dl integration, which significantly improves the reliability of importing video links from a variety of video services. We've also added lip-tracking support for upcoming modules that can track facial expressions.

We’ll be talking about these wonderful new features during our Friday livestream on Twitch as well as showcasing the lip tracking live in Neos! It will be a little late tonight, around 5 PM PST (8 PM Eastern). Tune in to hang out, and ask questions!



[h2]Youtube-dl Integration[/h2]

We’ve heard a lot of users requesting integration of this helpful module for a while now, as previously we were unable to play copyrighted or encrypted YouTube videos within Neos.

Now with the integration of youtube-dl this has changed, allowing users not only play most YouTube videos, but also adding direct import support many other media sources, such as YouTube livestreams, Vimeo, Twitch, Mixer, Soundcloud, and more. It's as simple as copying the URL and pasting into Neos!

This will also help decrease downtime when YouTube breaks compatibility with services such as ours. We can simply update the youtube-dl binary in a new build!



Aegis watching several live YouTube livestreams from the Duluth, Minnesota

[h2]HTC Lip Tracking Module[/h2]

HTC has generously loaned us their lip tracking module. Frooxius was quick to implement it into Neos, so when this technology becomes mainstream, it'll work right away.

[previewyoutube][/previewyoutube]

Most avatars in Neos work seamlessly with this tracker out of the box by utilizing and mapping pre-existing visemes for basic mapping. We have also added components which make it easy to quickly map common expressions and emotions to blend shapes on your avatar.

All the raw data from the lip tracking module is also fully exposed and can be used with LogiX (our visual scripting language) to drive complex blend shapes on the avatar, as well as quickly prototype and build applications right inside of VR.

[previewyoutube][/previewyoutube]

[h2]Community Highlights[/h2]

[h3]"The Directory" by ProbablePrime[/h3]

A plethora of user created content can be found in The Directory. From silly pictures and games to useful tools. Save these folders to your inventory, and enjoy our users' wonderful creations!



[h3]Poké Balls by GearBell[/h3]

GearBell has made yet another wonderful creation: Functional Poké Balls to capture friends! Grab a Poké Ball, scoop up friends, and show them off through its little window. The Poké Balls can be found in her world "Pokemon Battle Stadium".



[h2]What’s Next?[/h2]

After long engineering and design phase, the new UI framework, dubbed UIX, is now being implemented! There’s still a fair bit of engineering going on during the initial stages of implementation, but things are now falling into place.

This will replace the current Unity UI framework, significantly improving performance and giving us the control we need to overhaul Neos’ UI to be more user friendly and look prettier. Expect some news on this soon!

Thanks for joining us again for our weekly update. If you have any questions about the features discussed, please join us during our Twitch stream! We’re nearing closer and closer to the long-awaited UI update, so stay tuned for the weekly updates to come!

Metaverse Training Center now open, Neos Textbook published in Czechia

Welcome back! This weekly update will be about the Metaverse Training Center. The Metaverse Training Center, or MTC for short, has been and still is a long and challenging project. It’s goal is to give the gift of knowledge to all users on the various tools that Neos provides. Currently, there are three completed rooms, and many more planned for the future.

We talked about the MTC and more during our Friday Twitch stream tonight at 3PM PST (6PM EST). Thanks for join us and hanging out! We always love having you with us!

[previewyoutube][/previewyoutube]



Metaverse Training Center

After a long bout of hard work, the beginning of the Metaverse Training Center is now open for users to explore. Frooxius, Nexulan, Aegis and Coffee have all been working hard at putting this special world together with the ultimate goal of teaching new and old users how to use the features of Neos to their fullest extent.



The entirety of the MTC was all assembled inside Neos, from the placing of buildings, objects and videos, all the way down to the programming of functioning items such as the Avatar Builder all with LogiX. Frooxius has handled the majority of the programming, Nexulan handling the art direction and rounding up the team, Aegis with the modeling of the buildings, and Coffee created our instructional signs that guide our new users throughout the MTC! These guys are amazing, so show them some love at our Twitch stream tonight!



Avatar Creation Room

Users can learn all about avatars in this room! There are videos showing how to add basic modifications to your avatars as well as a video on uploading and setting up an avatar for use within Neos. If you’d like, you can even get and customize your own Neos Bot avatar in the main room.



This room will be very useful in helping new users get used to the avatar setup process here in Neos. There are also a ton of accessories to adorn your avatar with, so come and give this room a visit!



Streaming Room

Are you a streamer? Want to learn how to show Neos off with our camera tools? The streaming room has a bunch of tools at your disposal ranging from Twitch and Mixer video streamers, instructions on camera tools and the Twitch chat panel, and even special logix nodes for Twitch stream chat commands.



There’s an instructional video on utilizing the streamer camera done by our wonderful Nexulan, and shot by our amazing new team-member Theofilus. You can even pick up some of the same props we use in our own official Neos livestreams, such as the floating Neos logo which contains chat-driven particle effects, the popcorn maker, and the fan to keep you cool!



Art Room

This wonderful location holds fine pieces of art created by our users. You can find all sorts of inspiration, materials, and special tooltips for creating your masterpiece right here in Neos!



There’s even an easel so you can practice with the different materials and tips as you see fit. When you draw on it, your lines and convex hulls will actually stick to the easel automatically. Give it a shot!



If you want to dabble with Neotoshop, made by our very talented Neos Team member Coffee, you can find it near the easel. It’s a wonderful feat of Logix programming that allows you to save a copy of your artwork as a flat image! You can also find Neotoshop in your inventory's Neos Essential Tools section in the PolyLogiX folder.



Neos Textbook Released in Czechia

For the past half year, doc. Petr Klán has been working on a textbook “How to build worlds in the Neos Metaverse” for teachers and students, in collaboration with Frooxius. The book was finally released in Czech this week and work is underway on an English translation.

[previewyoutube][/previewyoutube]

The textbook walks the reader through the basics of virtual reality, Neos and related game development concepts. It is based on doc. Petr Klán’s VR1 course at the Czech Technical University in Prague, in which students learn to build content in VR, import models, create particle systems, materials and finally script interactivity with LogiX.

This is a very exciting step for us, because it eases adoption of Neos in schools. Once the English version is translated, we’ll share the ebook version publicly as well.

Community Highlights

This week’s highlights are all about nostalgia! Come give these memorable locations a visit!

[h3]Reactant’s fan recreation of the Room of the Rain[/h3]



The famous Room of the Rain from VRChat has received a fan-recreation within Neos! Reactant has been working hard at recreating the world, building the exterior from scratch both in blender and within Neos itself using the prim creating tools. Come give it a visit!

[h3]Wauf!’s FF7 Cosmo Canyon recreation[/h3]



Complete with beautiful lighting, atmospheric sounds and a remastered track of the original location in Final Fantasy 7, Wauf has done a great job in making this world into a cozy atmosphere!

What’s Next?

With the focus on MTC, optimizations and lots of different bug reports, tweaks and requests, the new UI framework has unfrotunatelly taken a back seat in the meanwhile, but now it’s shifting back to be the main focus.

However we have also received some good news, HTC will be lending us the lip tracking module for next few days, so we can integrate it with Neos for their upcoming hackathon in London. Combined with the eye tracking, this should provide the next level of avatar immersion and support for a wide variety of hardware.


Thank you all for joining us again for our weekly update! We can’t wait to see and hear from you during our stream tonight, please come and ask questions and give comments. Nex will once again be our lovely host as usual! See you there!

0.8.19.25364 - Metaverse Training Center is out! Also loads of bugfixes.

First public version of Metaverse Training Center is out! :smile: It is a new official tutorial center for new and existing users, built by @Nexulan, @Aegis_Wolf, @Coffee, @Theofilus the Folf and me.

New users will now automatically spawn there, replacing the old tutorial. You can also access it from the Dash using Worlds -> Metaverse Training Center.

This is the first minimal viable version of it, we'll be expanding it with more rooms, features and improvements and a full narrative introductory experience, but you can already play with it. Feedback is welcome!

Also tons of bugfixes! More coming (as well some other feature requests I have in backlog, sorry I didn't include them in this build, I tried to, but I have to go to sleep now).

[h2]New Features:[/h2]
- Added "Metaverse Training Center" to the Neos dash under "Worlds", allowing quick access to the new tutorial hub for Neos!
- The new Metaverse Training Center now automatically loads for new users at startup, replacing the old outdated video tutorial at the beginning

[h2]Tweaks:[/h2]
- Updated Precache data to use latest asset variants (this includes the new MTC, Content Hub, common fonts and other assets)
- When VideoTextureProvider is disabled, Neos will not load the video until it's Enabled and if the video is already loaded it will pause playback regardless of it's playing state
-- This allows for optimizing video loading without affecting playback status
- Added network message dumping when receiving invalid message, which allows further diagnostic

[h2]Bugfixes:[/h2]
- Added file move retry logic and copy fallback when moving assets in the cache
-- This fixes record syncing breaking in some cases and getting stuck (reported & logs provided by @Rukio)
- Added guard against leaking exceptions when running user profile change events (discovered in log from @Shifty)
-- This fixes not being able to set default avatar when there's an error and similar future issues (reported by @Zane, @Shifty and @H3BO3)
- Fixed Inventory not always cleaning up user profile events, resulting in resource leak and the error above (discovered in log from @Shifty)
- Fixed exception when creating RenderTexture and disposing it before creation is finished and potential resource leak (discovered in log from @Shifty)
- Fixed exception in CopyTransformFromWorld when the transform source has been disposed (discovered in log from @Rubik)
- TwitchChatDialog and NeosButton will now hide themselves when they get corrupted to indicate the breakage
- Fixed TwitchChat leaking resources and not always deinitializing properly
- Added extra diagnostic information for opening worlds (to help diagnose issue reported by @Enverex , @SmolCookie)
- Fixed unhandled exception when handling exception in the session processing, causing whole Neos/headless to crash (reported by @Enverex)
- Fixed unhandled exception in headless when a world crashes (reported by @Enverex)
- Fixed unhandled exception when user disonnects from a session on a world that has already been disposed in the meanwhile (discovered in a log from @Enverex)
- Fixed exported audio and video files not having an extension and being hidden (reported by @Shifty)
- Enter and Tab keys on the virtual keyboard now ignore the shift key, fixing them not reacting when shift/caps-lock is active
- Fixed several tooltips (Glue, RawDataTooltip and others) not respecting TipReference (reported by @Aegis_Wolf and @Shifty)
-- This should fix using those tooltips with the tooltip multiplexer
- When host receives invalid/corrupted network message, Neos will now just disconnect the client that sent it, rather than crashing the whole world (based on report by @Enverex)
- Fixed Userspace avatar proxy corruption resulting in avatar duplication when transferring avatar with SimpleAvatarProtection from one world to another (big thanks for @Alex from Alaska for investigation, previously reported by @ProbablePrime and others)
- Added a delay to video stream loading - it will wait until the world has ran long enough, the framerate has stabilized and a few seconds after last stream loads
-- This should fix stream videos not loading properly when loaded during the world startup
- Fixed exceptions coming from userspace tool proxies when shutting down Neos (reported by @Turk)