1. Neos VR
  2. News

Neos VR News

Building the metaverse bonfire with the community - Neos in 2020 in review (2/2)

This is continuation from part 1, read it here first if you haven't


[h3]Neos Festa[/h3]
The Japanese team and community have been very busy as well creating a wide variety of content and have organized a festival to showcase some of the creativity only only from the Japanese community, but international one as well.



The second Neos Festa brought a few dozen creators, with each creator submitting their creation in a form of a both, that would be loaded from a user interface, containing basic information on the author and links to their profiles.

Many of the submissions took the concept of a booth in very creative ways, with some simply having showcases of their art and gadgets, while others have packed entire environments, worlds and even interactive games within the entire booth.

It’s definitely a good place to visit to check out more of the amazing content and we hope to see many more festivals like this to celebrate the creativity across different cultures and communities.

[previewyoutube][/previewyoutube]

[h3]Localization[/h3]
Another benefit of our custom UI framework UIX is a full support for Unicode and support for TTF/OTF font files. Building on this, we have implemented the first part of the localization framework, allowing Neos’ UI text to be translated into different languages.

As English is a secondary language for me and my cofounder, we know that English interface can present a barrier for many people, like our Japanese community and localization can significantly improve accessibility.

Despite that, the effort that our community has put into translating Neos into different languages has still surprised us. At the time of writing, Neos is now available in 18 different languages (and 2 variants), with maintainers of most of them regularly ensuring that all newly added text is translated.



We’re really grateful that you’ve been so passionate about localizing Neos and it has been amazing to see it in so many different languages, even if we cannot understand them ourselves.

The localization process for core UI also helped test out the underlying systems for it, which we’ll be generalizing and making usable for any user created content as well in the future. With community members from across the world, this will make your own content more easily accessible to others, no matter what their native language is.

If you’d like to help with the localization process, check out the official GitHub repository here. We’re giving any large contributors a bonus 25 GB of storage space on Neos as a little show of thanks for their effort.

[h3]Wiki and tutorials[/h3]
Yet another front where the community has been helping out is documenting Neos on the official Wiki, covering everything from the basic controls, to documenting components and LogiX and their behaviors. Having a good Wiki helps out both existing and new users and we’re really happy that many of you have dedicated your time to help on this front.

We have seen many new tutorials as well, notably by ProbablePrime, who has now published over 200 tutorials on various topics on his YouTube channel, serving as a great resource for new users and even experienced content builders.


https://www.youtube.com/c/ProbablePrime/videos

Tutorials were built directly in Neos as well, whether small items to help teach various concepts and interactions, to whole tutorial worlds, such as the community made tutorial by Earthmark. Those have shown us some good ways to teach new users basic concepts and get them comfortable in Neos.

Our long term goal is to integrate this documentation and tutorials directly into a knowledge base in Neos itself, but those channels will still remain great resources to learn more about the platform and its capabilities.

[h3]Streamers, Opera performance, first scientific studies, use in schools and more[/h3]
There were many more exciting things happening within the community over the course of the year, too many to mention all. We’ve had a few prominent streamers (big thanks to Rolfgator, SnowSoS, KimplE and many others) come check out the platform and bring in a lot of new users to the platform and showcase some of its possibilities (another big thanks to International Dance Association and JJfxMultimedia for showcasing our 11-point tracking system) to a wider audience.


https://twitter.com/bbotics/status/1342896211251011584
IDA showing off breakdance moves with elbow tracking

Plenty of smaller streamers and community members also keep streaming Neos regularly, some devoted ones (shoutout to Rukio and everyone featured on his streams) nearly every day, giving people a glimpse into everyday life, creativity and shenanigans on the platform!

Near the end of the year, the Amadeus Artists in Vienna performed in a virtual opera performance in Neos VR, with users from all over the world watching. The performance combined real world capture with virtual environments, creating a beautiful way to experience the art.

[previewyoutube][/previewyoutube]

Neos is also used in schools and in research. One of our most notable users, the Sydney Human Factors Research (SHFR) have used Neos to conduct several different studies, with the first one of them recently being published in a peer reviewed journal Plos One, with more coming.

We’re really proud that Neos could serve science as well and even more that members of the community have helped make those studies happen as well, showing the incredible power of real time collaboration across different groups, creating synergies and connecting people that would probably never have met otherwise.

Neos was also used to remotely teach two full semesters at the Czech technical university in Prague by doc. Ing. Mgr. Petr Klán, CSc. The students could watch the lectures from the comfort of their home and hand off their assignments virtually, as the school buildings were closed due to COVID.

NeosVR textbooks, written by doc. Ing. Mgr. Petr Klán, CSc. for his university course

https://www.youtube.com/watch?v=FGwB6y_JRcg
One of the university lectures, in Czech

Neos Classroom, a variant of Neos with the UI optimized for education running natively on the Oculus Quest, has also been utilized throughout the year at multiple secondary schools in the Czech Republic for remote education.

Overall 2020 has become the year where the events and community creations have crossed the point to where we can keep track of them all, let alone mention every single one deserving of a highlight, so we can only say thank you to everyone for this year. Thank you for your support, thank you for spreading the words about Neos and showing what is it capable of and thank you for your dedication to making Neos into a place full of life, creativity, joy, but also place for many to learn and grow or improve their professional work, particularly during this challenging year.

[h2]Overcoming challenges and plans for the future[/h2]
The growth of community this year hasn’t been without its challenges either. At the beginning of the year, we planned out many major features that we wanted to work on, but only some of them got prioritized, particularly the UI and UX. While all of them still remain on the roadmap, we needed to make some adjustments on how we prioritize and communicate features.

The UI update was a particularly difficult one, including on a personal level. Changing the fundamental ways of how everyone interacts with Neos brought a lot of emotion and conflicting opinions into the process, which was repeated several times as we replaced one part of the UI after another.

While the feedback and ideas were welcome and helped shape and improve the new UI significantly, the emotion and continuous pressure have taken their emotional toll. It also clashed with an effort to replace much of the UI quickly and focus on other tasks.

With no breaks in between or distractions for months this has paradoxically caused the process to take longer than it could’ve. The UI itself wasn’t the only challenge however, but rather an indication of a larger issue.

