Introducing UIX - new high-performance UI framework, UI overhaul coming next
Hello everyone!
We have a very exciting update this week, the technical phase of UI overhaul is now complete! I’m excited to introduce UIX, our new high-performance flexible UI framework that will power Neos’ UI for years to come.
And even though right now the UI still looks more or less the same (that will start changing very soon though), it brings massive performance improvements, significantly reducing lag with inspector, friends lists, inventories and other heavy UI’s open. Read more on it below!
Last week we also held a special stream discussing the future of Neos’ UI. Thank you everyone for your feedback, suggestions and ideas! With UIX complete, we’re now moving onto the second phase of UI overhaul to improve the ease of use and visual aesthetic of Neos and knowing what issues you have and the things you’d like to see in the future will help us with the design tremendously.
Don’t forget to join us for today’s livestream as well! Not only we’ll be talking and showcasing UIX, but more importantly the community creations from February! After all you’re all who gives this metaverse life.

[h2]Massive performance improvements for the UI[/h2]
One of the design goals of UIX was to significantly improve performance with complex UI’s in Neos, particularly inspectors. We have achieved this through a combination of design principles, that have provided orders of magnitude improvements.
The old UI system built with Unity UI would easily bring the framerate under 20-30 FPS opening a single scene root or avatar rig, but with UIX you can open dozens without affecting the framerate.
Similarly if you have accumulated a lot of friends in the Friends dialog, opening this would cause many people to freeze briefly and drop the framerate by dozens of FPS. Virtually all UI interfaces are now significantly more optimized, removing or reducing initial hitches and their continuous impact on framerate.
This makes Neos much more comfortable to use for everyone, allowing more users to easily edit inside for a world without hurting other people’s experience (and their own) and makes accessing and modifying complex components (e.g. DynamicBoneChain with hundreds of bones) possible.
[previewyoutube][/previewyoutube]
There are 4 design principles that have made UIX a highly performant framework:


https://www.youtube.com/watch?v=_1eryMreauc
[h2]Custom font support, materials, unicode and more features[/h2]
Performance wasn’t the only thing that UIX has improved. Built with our new text rendering system, UIX inherits all of its capabilities as well!
Now you can use any TrueType/OpenType (.ttf, .otf and such) fonts within the UI. Want all inspectors to use ComicSans? We don’t see why you would, but now you can! And of course you can use multiple fonts for your own UI’s, the possibilities are limitless.
[previewyoutube][/previewyoutube]
Dynamic generation of Unicode glyphs is also supported, so languages like Japanese, Korean, Chinese, Russian and others will now render correctly in all interfaces - inspector, inventory, file browser, in-game messaging and all others.
Another of the additions is support for materials. UIX neatly fits into the rest of Neos’ architecture, allowing you to use pretty much any material for any part of the UI. Most materials don’t support things like masking, so they won’t work well in some contexts, but as we add more UI materials the possibilities will grow!
If you can use inspector like this, you're either massive Neos fan or massive Stargate fan.
[h2]Fixed glitchy UI behaviors[/h2]
Neos’ UI was long plagued by some unpleasant and confusing glitches, that couldn’t be easily fixed due to the hacky nature of the old UI system built on Unity UI. In comparison, UIX is a solution fully native to Neos and independent of Unity, giving us full control and nicely integrating to the rest of Neos’ engine.
As a result, all those long time bugs were fixed. Overlapping UI windows will no longer cause masking issues, making UI render where it shouldn’t. Pointing one controller at one window and another at some other now also works properly, instead of selecting random elements instead, confusing users.
Cases of some UI being randomly mangled, misaligned or missing have also been fixed. For example the notoriously missing “2/@” key on the virtual keyboard, often confusing new users trying to type their email address or the inventory window buttons popping out of its bounds.
UIX makes it significantly easier to move forward, introduce new features and fix more bugs without breaking the whole system.
[h2]What’s next? Onto the second phase of UI overhaul![/h2]
With UIX complete, we now have complete control over the UI system in Neos and full flexibility to add new behaviors, visuals and interactions, the way we want, without being impeded by the old technically limited system that would just break anytime it was touched.
In the upcoming weeks, we’ll be redesigning the core of Neos’ interfaces, to make it much easier to use, especially for new users just looking to hang out, socialize and play and also look up to today’s standards, ditching the old “programmer aesthetic”. Essentially you'll see the actual visuals and interactions change bit by bit from now on!
We’re very excited, because this will be one of the most significant milestones in Neos’ development, making it and its rich functionality more accessible and discoverable to new users and making it much more friendlier and powerful for the existing ones.
You can still provide us with feedback and participate in the process. Either on the GitHub megathread or on our official Discord or Patreon (links below). Now is the best time to provide feedback and ideas, before the fundamentals of the new UI design get locked down! The new system will still be very flexible though, as we expect it so serve us for a long time ahead.
Designing UIX to allow for high flexibility, while also providing exceptional performance took a significant amount of time, more than I have initially expected, but I believe the performance benefits alone are worth the effort and I am thankful for your support and patience through this.
With the old Unity UI system being excised from the codebase we have paid one of the biggest Neos’ technical debts from its alpha phase and we’re free to move on forward into the future.

[h2]Thank you everyone for the support[/h2]

