NeosVR Beta 0.6.1 update
Hey guys,
Frooxius, the developer of NeosVR here. It’s been roughly a month since the launch of the public beta and we’ve gotten tons of great feedback from you, seen our core community grow (especially on our Discord server) and begin building awesome content in NeosVR.
Today I’m happy to announce the public release of Neos Beta 0.6.1, which contains dozens of usability improvements, small features, bugfixes and tweaks, many of them based on the feedback from you and requests from our Patrons (who also get to enjoy these new features right after they’re added). You can get it for free on Steam.
You can see the full list of changes below. One of the bigger changes was a complete redesign of the cloud asset management infrastructure, which is now based on reference counting, rather than original intended garbage collection.
This means that your cloud storage will update nearly immediately after removing assets and your existing usage has been recalculated to exclude “official” assets (such as in the Scratchspace template). This should make it easier to manage your cloud usage.
Other than that, there’s dozens of smaller additions, such as Discord integration, new materials, Standalone 360 mode. However because of no big major features, I’m keeping the 0.6.x version number, but I hope that you’ll enjoy it regardless!
This probably deserves its own post, but over the past month and half, I’ve seen so many amazing things done with Neos, that I just have to mention them, because there's nothing that makes me more happy than seeing people build cool things.
0utsider and Nexulan have built a playable three player chess that they bring anywhere with Neos’ item panels. They have also made a beautiful animated 3D version of Neos logo, which you can now find in the content hub or a controllable plane (the first vehicle in Neos!)
People have also built great environments. I recommend checking out the Klub Karel by sirkitree or the disco club (with awesome lasers!) by 0utsider. Sirkitree also found an ingenious trick to implement basic tool inventory – he put a toggleable panel with all the tools on the hand model of his avatar!
The SHFR group at the University of Sydney has also recently used NeosVR for their presentation at the science forum. Needless to say it was really awesome and I found it ingenious the way they have utilized many of Neos’ features. You can see the video from the event here.
To my surprise people have already started experimenting with the C# plugin programming to add new behaviors (like extending the keyboard). I’ve published some more code examples on GitHub and started a new Discord channel for plugin development, come check it out if you’re interested!
With the cloud update out of the way, the focus of the next major version will be on social features that will make it easier to interact and connect with your friends and make it easier to build and share things in Neos.
This will include a friends list as well as user profiles, so you can see what your friends are up to directly from within Neos and visit them directly, invite them to your worlds or send them items.
Another major feature will be a personal inventory in which you can store arbitrary items, tools or even entire worlds and bring them up anywhere you go, without having to pick them up every time from your home or other places.
There’s also going to be more work on the UI friendliness and exposing more options in a clear way, for example giving you control over who can join your active sessions.
And last, based on our last Patreon poll, I’ll be working on the Undo/Redo feature, which was the most popular choice. Not to mention that there were many times I wished I had it too!
Other than these major features I’ll be continuing to work on many other small additions, improvements and tweaks, so keep tuned! If you’d like to use these new features before the next public release, consider becoming our Patron and getting early access to new builds.
New features
Tweaks
Significant compatibility improvements to biped rig detection and setup of IK for variety of rigged models, but still needs further improvements
Refactored rigged model metadata into separate “Rig” component to support for multi-mesh rigs
Improved locomotion and controller mapping for Touch controllers, Windows MR Controllers and Vive as well
Implemented asset cleanup for the world hierarchy, removing no-longer used asset providers and running this automatically on save – this can offer significant performance improvements for some worlds
Locomotion method is now synchronized between worlds
The material list when creating a new material orb is now built using reflection and automatically contains all available materials
Switched to a different MP3 decoder with better compatibility, but still has issues. Will switch to native decoding library in the future
“Official” Neos assets no longer get counted against user cloud quota
Changed dynamic world orb spawners so only the root is marked as non-persistent, rather than the world orbs themselves (this made them disappear if they were taken elsewhere)
Fixed up importer clogging the hierarchy with “Import” objects
Touch events outside the user’s field of view are now ignored
Opening login dialog automatically switches to a private world, so secure information cannot be potentially inferred by watching the user’s controller motions
Created new login and registration dialog, also with support for lost password recovery
Added ability to show/hide keyboard
World switcher, logo menu and keyboard positions are now persistent
Added new presets for the DroneCamera script, including a manual mode which allows to fly around with mouse + keyboard
Added ability to save/load current position of the DroneCamera by pressing numbers on the numpad (hold shift to save)
Rotation transform operations now work correctly when there’s negative scaling within the hierarchy
Added blank video player to the “Create New” dialog
LogiX tooltip now shows names of inputs and outputs when hovering over them
All sync references now return null for destroyed elements in the data model, ensuring better behavior consistency
Refactored sync lists so derived classes can unambiguously implement IEnumerable to iterate over their elements, rather than container nodes
Reduced the size of grab references for the Grab World locomotion mode
Included Slices2VolumeTex utility for converting series of image layers into a volumetric texture that can be imported into Neos
Included NeosDataTreeConvert (and GUI version) for converting from Neos’ compressed serialized worlds/objects to JSON and back
Fixed resetting of object’s scale when equipped as an avatar
Added -ForceNoVoice command line option to globally disable voice in all hosted worlds
Added -ForceLANOnly command line option to globally set hosted worlds to allow only LAN connections
Added support for Patreon only worlds
Added notification message when trying to open world without permission to do so
Added sample options when spawning a new NeosHorizontalChoiceBar
Added exception guard to Coroutines
Added ability to call MarkChangeDirty() from within OnChanges() functions to schedule object for the next update cycle and avoid an infinite loop in some cases
Fixed DPI scaling on the Neos Launcher
Added version info to the Logo Menu
Destroying a bone of a rigged 3D model now destroys the whole model
Destroy/Duplicate options are now grayed out when not holding any item
Bug Fixes
Assets under non-persistent hierarchies now get saved if they’re used by persistent components in the world
Fixed race condition in the particle collision worker which broke all subsequent collisions
Fixed Patreon supporter names spawning for each user in the session
Fixed perpendicular distance meter going through the same mesh collider it was placed on
Fixed crash importing unsupported JSON files
Fixed Neos not saving homes when exited via the SteamVR menu
Fixed file orbs getting duplicated when placed on the item shelves
Disabled FixInFacingNormals postprocessing step on import, which incorrectly flipped faces on some models
Fixed LogiX nodes keeping connections to inputs when duplicated
Fixed duplication of UI items in the scene hierarchy explorer
Fixed import error where a texture in the model was set to null
Optimized stack usage when doing a raycast query against a mesh collider acceleration structure, which caused stack overflow exception for highly suboptimal meshes
Fixed exceptions in the session asset gatherer on invalid requests
Fixed duplicate loading of unsynced records for records that were currently in the synchronization queue
Fixed developer tooltip opening inspector for deselected object
Fixed incorrect texture offset in UVAtlasAnimator component
Fixed saved world becoming inaccessible when the saved world asset had exact same hash as the one already in the database
Fixed generating incorrect LogiX cast node variant for Uri datatype
Fixed incorrect input on the Substring LogiX node
Fixed crash to the matchmaker server on early termination of the connection
And many more…
Fixed the 360 realtime camera stopping rendering in some cases
Fixed incorrect triangle index in RaycastHit against a MeshCollider (this fixes material gun applying/extracting materials to the wrong submesh)
Frooxius, the developer of NeosVR here. It’s been roughly a month since the launch of the public beta and we’ve gotten tons of great feedback from you, seen our core community grow (especially on our Discord server) and begin building awesome content in NeosVR.
Today I’m happy to announce the public release of Neos Beta 0.6.1, which contains dozens of usability improvements, small features, bugfixes and tweaks, many of them based on the feedback from you and requests from our Patrons (who also get to enjoy these new features right after they’re added). You can get it for free on Steam.
You can see the full list of changes below. One of the bigger changes was a complete redesign of the cloud asset management infrastructure, which is now based on reference counting, rather than original intended garbage collection.
This means that your cloud storage will update nearly immediately after removing assets and your existing usage has been recalculated to exclude “official” assets (such as in the Scratchspace template). This should make it easier to manage your cloud usage.
Other than that, there’s dozens of smaller additions, such as Discord integration, new materials, Standalone 360 mode. However because of no big major features, I’m keeping the 0.6.x version number, but I hope that you’ll enjoy it regardless!
Community highlights
This probably deserves its own post, but over the past month and half, I’ve seen so many amazing things done with Neos, that I just have to mention them, because there's nothing that makes me more happy than seeing people build cool things.
0utsider and Nexulan have built a playable three player chess that they bring anywhere with Neos’ item panels. They have also made a beautiful animated 3D version of Neos logo, which you can now find in the content hub or a controllable plane (the first vehicle in Neos!)
People have also built great environments. I recommend checking out the Klub Karel by sirkitree or the disco club (with awesome lasers!) by 0utsider. Sirkitree also found an ingenious trick to implement basic tool inventory – he put a toggleable panel with all the tools on the hand model of his avatar!
The SHFR group at the University of Sydney has also recently used NeosVR for their presentation at the science forum. Needless to say it was really awesome and I found it ingenious the way they have utilized many of Neos’ features. You can see the video from the event here.
To my surprise people have already started experimenting with the C# plugin programming to add new behaviors (like extending the keyboard). I’ve published some more code examples on GitHub and started a new Discord channel for plugin development, come check it out if you’re interested!
What’s coming in Beta 0.7
With the cloud update out of the way, the focus of the next major version will be on social features that will make it easier to interact and connect with your friends and make it easier to build and share things in Neos.
This will include a friends list as well as user profiles, so you can see what your friends are up to directly from within Neos and visit them directly, invite them to your worlds or send them items.
Another major feature will be a personal inventory in which you can store arbitrary items, tools or even entire worlds and bring them up anywhere you go, without having to pick them up every time from your home or other places.
There’s also going to be more work on the UI friendliness and exposing more options in a clear way, for example giving you control over who can join your active sessions.
And last, based on our last Patreon poll, I’ll be working on the Undo/Redo feature, which was the most popular choice. Not to mention that there were many times I wished I had it too!
Other than these major features I’ll be continuing to work on many other small additions, improvements and tweaks, so keep tuned! If you’d like to use these new features before the next public release, consider becoming our Patron and getting early access to new builds.
Changes and additions from Beta 0.6
New features
- New cloud asset management infrastructure based on reference counting for quick storage usage updates and better responsiveness
- Discord Integration – features rich presence (shows what public world are you in on your profile), allows ask for join or sending an invitation to channels
- Support for live stream video playback – for example you can now watch Twitch live streams in VR
- Standalone 360 mode – allows to interactively use Neos with equirectangular 360° rendering mode (useful for using in domes)
- Folder import support – includes two new batch importers and support for importing multiple models, images and videos with the same settings
- Import images/photos referenced by name in the 3D model hiearchy
- Vertex color PBS materials (automatically used on 3D model import if it has vertex colors)
- Double sided PBS materials (including transparent ones)
- Triplanar PBS materials
- Cookie support for spot lights
- Material gun can now extract/apply skybox materials
- Added “Edit Reference” button to bring up inspector for any reference
- Basic controls for 360 camera mode
- Basic support for permissions in the world – CommonAvatarBuilder can now be configured to restrict locomotion methods, saving worlds or transferring objects to/from particular world
- Added DateTime LogiX nodes
- Added RawDataTooltip component for interfacing LogiX with the tooltip system and allowing to more easily build new tooltips from scratch within Neos.
- Added option to auto-join and auto-follow LAN sessions only by specific user
- Added GrabbableUserVoiceModifier component, which allows modifying the voice setting upon grabbing an object (such as a microphone)
Tweaks
Significant compatibility improvements to biped rig detection and setup of IK for variety of rigged models, but still needs further improvements
Refactored rigged model metadata into separate “Rig” component to support for multi-mesh rigs
Improved locomotion and controller mapping for Touch controllers, Windows MR Controllers and Vive as well
Implemented asset cleanup for the world hierarchy, removing no-longer used asset providers and running this automatically on save – this can offer significant performance improvements for some worlds
Locomotion method is now synchronized between worlds
The material list when creating a new material orb is now built using reflection and automatically contains all available materials
Switched to a different MP3 decoder with better compatibility, but still has issues. Will switch to native decoding library in the future
“Official” Neos assets no longer get counted against user cloud quota
Changed dynamic world orb spawners so only the root is marked as non-persistent, rather than the world orbs themselves (this made them disappear if they were taken elsewhere)
Fixed up importer clogging the hierarchy with “Import” objects
Touch events outside the user’s field of view are now ignored
Opening login dialog automatically switches to a private world, so secure information cannot be potentially inferred by watching the user’s controller motions
Created new login and registration dialog, also with support for lost password recovery
Added ability to show/hide keyboard
World switcher, logo menu and keyboard positions are now persistent
Added new presets for the DroneCamera script, including a manual mode which allows to fly around with mouse + keyboard
Added ability to save/load current position of the DroneCamera by pressing numbers on the numpad (hold shift to save)
Rotation transform operations now work correctly when there’s negative scaling within the hierarchy
Added blank video player to the “Create New” dialog
LogiX tooltip now shows names of inputs and outputs when hovering over them
All sync references now return null for destroyed elements in the data model, ensuring better behavior consistency
Refactored sync lists so derived classes can unambiguously implement IEnumerable to iterate over their elements, rather than container nodes
Reduced the size of grab references for the Grab World locomotion mode
Included Slices2VolumeTex utility for converting series of image layers into a volumetric texture that can be imported into Neos
Included NeosDataTreeConvert (and GUI version) for converting from Neos’ compressed serialized worlds/objects to JSON and back
Fixed resetting of object’s scale when equipped as an avatar
Added -ForceNoVoice command line option to globally disable voice in all hosted worlds
Added -ForceLANOnly command line option to globally set hosted worlds to allow only LAN connections
Added support for Patreon only worlds
Added notification message when trying to open world without permission to do so
Added sample options when spawning a new NeosHorizontalChoiceBar
Added exception guard to Coroutines
Added ability to call MarkChangeDirty() from within OnChanges() functions to schedule object for the next update cycle and avoid an infinite loop in some cases
Fixed DPI scaling on the Neos Launcher
Added version info to the Logo Menu
Destroying a bone of a rigged 3D model now destroys the whole model
Destroy/Duplicate options are now grayed out when not holding any item
Bug Fixes
Assets under non-persistent hierarchies now get saved if they’re used by persistent components in the world
Fixed race condition in the particle collision worker which broke all subsequent collisions
Fixed Patreon supporter names spawning for each user in the session
Fixed perpendicular distance meter going through the same mesh collider it was placed on
Fixed crash importing unsupported JSON files
Fixed Neos not saving homes when exited via the SteamVR menu
Fixed file orbs getting duplicated when placed on the item shelves
Disabled FixInFacingNormals postprocessing step on import, which incorrectly flipped faces on some models
Fixed LogiX nodes keeping connections to inputs when duplicated
Fixed duplication of UI items in the scene hierarchy explorer
Fixed import error where a texture in the model was set to null
Optimized stack usage when doing a raycast query against a mesh collider acceleration structure, which caused stack overflow exception for highly suboptimal meshes
Fixed exceptions in the session asset gatherer on invalid requests
Fixed duplicate loading of unsynced records for records that were currently in the synchronization queue
Fixed developer tooltip opening inspector for deselected object
Fixed incorrect texture offset in UVAtlasAnimator component
Fixed saved world becoming inaccessible when the saved world asset had exact same hash as the one already in the database
Fixed generating incorrect LogiX cast node variant for Uri datatype
Fixed incorrect input on the Substring LogiX node
Fixed crash to the matchmaker server on early termination of the connection
And many more…
Fixed the 360 realtime camera stopping rendering in some cases
Fixed incorrect triangle index in RaycastHit against a MeshCollider (this fixes material gun applying/extracting materials to the wrong submesh)