Back in 2019 the community was still small enough that any change was generally positive and most issues could be resolved quickly, but with growing numbers of users this became impossible.

With more users the variety of opinions and preferences on many of the changes increased. This led to a number of feature/change requests that couldn't all be resolved, or that would even be mutually exclusive. I'd also get more and more messages, spending a few hours almost every day just replying to people and resolving their issues.

Navigating this has become challenging, as any decision would still leave a group of people unhappy. I’ve had to start saying no to certain requests too, as they weren’t feasible, would cause too many problems or would clash with other features.

For me personally this was particularly difficult, as I always strive to ensure everyone’s happy and not being able to prevent or resolve all the resulting negativity even by spending all my time working had a compounding effect over the course of the year.

Adding to that, certain major and long awaited features, like the physics engine upgrade and many optimizations depending on it (either directly or indirectly through a planned workflow) have hit unexpected roadblocks (in case of physics, a bug in the JIT compiler), making the emotional drain worse.

As the support and community grew, I’ve pushed myself out of the equation when deciding on what to prioritize, trying to focus on what the community wants and needs and what we need for the project to grow, thinking that it would let us achieve the important milestones faster.

As an end result, I’ve found it harder and harder to work throughout the year. Making it more difficult to focus, particularly on more complex features and issues that I’ve wanted to address for a while (e.g. the full body hips fix) and making it more difficult to generally stay positive and creative.

As the pressure got worse, I constantly felt that I’m doing everything wrong and negativity dominated my every day. I had become afraid to talk about things publicly, worried they would be nitpicked, and turned into long arguments, responded to with passive aggression or used against later, even when I just shared some progress update, some behind the scenes details on what I was working on or the status of some feature.

I love Neos and the community too much for something like that to ever make me stop, so I kept going despite that, but I’ve learned that this approach doesn’t make the work go faster. Instead the opposite occurred. As this mental state ended up paralyzing my ability to make decisions or take actions. It would leave me staring blankly at my notes, or the code when pushing myself to work.

I would still try to move as fast as I could, but would end up working on issues and features that were not as complex had as few complications as possible, and the lowest potential of a negative reception. This was an important lesson for me and something I'm having to learn to deal with, as I focus on ramping up my efficiency again to make it easier to focus on the harder problems.

For the year ahead, we will instead switch back to the approach we took before to maintain better efficiency and keep the project moving faster. Instead of working on a single big thing for months uninterrupted, trying to get them to perfection based on the feedback and reports, you’ll see us switch between different priorities more.

That way we’ll advance different aspects of the platform bit by bit, rather than focusing on a single one. While it might take longer for any individual feature to get to its polished state, overall it will help maintain development momentum and keep things fresh and fun, allowing us to polish the features with a new perspective, rather than exhaustion.

You will also see more features implemented and bugs fixes that weren’t particularly high priority, but were easy enough to handle or particularly fun to work on. This was previously part of my process and I’ve slowly started including it again over the past few months, because it helps me things mentally and builds momentum to tackle the more difficult ones needed by the community.

Over the course of the year we have also expanded our team and delegated more responsibilities, particularly with moderation, quality control (handling bug reports, feature requests and so on) and shifted towards GitHub and more formal/efficient methods of communication.

Our team has helped me tremendously over the course of the year, taking care of different tasks and responsibilities and redirecting a lot of the negativity away from me, so I can focus more on the core development. They also helped advance the project on different fronts and helped collect feedback and bug reports from the growing community.

This transition caused some troubles with public communication though, as I was still being overwhelmed and the team searched for ways to shield me from a lot of the stress. As time goes and we give these things more structure, the process will become smoother.

[h3]Making sure your feedback is heard[/h3]
As the growth continues, we will be leaning more on those formal methods to keep the process manageable and make sure that as many people as possible get their concerns addressed. We hope that you’ll help us out with this process, whether by simply voting on the issues relevant to you on GitHub, providing proper structured feedback or teaching other users how to best share their own concerns and suggestions.

We won’t be able to address every single feedback of concern, so making sure to properly prioritize the ones that are affecting many users, this will continue to become more important. Using search functionalities and keeping up with the channels we put in place will also be more necessary as same questions get repeated more and more.

By upvoting issues on GitHub that you feel are important and encouraging users dealing with the same issue or wanting the same feature you can help us with this process and help ensure we focus on things that matter to the community.

If you’re creating a new issue yourself, following the instructions and filling out all the information in a clean and concise way will help improve its chances of being addressed sooner, compared to issues that are missing information, are too vague or difficult to read and process. The extra few minutes you put into your issue can save hours, even days of work on our end.

While we also understand the passion or how frustrating some things can be, we appreciate when those emotions are kept outside of the discussion. This helps keep the focus purely on the issue and prevent unnecessary stress. We’re humans too and when things are kept polite and positive, we work faster and better when we’re in it together!

Eventually we’d like to integrate the issue tracker fully into Neos itself, making it easier for users to report bugs or request features, without having to register another account and use external websites, but for the time being GitHub is going to be the primary point for those resources.

But above all, please realize that we’re not machines. We might be pushing lots of builds out, but we’re still humans and there's a limit to how much we can do and we’ll make some mistakes too. Work with us to make our job easier. Being passive aggressive, rude or angry doesn’t help anyone and only makes dealing with the issues harder and slower. Even worse, over time it results in burnout, which can push the features you care about by several months.

We’d like to keep sharing more things on development with you publicly, but that means sharing the bumps and warts that are a natural part of the process. If those cause problems and draw away the attention from the development, we’ll have to keep them internal until we’re sure that there’s no risk of shuffling priorities or pushing something for later.

We would also love to hang out with the community as regular users more and just have fun as users of the platform, rather than talk about issues and answer questions most of the time. Using the proper channels for those goes a long way (big thanks for everyone who does, we really appreciate it!) and makes it easier for us to pop up in public more without getting overwhelmed.

Most importantly our goal is to keep the development fun and engaging, to keep the ball rolling and deliver new features to you faster. Sometimes you’ll see certain things prioritized that might not be the most urgent for the community, but that help us shake up things and keep the overall pace.The Universe was born from Chaos, so it should only make sense that the Metaverse comes from a little bit too.