We have a very exciting update this week, the technical phase of UI overhaul is now complete! I’m excited to introduce UIX, our new high-performance flexible UI framework that will power Neos’ UI for years to come.
And even though right now the UI still looks more or less the same (that will start changing very soon though), it brings massive performance improvements, significantly reducing lag with inspector, friends lists, inventories and other heavy UI’s open. Read more on it below!
Last week we also held a special stream discussing the future of Neos’ UI. Thank you everyone for your feedback, suggestions and ideas! With UIX complete, we’re now moving onto the second phase of UI overhaul to improve the ease of use and visual aesthetic of Neos and knowing what issues you have and the things you’d like to see in the future will help us with the design tremendously.
Don’t forget to join us for today’s livestream as well! Not only we’ll be talking and showcasing UIX, but more importantly the community creations from February! After all you’re all who gives this metaverse life.



[h2]Massive performance improvements for the UI[/h2]
One of the design goals of UIX was to significantly improve performance with complex UI’s in Neos, particularly inspectors. We have achieved this through a combination of design principles, that have provided orders of magnitude improvements.
The old UI system built with Unity UI would easily bring the framerate under 20-30 FPS opening a single scene root or avatar rig, but with UIX you can open dozens without affecting the framerate.
Similarly if you have accumulated a lot of friends in the Friends dialog, opening this would cause many people to freeze briefly and drop the framerate by dozens of FPS. Virtually all UI interfaces are now significantly more optimized, removing or reducing initial hitches and their continuous impact on framerate.
This makes Neos much more comfortable to use for everyone, allowing more users to easily edit inside for a world without hurting other people’s experience (and their own) and makes accessing and modifying complex components (e.g. DynamicBoneChain with hundreds of bones) possible.
[previewyoutube][/previewyoutube]
There are 4 design principles that have made UIX a highly performant framework:
- Asynchronous - only basic update information is collected on the main thread and computations are then done in the background, while the rest of the game still runs. Complex layouts that take long to compute will no longer freeze you until they are done
- Multi-threaded - a lot of the layout and generation work is split across multiple cores, using your CPU better to compute UI faster, resulting in snappier and more responsive UI. Each UI canvas also runs its own loop, allowing them to update independently of each other, instead of freezing the game until they’re all done
- Change-driven - only the changed parts of layout will actually be recomputed. UIX intelligently invalidates only properties that have actually changed and “absorbs” invalidations that produce no effect higher in the hierarchy. This reduces the overall amount of work when only parts of the UI update every frame
- More efficient - the compute and layout algorithms have been designed and written in a highly-performant way. Even without multi-threading and change tracking, UIX takes fraction of time to compute the same layout as the old Unity solution




https://www.youtube.com/watch?v=_1eryMreauc
[h2]Custom font support, materials, unicode and more features[/h2]
Performance wasn’t the only thing that UIX has improved. Built with our new text rendering system, UIX inherits all of its capabilities as well!
Now you can use any TrueType/OpenType (.ttf, .otf and such) fonts within the UI. Want all inspectors to use ComicSans? We don’t see why you would, but now you can! And of course you can use multiple fonts for your own UI’s, the possibilities are limitless.
[previewyoutube][/previewyoutube]
Dynamic generation of Unicode glyphs is also supported, so languages like Japanese, Korean, Chinese, Russian and others will now render correctly in all interfaces - inspector, inventory, file browser, in-game messaging and all others.
Another of the additions is support for materials. UIX neatly fits into the rest of Neos’ architecture, allowing you to use pretty much any material for any part of the UI. Most materials don’t support things like masking, so they won’t work well in some contexts, but as we add more UI materials the possibilities will grow!

[h2]Fixed glitchy UI behaviors[/h2]
Neos’ UI was long plagued by some unpleasant and confusing glitches, that couldn’t be easily fixed due to the hacky nature of the old UI system built on Unity UI. In comparison, UIX is a solution fully native to Neos and independent of Unity, giving us full control and nicely integrating to the rest of Neos’ engine.
As a result, all those long time bugs were fixed. Overlapping UI windows will no longer cause masking issues, making UI render where it shouldn’t. Pointing one controller at one window and another at some other now also works properly, instead of selecting random elements instead, confusing users.
Cases of some UI being randomly mangled, misaligned or missing have also been fixed. For example the notoriously missing “2/@” key on the virtual keyboard, often confusing new users trying to type their email address or the inventory window buttons popping out of its bounds.
UIX makes it significantly easier to move forward, introduce new features and fix more bugs without breaking the whole system.
[h2]What’s next? Onto the second phase of UI overhaul![/h2]
With UIX complete, we now have complete control over the UI system in Neos and full flexibility to add new behaviors, visuals and interactions, the way we want, without being impeded by the old technically limited system that would just break anytime it was touched.
In the upcoming weeks, we’ll be redesigning the core of Neos’ interfaces, to make it much easier to use, especially for new users just looking to hang out, socialize and play and also look up to today’s standards, ditching the old “programmer aesthetic”. Essentially you'll see the actual visuals and interactions change bit by bit from now on!
We’re very excited, because this will be one of the most significant milestones in Neos’ development, making it and its rich functionality more accessible and discoverable to new users and making it much more friendlier and powerful for the existing ones.
You can still provide us with feedback and participate in the process. Either on the GitHub megathread or on our official Discord or Patreon (links below). Now is the best time to provide feedback and ideas, before the fundamentals of the new UI design get locked down! The new system will still be very flexible though, as we expect it so serve us for a long time ahead.
Designing UIX to allow for high flexibility, while also providing exceptional performance took a significant amount of time, more than I have initially expected, but I believe the performance benefits alone are worth the effort and I am thankful for your support and patience through this.
With the old Unity UI system being excised from the codebase we have paid one of the biggest Neos’ technical debts from its alpha phase and we’re free to move on forward into the future.



[h2]Thank you everyone for the support[/h2]