I appreciate everyone’s support and kindness throughout this year, they have helped tremendously when dealing with the negative parts and I hope that even the less urgent additions will keep making your Neos experience better every day and bring more fun things to play with.

[h3]Prioritizing Desktop Mode[/h3]
After a lot of debates with the team, and considering the weight the decision has on the community and ourselves, we have decided to prioritize proper desktop support as the next major feature. There are several compelling reasons to prioritize it right now, at least for the first phase of it, despite our general focus on VR first.

When designing Neos, we’re always thinking on how to make the interactions natural for VR and take full advantage of it and we’re taking the same approach with the desktop mode as well. It will be built to utilize the same subsystems that were built for VR, but make them easy to use with keyboard and mouse (or a gamepad) and unify the development for both modes going forward.

Proper desktop support has been one of the most requested major features for a while, with many people without VR headsets wanting to play, numerous users even leaving bad reviews due to the lacking support.

For a while we have ignored these requests and focused solely on VR, but with the growth of the VR community and many new users coming over and making their home in Neos, more and more users ended up moving back to other platforms, or not making the switch in the first place, because they would have to leave their non-VR friends behind.

Making the desktop experience a lot more comfortable and featured will prevent this splitting of mixed friend groups and help the growth of the VR side as well. Lack of desktop support in Neos has been a problem for event organizers as well, as event-goers are often mixed desktop/VR groups as well.

Having the desktop mode in place before other major features will help as well, particularly the Neos Store (marketplace). Once unveiled, this can bring a lot of attention from investors and buyers coming from other platforms. Requiring VR to fully interact could be a factor that puts a lot of them off, which could end up hurting the creators selling their items as well as the Neos Credits ICO and anyone holding NCR as a result.

With desktop mode already in place, all other major additions and improvements will potentially impact a much broader audience, bringing even more users to the platform.

We have already started designing the architectural changes and additions to support desktop play, unifying Neos’ underlying systems. Our current screen mode is only a quickly implemented hack, that (poorly) re-implements a few of the core systems.

By building the desktop support properly on the same subsystems that VR uses, we’ll not only make it more functional, but also eliminate a lot of recurring problems and issues (how many times have you heard the response “Desktop mode isn’t currently supported”?) and allow us to develop both desktop and VR as one going forward.

As a nice bonus, it will help with debugging as well, as some of the subsystems aren’t currently emulated or difficult to use (e.g. locomotion) and require me to jump into VR headset to test every change. The workflow will improve for mobile builds as well, allowing to quickly test mobile builds on a regular phone, without having to jump into the Quest and wait for it to boot up.

One more crucial reason why desktop is being prioritized is also a bit of a personal one. With the momentum on optimizations lost due to the unexpected roadblock and waiting on 3rd party fixes, desktop mode presents a very safe choice, as it has virtually no risk of dependencies and unexpected roadblocks, affecting only Neos’ own codebase on which we have full control. Working on this will allow to rebuild some of the momentum, which will then transfer to other major features as well.

[h3]What’s planned for desktop mode?[/h3]
As mentioned above, building the proper desktop mode on the same subsystems will help to unify parts of the codebase and make it consistent with how playing in VR behaves as well. In practice this means that things that currently don’t work or are very buggy will be now functional like locomotion modules (e.g. being able to walk and jump around), avatar behaviors, tool/gadget interactions or properly respecting the permission system.

The crucial part is making those interactions easy to use. We have a few subsystems planned for this, which will use a combination of the IK with the new capabilities of the interaction system from the UI overhaul to achieve this. For example when equipping a gun, the system will make your character automatically point at the same point that your mouse cursor is.

Some very early notes on the Desktop support

We plan on supporting both first person and third person mode as well, to allow for a variety of play and interaction, with third person supporting free-cam for easy editing as well. If you have a VR headset, the system will also support instantly switching between the two as well, rather than having to restart Neos, which will not only benefit the creative workflow, but let you stay in a world and talk with people if you need to take your headset off for a while.

Building out the basic interaction methods and the first and third person modes is our immediate goal, as this will allow desktop users to have the (nearly) same capabilities as VR users do, unify the system for content creators, removing the needs for any hacks for screen users and make the usage a lot more comfortable.

However our plans go beyond that, allowing for things like splitting up the viewport or pinning in-world UI’s to the screen (e.g. inspectors) for easy and quick access. We’d like to integrate face tracking solutions as well, to give the avatars a lot more expressivity.

Some other features will become more relevant/viable as well, such as input binding system and support for gamepads. Whether those extra features will be implemented now or later in the future is currently up in the air, we might prioritize different features, like the physics engine or more UI to mix things up, but hopefully it gives you a better idea of what our long term goals are.

Regardless the initial implementation is the most crucial, as it will make Neos significantly more accessible to users and simplify the development going forward, not just for us, but also for anyone building content in Neos.

[h3]Mentor Team[/h3]
In line with the moderation team, we’re also planning to unveil a team of mentors - community members who are interested in helping out others in official capacity. Mentors will be part of the moderation team. Turk has been appointed to lead the mentor section by Veer and will be responsible for organizing other mentors.



Helping out new users and each other is at the core of our community and something that many members already participate in (and we hope continue to participate even outside of the Mentor program) and we feel that it is a good way to help add some level of organization to the process for those who are interested.

There will be more information on the mentor team, so keep an eye out on our weekly updates if you’re interested to learn more.

[h3]More UI work, more optimizations, physics, Neos store[/h3]
Following the desktop mode, we’ll be interweaving work on several major and minor features, depending on what’s most efficient at the time. There are a few main priorities that we’ll be choosing from.

We plan on reworking more of the UI, most importantly the inventory, file browser and contacts and adding the workshop, allowing for easy sharing and searching for items, tools, avatars and any other creations in Neos, providing a proper solution instead of public shared folders. This will help new users get started too, as it’ll make it much easier to find an avatar.

With the JIT compiler bug in Unity fix recently on the way, the upgrade to BEPUv2 will be unblocked and swapping the physics engine and implementing heavy optimizations built with some of its functionality is going to be back on the menu. This will get the ball rolling for other related optimizations as well, making Neos run smoother as we go.

Not only that, but adding full support for rigid body physics will be on the top of the list as well and will happen when possible, bringing a whole new level of creativity.

Recently another blocking bug was fixed (good timing with the beginning of the new year!) as well in the libVLC library, which will allow us to continue with its integration and replace the aging UMP, improving reliability and some functionality.

Another crucial feature will be the Neos store (marketplace), giving everyone a way to sell their creations and make a living by building content in (or for) Neos. The Neos store isn’t technically a feature on itself, but rather a combination of two different features - the workshop mentioned above and the license / object ID system.

The latter will allow for marking any objects and assets with authorship and ownership information, controlling their distribution and use and allowing users to purchase a license to use the object in their own sessions.

Submitting these items to the workshop will allow them to be browsed or searched for resulting in a functional store. The benefit of this approach is that content can be bought by organically discovering it in a world or session - for example another user playing with a gadget in a session.

While those are our next main goals, they will be likely interweaved with other changes as well and adjustments based on the current needs of the project, community and the team. Our goal is to strike a good balance and keep the momentum going, so we can get to other major additions on our roadmap as soon as possible as well.

[h2]To the year ahead[/h2]

Neos is a long term project for us and we believe that the metaverse needs to be built properly, without taking shortcuts that would compromise and stall the development at some point in the future. We’re grateful that you, our community also understand and support that goal and that we can share this journey together.

The years of work on this project had many ups and downs. We’ve seen projects with teams and funding magnitudes of order larger than ours unveiling their own stabs at the metaverse while we were still laying out the underlying foundations for the engine powering ours. Now while many of those projects are gone or defunct, we’re continuing to grow, exceeding the daily user bases they ever had, still with only a fraction of the resources.

All of that is in big parts thanks to you and your support, passion and hard effort in building the metaverse with us, contributing your thoughts, creations, tools, tutorials and time organizing events, helping new users and building incredible projects to show what the platform is already capable of and what it can be.

The joy and level of creativity keeps amazing us more with each passing day and we can’t even imagine how much more will come as the community and our feature-set keeps growing. We want to make Neos as awesome as you make Neos special. Thank you for being with us and thank you for supporting this project!



Building the metaverse bonfire with the community - Neos in 2020 in review (1/2)

Hello everyone and welcome to our third yearly update! We hope everyone had a great new year and enjoyed the festivities, whether in Neos or elsewhere.

Watching the New Year fireworks as the number of concurrent users kept climbing towards our all-time record.

With 2020 over, it’s a good time to take a look back at the last year and see where we’ll be going for this one. With the global pandemic, it was a challenging year for everyone, but also one where many people came together to work through the new challenges and we’re happy that our platform could be part of this.

The 2018 year, when we officially released Steam in May, was signified by a spark, a metaphor for everyone who joined and supported the platform in its infancy, when it was just a pile of code with no active community. The first few people have sparked what’s now the core of our community and helped us shape some crucial parts of the platform to make it more interesting to more users.

The following year 2019 that spark grew into a flame, with the community growing and bringing more users as well as Neos getting more crucial features, improving avatar expressivity, supporting a wide variety of hardware, building crucial frameworks to build other features on top of and improving general usability of Neos. It was a year that really set the ball rolling.

Over 2020 we saw the fruits of that development, as the community grew in size over the course of the year. Our main focus on making Neos more accessible to new users by redesigning the UI and UX, fixing and tweaking many interactions to remove common frustrations and overall improving accessibility and power of Neos.

With every improvement we saw the community grow more and more users become regulars. The worlds, gadgets, tools and other content kept getting more elaborate and clever as the time went, bringing out more of the creative freedom that Neos offers and showing it to wider audiences on many platforms.

Our community has also come together to support development of Neos, by helping out with onboarding new users, resolving issues, reporting issues, bugs and feature requests, translating the interface, documenting everything on the Wiki and more.

The financial support of Patreon and our ICO also grew significantly, reaching a very important milestone. During 2019 we were still losing money every month and using up our original seed investment. It was a particularly challenging period, as we weren’t sure how much longer our runway would last and we were trying to conserve as many resources as possible.

Thanks for the overwhelming support in 2020, we have finally become self sufficient. Thanks to everyone’s support, we no longer have to worry whether we are going to survive, but we can focus more on how we’re going to grow, both the platform, the community and our team.

Because of this, we have decided to use bonfire as the symbol to represent 2020, with every user who registered during this year getting it as their badge. The bonfire symbolizes the community coming together, with everyone putting a log into the fire, helping it grow and sustain itself.



There’s a bit of a silly interpretation of the symbolism as well. If you’ve ever submitted a bug report, you might know we often ask for log files, or “logs” for short to help diagnose the issue. And there are also “logs” in the bonfire… You get the point! ;)

The year wasn’t without its challenges for us either. We didn’t get to implement a lot of things that we wanted to this year, while we implemented some others that we didn’t even think of last year. Many of the issues became more challenging than expected and managing the growth of the community and rising number of bug reports and feature requests put a wrench in a few things a few times as well.

But regardless we keep on moving forward, learning from the challenges and our mistakes and doing what we can to improve the platform every day. We have a lot planned for the next year and the following years, but we’re also prepared to adapt based on the changing needs of the community and our team to keep the project going forward. Let’s have a look at some of the highlights of this year.

[h2]Making Neos more accessible and powerful[/h2]
One of the major goals we set at the beginning of 2020 was improving Neos’ accessibility, making it easier to use and get started with as well as make the time spent more comfortable. At the same time we wanted to do this without sacrificing its creative power, so we have opted for an approach that gives the users a lot of power to customize their experience not only for themselves, but also for other users.

[h3]Optimizations[/h3]
Lag is one of the major factors that limits the size of the sessions and makes the stay less comfortable. Near the beginning of the year we have replaced the Unity UI framework with our own, written completely from scratch, dubbed UIX, a portmanteau of “UI” and “UX” and reference to our subsystems ending with “X” (e.g. LogiX, BaseX, CodeX…).

UIX is now responsible for rendering all of the classical 2D UI in Neos with unprecedented performance. It is highly asynchronous, multithreaded, efficient and extensible. Where even a simple single inspector window would drastically drop the framerate for everyone, you can now have dozens of complex inspector windows open without a major performance impact.

This has drastically helped out for collaborative sessions, with multiple users working on projects in the same world or some users hanging out with a few others editing. Realtime collaboration is key to creative resonance and building a lot of the amazing content that we have seen over the past year.

Pushing the limit of user count after some optimizations

UI’s for creators aren’t the only ones that benefited from our own framework. The inventory, contacts list, world browser and all other user facing interfaces benefit not only from the performance speedup, but also from the flexibility and full control when reworking the interfaces to be easier to use.

We have optimized other parts of the engine as well, improving performance in sessions with many users. There is still much to do in that area and a lot of headroom to optimize as well, but we’re happy that the typical sessions could now reach 15-20 users without optimized avatars and in come cases over 30 with optimized ones.

[h3]Overhauling the UI and UX[/h3]
A big part of last year was reworking core interfaces and interactions of Neos to make Neos less frustrating to new users, while at the same time making it more powerful and extensible to the experienced users. We reworked much of the UI, replacing the belt menu with dash, introducing a new unified world browser and redesigned interactions with tools, gadgets, contextual menus and other actions in Neos.



The new UI system, dubbed Radiant UI, also laid the foundations to make the UI more modular and extensible. The behavior of the UI was split into modular pieces, rather than using monolithic components. This allows anyone to use those as building blocks for their own versions and extensions.

We introduced a Facet system, a method for swapping and extending pieces of UI as modular pieces that can be arranged into grids on the dash. Even though the system still needs more work to reach its full potential, we’ve already seen a lot of cool customized dashes and creative facets that extend Neos’ functionality far beyond the basics, from custom avatar cameras, Discord viewers to utilities or webcomic viewers.

[previewyoutube][/previewyoutube]

Giving the power to creators and the community to shape the metaverse is one of our core philosophies and something we believe will be even more important once we introduce a workshop/marketplace, allowing anyone to share their own pieces of UI with everyone. Metaverse is a place for everyone and we want everyone to have the same power on shaping the virtual world to their needs and preferences.



However making sure that the base UI that everyone starts with is easy to use is important as well and we have made considerable progress on this front. Usability was one of major problems for Neos in 2019 and with the community feedback we’ve been able to reduce the initial friction significantly, resulting in higher user retention and fewer frustrations. There are still many other parts that we want to improve in the coming year, pushing the barrier of entry even lower.

[h3]New Metaverse Training Center and setup guide[/h3]
An important part of reducing the initial friction was also a redesigned version of the Metaverse Training Center as well as a new official setup guide. Those combined help ensure new users have the basics setup properly (their microphone, language, basic settings, user account) and learn the basic controls in a controlled manner.



This should make the job easier for community members who have been hard at work helping out new users and building community tutorials before the official one rolled out.

We have redesigned the MTC environment to be more pleasant and inviting and run better as well, utilizing a lot of the new features we have added over the year, like dynamic variables or collider user trackers for easy culling to improve performance.

We will continue building more parts with the new style to help cover other common issues, like finding and setting up avatars or using the streamer camera.

[h3]Eye and lip tracking, haptic vests and other hardware[/h3]
Thanks to the flexibility of Neos’ engine, we can easily add support for a wide variety of hardware in a short timeframe, bringing Neos to the cutting edge of VR hardware support. Over the course of 2020 Neos has gotten native support for a wide variety of different accessories to enhance the VR experience.

Following the eye tracking support, we have integrated the lip tracker module prototype by HTC, allowing for much wider avatar expressivity, by tracking fine motions of your lips, jaw and cheeks. Neos can map those directly to the avatar if it has appropriate blend shapes or trigger specific expressions for any other avatars.

[previewyoutube][/previewyoutube]

Another notable addition was a new haptic framework system, with full native support for bHaptics vest and the upcoming OWO Game suit. Any full body avatar is automatically injected with haptic sampling points and haptic volumes, so for avatar-to-avatar interaction all you have to do is to put the suit on, pair it and start Neos and you’ll be able to feel touches from other people out of the box.

Content creators can use the HapticVolume component to create a range of sensations and enhance their content. The system allows for a very fine-grained control over the haptic feedback, creating a range of sensations and intensities. For example adding a haptic volume with noise to a hot tub in a map will make any users wearing haptic devices feel the bubbles on the submerged parts of their virtual body.

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

The system also creates a layer of abstraction, future proofing the content and making sure it works with any new hardware that comes to market as well without having to update the content itself.

We added support for some other hardware as well, such as the Etee controllers, Pico Neo 2 and the new HP Reverb G2, exposing the raw controller data through LogiX, giving everyone full control to build their own interactivity in-game.

[h3]Websockets, Dynamic Variables, Reflection Probes, revamped audio system, file share and more[/h3]
Related to the hardware support, some other features added to the engine have opened ways for the community to add their own support. LogiX now has WebSocket support, allowing for easy data communication with external tools and code.

One of the common ways we’ve seen this used is to create custom integrations with different types of hardware. Since its addition, there have been more and more users running around with things like heart rate monitors, not only just showing the pulse on their name badges, but letting other users feel it too via haptics by putting their hand near the chest.

Many other creations have used websockets as well, for anything from feeding in statistics and other information (like weather) from the web, doing automatic voice translation to training AI and doing research.

Another of the notable additions were dynamic variable spaces. Those greatly simplified dynamically sharing and linking data in worlds and creating highly modular systems with LogiX. This made creating games, tools, interactive items much easier, allowing to increase the complexity and scope of projects in Neos.

To give creators the ability to make their worlds look visually nicer, we have also implemented reflection probes, with underlying support in the asset variant system and native GPU uploads. Reflection probes can be easily created, edited and baked completely in-game, making it easy to set them up and immediately see their effect on the environment, without dependency on external software.



We have also reworked Neos' audio system, removing another of the few remaining old ugly parts of the codebase. Not only has this made the code cleaner and easier to build on, but it has significantly improved audio playback performance, getting rid of stutters when playing audio effects and overall CPU load and brought many new features, such as voice message support for the in-game chat, microphone tool or ability to adjust pitch/speed of audio playback dynamically with our in-game scripting or do basic audio editing (trimming, normalizing, looping...) without ever leaving VR.

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

Many of the additions and tweaks were done to improve the generally quality of life and workflow in Neos as well. For example adding the Contacts+ session mode based on community demand, adding silence option that lets you deal with disruptive users in your sessions, banning users from only specific worlds and in general hardening security and improving the behaviors.



Notably we have added virtual desktop access, allowing you to interact with your desktop right from the Neos dash and even build your own tools with it. Despite many powerful tools, interoperability with external software like Blender, Photoshop, Audacity and many more is still an important part of the creation process and being able to use them from within Neos has helped boost the workflow.



Another useful feature is file share, built on top of Neos' flexible asset synchronization system. This lets you bring any file into the world and simply hand it to another user to share it with them or save it as part of the world. This improved workflow in many cases, allowing to very easily exchange work-in-progress .blend files when collaborating in a world or publishing Python scripts for the websocket applications with the world. We've even seen some users use it to backup some of their data.



These are just a few of the additions that happened over the year, from hundreds of builds, with thousands of additions, tweaks and bugfixes. It is difficult to sum up everything in one neat article, but we hope that the overall improvement thanks to both the small and big changes has helped everyone in some way and pushed the platform closer to maturity.

[h2]Growth of the community and content[/h2]
Neos itself wasn’t the only thing that grew over the past year, perhaps more importantly the community itself and the content you have produced has as well, breathing an actual life into the technological improvements.

At the beginning of the year the community was still quite small and Neos relatively empty, with only a few people online at certain times of the day. The peak number of users was just around 30-40 each day.

By the end of the year the peak number of concurrent users is over 100 (averaging around 120-130 in December) on pretty much every day, with active public sessions open consistently at any time of the day, with around 600 unique users on throughout the course of every day.

Just as the year was ending, we broke our record, reaching 360 concurrent users on Steam (and over 420 according to our own internal metrics, although those are less conservative and include about two dozen headless accounts), ending the year with a bang.

Peak concurrent users and daily active users over the last year

Same statistics since May 4th 2018 (Neos VR beta release on Steam) showing overall growth

We don’t expect this spike to be the daily norm for some time, but looking at the overall trend of the growth over the whole history it’s only a question of time before we reach those numbers on a regular basis.

Despite our cloud services handling the sudden triple/quadruple increase in load without much of a problem, this sort of natural gradual growth is much healthier for the platform and allows us to adapt to the challenges as they come.

[h3]Becoming sustainable[/h3]
Our user base wasn’t the only thing to grow in numbers, our Patreon and ICO support did noticeably as well, currently sitting at $11.5K per month, with ICO seeing some big investments as well.

Thanks to this overwhelming support we have become financially self-sufficient, transitioning away from a period of time where we were constantly worrying whether or not we’ll survive and how much longer our runway (original seed investment) will last.

Patreon growth over the course of Neos' existence. Graph from graphtreon.com

This has been a key point in the development of this platform, as it has proven that it’s sustainable and something we can keep devoting our full attention to, without looking to other projects to keep the lights (and the cloud services) on.

Not only that, but we could also grow our team to handle different aspects of development and community support. While we’re not at the stage where we can support the entire team full-time yet, the help and taking on responsibilities in different areas has freed a lot of my (Frooxius) time to focus on the development itself, while at the same time advancing Neos on different fronts, with the new MTC, official content, support and more.

[h3]Moderation team and self-moderation tools[/h3]
With the growth of the community and more people coming to Neos every day also come some conflicts, drama and even occasionally some bad actors looking to disrupt everyone’s experience.

To handle such cases, we have started putting together a moderation team, whose responsibility is to mediate some of these conflicts, explain how to use self-moderation tools in Neos and in worst cases ban users to prevent further disruption.



We have opted for a more granular approach. We understand that platforms like Neos are socialization outlets for many and work environments for some as well and getting blocked from such platforms can have devastating effects on someone, even if such action is warranted.

As such we have added a few types of bans that can be applied to users. Oftentimes a “spectator ban” which sets any user to Spectator in any session they visit helps prevent any disruptive behavior, while still allowing the user to communicate with others and gives the host of the session the choice to trust them with permissions.

In more extreme cases (e.g. repeatedly posting inappropriate materials in public) a “public ban” would be applied, preventing the user from joining any sessions and any of their sessions showing in public, but still allows them to invite their friends to their own sessions.

Fortunately there were only a handful of cases where those measures had to be applied and most cases can be resolved by talking to the users and mediation. One of our philosophies is to also give as much control to individual users over their experience as possible as well in form of self moderation tools, with the moderation team serving as a buffer before those are implemented and for cases that aren’t generalized well.

Earlier this year we started a big discussion on some of these topics on GitHub, particularly user blocking functionality, which sparked a lot of passionate discussion on how this should be implemented and approached, but in the end with the input from a Patreon poll we have not prioritized the actual implementation yet, as it’s not in a crucial yet to be put above other features and improvements.

It is something that we definitely anticipate to become more urgent as the community grows and we hope that the community will let us know when it’s needed, either directly on GitHub or Discord or through our moderation team.

[h3]Creator Jam[/h3]
Perhaps one of the most prominent and long going community projects is the Creator Jam, hosted by Medra. It is a weekly event, where every Sunday creators both old and new come together and create based on a set theme.

It is a great way for new users to learn about the creative powers of Neos and meet some of the community. It’s also a great excuse for seasoned members to get creative with others and work on things they normally wouldn’t have.

The Creator Jam has given rise to some of the most creative tools, gadges, worlds and even some games over this year and continues to do so, as it has reached its 84th consecutive week, running consistently for year and half at this point, a very impressive feat by Medra and other community members any means.

If you’d like to know more about Creator Jam and participate in one of the jams, whether just as an observer or creator, check out the official Discord server. You can also check out the trailer released earlier this year.

[previewyoutube][/previewyoutube]

[h3]Metamovie at 77th Venice International Film Festival[/h3]
Another of the notable projects that have been in development for a while on our platform is the Metamovie project by Jason Moore. It is an interactive film with live actors, using environments and interactions built collaboratively inside of Neos VR.

The movie stars you, the audience, as the protagonists, with one VIP character driving the story and interacting with the actors and a group of eyebots that float around and can help notify the VIP of some key parts of the environment and clues.

[previewyoutube][/previewyoutube]

A working version of the experience was featured at the 77th Venice International Film Festival earlier this year and showcased to a wide audience across the world. Many of the Neos community have come together to help with the test runs and make sure the experience is as polished as possible for the festival.

We’re excited to see where this project goes as it moves towards its completion, offering a novel way for audiences to experience storytelling and utilize the power of the metaverse to do it. We are proud that Neos can serve projects like this, not only for their final form, but also for their production, slashing down the iteration time and offering more flexibility and interactivity.

[h3]DelVR - Dungeons and Dragons in VR[/h3]
One of the most prominent and elaborate projects that appeared on Neos this year is DelVR, a project with goal to bring D&D experience into virtual reality. It features a beautiful medieval world with highgly interactive tables for quickly building environments and other tools to enhance the gameplay sessions.

Screenshot from the DelVR world. Also shows a reflection probe in a world, as well as lightsource with starmap cookie using the cubemap support that was added for the reflection probes.

Embody your character, see the world from their eyes as you explore environments created intuitively and seamlessly by your gamemaster. Don't just play tabletop, Live in it.

Currently, DelVR seeks to bring the D&D ( Dungeons & Dragons) tabletop board game experience into virtual reality, but these tools enable a much broader scope of creativity, with gamemasters and players alike being able to import their own custom content with ease through the Neos VR platform.


This project is headed by ChrisWarner and ToMo, who have been working on it for about a year. Whether you played D&D before or not, it's definitely worth to checking out. Building out fully fledged games and interactive worlds like this has been one of the things we dreamed of when designing Neos and seeing it come to fruition with this level of interactivity and clever use of Neos' features and mechanics has been very satisfying to watch.

[previewyoutube][/previewyoutube]
One of the official DelVR tutorials. Check out their YouTube channel for more!

We hope that we'll see more projects like this to grow on our platform and bring lots of fun to people from all kinds of backgrounds and interests.

[h3]Cross Universe[/h3]
Another notable project is the Cross Universe, a Japanese trading card game that has become quite popular in Neos. The mechanics of the game were implemented into an interactive table and large set of cards, some of them enhanced with 3D models that pop up whenever the card is placed on the board.

Earlier this year the Japanese community held an international tournament, with many of the community members participating. We even had the honor of the creator of the game visit and try it out as well!

If you'd like to learn more about the game, check out this community made tutorial by Enkiko:
[previewyoutube][/previewyoutube]

[h3]Metaverse Maker Contest[/h3]
One of the most prominent events of this year was the Metaverse Maker Contest, organized by the Creator Jam and several community members and sponsors. During this month long competition community members have worked hard to create content in 3 different categories - worlds, avatars and tools/other.

Announcement post: https://store.steampowered.com/news/app/740250/view/2885077187674903468

The amount of content created and its quality and creativity has absolutely blown us away, with about 201 participants and 81 submissions. This made the judging process particularly hard, it took myself (as one of the judges) 17 hours of raw time to go through everything.

https://www.youtube.com/watch?v=HAfCwLqLI_E
https://www.youtube.com/watch?v=i-WXkgf3pus
Raw footage of going through all MMC entries

Your efforts in this competition have pushed the level of creativity in Neos to a whole new level, creating fully fledged games, narrative experiences, some of the most beautiful and interactive worlds we’ve seen, avatar creation tools, interactive gadgets and even more unusual stuff like procedural plant growing algorithms (using L-systems), interactive Brainfuck language interpreter or even a Neos-themed rap song.

There is too much to sum up in this article, so I’d definitely recommend checking out the original announcement post. We’re really proud of our community and the level of dedication and creativity you have showcased in this competition.

We’re thankful for all the sponsors as well, who have contributed to the prize pool, resulting in over $2000 worth of prizes and of course Medra and other contributors for organizing this awesome event.

Compared to our official competition NNC in 2019, the MMC was bigger and better in every way and as the community continues to grow, we can’t even imagine what kind of stuff we’ll see in 2021. There are exciting times ahead!

Continue reading part 2 here

2021.1.3.1256 - Hotfix for crashes when attaching certain generic components

Quick hotfix for the blank UI / crashes when attaching certain components. Sorry for the inconvenience!

Compatible with last two previous builds, but update recommended as soon as possible.

[h2]Bugfixes:[/h2]
- Fixed generic type validation producing incorrect results for certain generic components, causing the component attaching UI to become blank and world crashes in some cases. (reported by @Polaris | Goose and @Ukilop )

2021.1.3.612 - Bonfire badge for users registered in 2020, tweaks and fixes

Sorry for small build! Pushing this now so the 2020 badge doesn't get delayed by other stuff. A few other fixes and tweaks as well.

Compatible with previous build.



[h2]New Features:[/h2]
- Added bonfire badge for users registered in 2020 (badge created by @Coffee | Programmer)
- When the user is away from the headset, EyeManager will now close their eyes

[h2]Tweaks:[/h2]
- Merged Czech locale additions by @rampa_3 (UTC +1, DST UTC +2)
- Merged Japanese, Esperanto and Chinese locale additions by @Melnus
- Merged Korean locale additions and tweaks by @MirPASEC
- Merged French locale additions and fixes by @brodokk
- Merged Japanese locale fixes by kazu0617

[h2]Bugfixes:[/h2]
- Added component type validity checks at multiple levels, to prevent cases of attaching invalid genric types from causing a session crash (based on report by @badhaloninja)
- Fixed UIX Mask getting stuck in visible state after ShowMaskGraphic is checked and then unchecked (reported by @ProbablePrime)
- Fixed tool lasers not working when lasers are disabled (reported by @Electronus)
- Fixed exceptions from cast nodes when casting values to types that won't fit the incoming value
-- When casting value from a wider type, make sure you know that the value will fit in the target value, otherwise you'll get invalid value
-- When casting decimal values to integers, the integer value will be clamped

2020.12.30.1285 - Heavy duplicate optimization, proximity sensor, tweaks, fixes

Hello everyone! I hope everyone had a great holidays. I've accumulated a bunch of new additions, tweaks, optimizations and important bugfixes, so here's a new build!

You can now rightclick on the virtual desktop in the dash! There's new "legacy input" mode as well, which will make the virtual keyboard work with some apps like Blender.

Neos now also uses the proximity sensor in your headset to tell if you're wearing it or not, which is exposed through LogiX as well so you can make lots of cool effects for your avatar.

There are some optimizations in this build as well, particularly for duplicating objects, which is now significantly faster (especially with really complex objects). This doesn't help only when you manually duplicate things, but also for any interactive items that duplicate templates for their function.

There are some other tweaks and bugfixes too. Lasers should behave a bit better now in some scenarios and I dug down into one elusive bug that caused the UI to freeze, particularly when using Japanese locale.

[h2]New Features:[/h2]
- You can now right click in the virtual desktop on the dash using the secondary action (Joystick/Touchpad click)
- Neos now tracks if the user is present in the headset (using proximity sensor if available) and uses this status for user presence (requested by @3x1t_5tyl3, @Shifty | Quality Control Lead, @Hayden and @H3BO3)
-- IsPresent status/node now indicates if they're both present in the world and in the headset (existing node instances are autoconverted to IsPresentInWorld)
-- Added IsPresentInWorld and IsPresentInHeadset nodes to allow querying individual states
-- If not supported by hardware or heuristics (by detecting movement) it IsPresentInHeadset will always be True
-- Currently AFK Kick still uses only the IsPresentInWorld status, but this can be changed (let me know what you'd prefer for default, will be a setting later)
-- Your Online status is now automatically set to Away if you take your headset off without having to wait for the inactivity timer (only if set to Online though, Busy/Invisible won't be affected)
- Added ExcludeActiveUser to AutoLookAtUser, which will never target the user under whose hierarchy it is placed when enabled (requested by @LeDrascol)
- Neos will now periodically refresh connected audio devices whenever the audio input device dialog is selected, hiding devices that were disconnected and adding any new devices that were connected in the meanwhile (requested by @LeDrascol)
- Added "Legacy Input" mode to the virtual desktop, which will send keyboard scan-codes rather than Unicode codes when typing to a desktop application (based on report by eduprimowl and @Enverex)
-- This will make typing work with certain applications that don't support modern Unicode text input on Windows (e.g. Blender)
-- I strongly discourage enabling this unless the app you're using at the moment really needs it, as you'll get odd behavior (the virtual keyboard keys performing a different action than they show and some keys not working), particularly when using different keyboard layouts in Windows
-- Using standard US keyboard layout in Windows is highly recommended when this is on

[h2]Optimizations[/h2]
- Heavily optimized Slot/Component duplication process, both in speed (CPU usage) and memory use (using pooling to avoid large new allocations with every duplication)
-- Duplicating particularly complex hierarchies (e.g. with complex LogiX setups) should now take fraction of the time and reduce performance degradation when done frequently
-- Note that this doesn't affect just manual duplication, but also any items that use duplication as part of their functionality (e.g. spawning projectiles)
- Optimized dependency and hierarchy lookups during the saving process, significantly reducing CPU usage (and some memory)
- Optimized DictionaryList (used internally) for single item storage, to prevent extra allocations when storing a single item
- Small optimizations when querying components of particular type

[h2]Tweaks:[/h2]
- Added extra rate limiting for certain queries on the cloud API to prevent performance degradation due to improper use of the API by 3rd parties
- Improved internal error handling for the Cloud API
- Removed deprecated baked-in support for Oculus without Touch controllers
- Removed deprecated support for Daydream, Cardboard, GearVR and Oculus Go headsets
- Contact list items now require lock in to press, preventing selection from happening when scrolling (requested by @Alex from Alaska)
- In world laser will no longer activate when it's disabled and there's an userspace item behind it (based on feedback by @AshtonSparx and @Shifty | Quality Control Lead)
- Laser length shown to other users won't be updated to a longer one, if the laser is fading out, eliminating cases where the laser briefly flashes in the world (based on feedback by @AshtonSparx and @Shifty | Quality Control Lead)
- Name badge now becomes semi-transparent when the user is away from their headset (based on feedback by @H3BO3, @Cyro, @Dante, @Turk, @ProbablePrime, @Ryuvi | Technical Artist, @ohzee, @Lewis Snow | Lead Audio Engineer in #testing)

- Merged Japanese, Esperanto and Chinese locale additions by @Melnus
- Merged Czech locale additions by @rampa_3 (UTC +1, DST UTC +2)
- Merged Korean locale additions by @LUA#6690
- Merged Spanish locale additions by @Ruzert
- Merged Japanese locale tweaks by @Aesc
- Fixed invalid Inventory tutorial string in the Polish locale

[h2]Bugfixes:[/h2]
- Fixed font glyph pinning getting stuck in some cases, when glyph atlas is invalidated while there are still glyphs scheduled to be rendered, causing text renderer or UI to become frozen (reported by @Aegis_Wolf | Art Director, with replication case found by @Shifty | Quality Control Lead)
-- This should also fix UI randomly freezing and crashing for users using the Japanese locale (or any others with a high glyph count) reported by @あむ(Rabbuttz) and @かず (please let me know if the issue still persists, I'm not 100% certain that this will resolve the crashes)
- Fixed ValueGraphRecorder having off by one error when assigning values, causing the the LineMesh graph to have visual artefact, showing the last value at the beginning (reported by @ProbablePrime)
- Fixed Undo system getting spammed with repeated undo steps for all users when trying to set a driven field (e.g. a color, as reported by @Hayden, @chemicalcrux, @Shifty | Quality Control Lead and @Cyro)
- Loged errors when formatting localized messages now include which locale code does the invalid message belong to
- Added logging for any errors in the save tasks when exiting Neos (e.g. saving settings)