1. Neos VR
  2. News

Neos VR News

Freeform Camera for Desktop, ProbablePrime and Chroma joining the team

Hello everyone and welcome to another weekly update!

We have finalized the first phase of our desktop mode support with addition of Freeform Camera mode! This lets you decouple the view fully from your avatar and freely fly through the scene and use freeform cursor to interact with items and gizmos.

The camera can also focus on objects in the scene and orbit around them, making editing in desktop significantly easier. Along with first person, third person, UI aligned camera, new LogiX nodes and permissions for desktop, we think the desktop is now well rounded for both socialization and building. There's still much more we want to do with it, but we'll focus on other things in the meanwhile.

Our team has grown by two new members as well! Everyone welcome ProbablePrime and Chroma! ProbablePrime is joining as technical writer and programmer. With access to source he'll be able to provide you with even better tutorials and documentation on Neos, while Chroma has been helping out with the upcoming Neos trailer and will be helping with more media and graphics for Neos.

Based on some concerns and misunderstanding in the community, we also unveil some behind the scenes on the moderation system, to help everyone understand how it works internally and what happens when you make a ticket. We have also added ability to create Anonymous tickets too.

You can also see latest progress on the MTC Streaming & Recording Hall from our recent Friday livestream. We've also expanded our public roadmap to provide more detailed overview of what's planned for different aspects of Neos, so check them out if you're curious about what's in store!



[h2]MTC Streaming & Recording Hall Livestream Showcase[/h2]
In our last regular Friday 3PM PST livestream, we have showcased the latest progress on the MTC Streaming & Recording Hall, another part of our tutorial experience for new and existing players, focused on everyone who wants to stream and record in Neos.

Similarly to the MTC Avatar Room, we have designed this to not only serve as a tutorial on the camera system in Neos and related ones, but also as a well rounded hangout and utility world. You can find a stage with configurable lighting for presentations, a green screen area with fully configurable colors, backgrounds, tracking markers as well as a streaming room with several different sets for streaming.

If you missed the stream, check out the archive below!

[previewyoutube][/previewyoutube]



[h2]Freeform Camera[/h2]
As the last major addition to the first phase of our new Desktop mode we have implemented a Freeform Camera mode, which makes the building process without VR much easier. In this mode, you can decouple your view from your avatar and freely fly around the scene. Currently it is bound to the F6 key, but will be changed in the future.

The mode also frees up your mouse cursor, allowing you to interact with the scenes and gizmos without having to turn your view. To change the view, hold the Ctrl on your keyboard and then the Right Mouse button to trigger panning mode. You can release Ctrl afterwards. While panning the camera, you can also use movement controls to fly around.

[previewyoutube][/previewyoutube]

You can also focus the camera on a specific object in the scene. Either hover over it with the cursor in Freeform camera mode and press Ctrl+F, or select it with the developer tooltip and press the F key. In focused mode, the view will move with the object and you can use Alt+Right Mouse button to orbit the view around and Scroll Wheel to zoom in and out.

While you’re in this mode, Neos also shows a visual to represent your view to other users in the world. This is fully customizable as well as it’s simply a part of the avatar and we’ve already seen people do some creative stuff with it!

Overall we hope that this mode will complete a well rounded basic set of camera modes for both socialization and building in the Desktop mode, with easy switching between first person, third person, UI Aligned camera and Freeform, as well as switching between desktop and VR when you have a VR headset.

[h2]UI Aligned Camera and other Desktop improvements[/h2]
The rest of the desktop features have received more features and polish as well. We have fixed up lots of issues with the UI Aligned Camera in particular and improved the general interactions to provide smoother and more intuitive experience.

The view visual will now activate in UI Aligned Camera mode as well, but only in scenarios where the targeted UI would be too far away or outside the field of view of the actual avatar. This way it doesn’t need to pop up when you’re interacting with a UI that’s just in front of you or perhaps focusing on a video player when watching with your friends.

We have added permission components as well that let you control which of the camera modes are available in your world. For example for any game worlds, you can only allow first person mode, to avoid people peeking behind corners or watching other players.

Existing worlds are auto-initialized based on their streamer camera permissions since those are usually a close proxy - e.g. if you’ve configured the streamer camera to disallow watching other players, freeform camera mode will be disabled for that role by default as well.

Various LogiX nodes were added as well, for checking which camera mode is user currently in, whether the view visual is active or which hand is configured as their primary. You can find all the additions, tweaks and bug fixes in our build release logs either here on Steam or on our official Discord.

While there’s still a lot that we want to do with the Desktop (check out our GitHub roadmap!), we think that in its current state it should provide a pretty good experience for both new and existing users and we can put our focus on other issues.

[h2]ProblablePrime and Chroma joining the team[/h2]
This week we have brought on two new members to the Neos Team to help out with Neos’ development, both on the technical and content side. Everyone welcome ProbablePrime and Chroma!

Moments before the graduation





ProbablePrime has been a member of the Neos community since early 2019 and many of you probably know him for his numerous Neos tutorials, covering everything from setting up avatars to using a variety of Neos’ tools, components and LogiX nodes. With his industry experience with software development and documentation, he’s joining our team as a Technical Writer and Programmer.

Thanks to the access to Neos’ source code he’ll be able to provide better tutorials and documentation on Wiki and any other upcoming resources, providing you with more in depth information on how things work and how you can best utilize them. Apart from documentation, ProblablePrime will be making contributions to the codebase as well, helping to implement features, fix bugs and overall improve Neos’ technical side.

Chroma has been helping out with production of the upcoming Neos trailer with his industry VFX and video editing experience, as well as with building out the MTC Streamer room for the past few months. He will be helping with future video and graphics production in the future both for promoting Neos and in-game graphics.

We’re excited to have the new team members on to help with this project and we hope everyone gives them a warm welcome!

[h2]How our moderation ticket system works[/h2]
Since there have been some rumors floating around in the community about the internal workings of our moderation ticket system, particularly with team members not being able to see certain issues or people assuming they have gotten automated responses, we have decided to show you some of the internals so everyone can have a better picture of what happens when you make a ticket.

The ticket system can be accessed by any moderator or Neos Team member. Each ticket can be assigned to a particular member, but all of them can be seen by everyone in the system at any time, so any member can chime in and see what’s going on.



This is a pretty important part, because we have been building a diverse moderation team with different backgrounds and experiences, so different members can provide unique insights based on the issue at hand, whether it’s a social issue or more technical one like exploit. Typically most issues undergo an internal discussion from many members (both moderation and Neos Team where relevant) and are decided on as a group, to prevent biases from a single individual.



Our moderation Discord is also heavily tied into the ticket system, with a live feed of tickets as well as a unique channel for each issue which allows us to discuss the ticket internally before making a formal response. Those channels can also be seen by every moderator and Neos Team member who opted in for access.

Each ticket is archived for future reference after it is closed

Responses to the tickets have been another source of concern recently, with assumptions that they’re fully automated and not actually looked at. We do not actually have an automatic response system and all the messages have been sent by a person reading the ticket as indication that someone has seen it.

Unfortunately crafting a detailed response takes time, particularly with issues that require more detailed analysis (e.g. exploit reports or issues that require gathering evidence), so we typically send a canned response within a day to make sure that the reporter knows that the issue has been received and is now part of the system.

To better reflect this, we’ve updated the canned responses wording to make it more clear that the response is being sent by a moderator or team member, but without identifying who they are to prevent cases of moderator harassment and targeting.

[h2]Anonymous Reports[/h2]
Related to the feedback above and some other concerns that we have received, we have also added the ability to send anonymous reports through the moderation system! For any issues where the user doesn’t wish to be identified, but wants to share concerns with the community, platform or even the team, those can be a good way to do them in a safe manner.



To make an anonymous ticket, simply go to a page here: https://moderation.neos.com/anon.php This doesn’t require filling out email as regular tickets do to avoid personal identification. Of course this also means that you won’t be able to receive a response, so those tickets will only be processed internally.

Such tickets will also prevent us from getting more detailed information on the issue as well directly and as such depending on the ticket might not be actionable, but we hope that it nevertheless provides a good option to share your concerns for certain situations.

[h2]Moving To Azure Pipelines[/h2]
With the growing Neos Team and community, there has been an increasing need to make certain parts of the development process more efficient and reduce the number of manual tasks that goes into making new builds.

As part of this process we have started an ongoing effort to restructure and move Neos’ codebase and its dependencies into Azure Pipelines and switch over to CI/CD workflow. This means that Neos’ own code and code of the dependency libraries will now have scripts in the cloud that will be responsible for building the latest binaries every time changes are pushed to the repository.

This is a pretty big task, as we have numerous dependencies, both native and managed (.NET) and will take some time to fully setup, but will provide much smoother development experience, reduce manual labor and errors when pushing out updates or updating the dependencies and enable us to build custom update system and orchestration services (dedicated servers).

As the first benefit of this transition, we have recently updated the Assimp library used for 3D model import to the latest version from source for both Windows and Linux and we’ll be able to keep up with its latest developments much easier from now on thanks to significantly reduced amount of manual steps that went into each update.

[h2]Updated Roadmaps[/h2]
Since we often get questions about which features are planned and what’s coming for different aspects of Neos, as well as repeated feature suggestions, we have started organizing some of the major plans into GitHub roadmaps to keep things better organized in a single place, rather than scattered among many issues, Discord discussions and weekly updates.

On our official public GitHub Projects page, you can now find several new projects for different parts of Neos, each with some major planned tasks and features, which should give you a good idea of what’s coming and what’s being currently worked on.



However it’s important to note that the roadmaps aren’t necessarily comprehensive - there are too many issues overall and the nature of the project often changes during the development, but the roadmaps should provide a good idea of the broad strokes.

For example even though we’re now finished with the first phase of desktop implementation, there are still many things we have planned for it. By going to the Desktop project on GitHub, you can find out what those things generally are.

We’ll keep updating the roadmaps as we go and anytime a common issue comes up, we’ll try to put it on the roadmap, instead of repeatedly answering it on Discord or inside of Neos. This way we’ll have a good central resource for members of the team, mentors and everyone else to refer to on the plans for the project.

[h2]What's Next[/h2]
With the first phase of the desktop complete and some last polish and bugfixes in place, we'll be refocusing on some other major and minor issues soon. Before that happens though, Frooxius will be taking a roughly week long break, to help reset and refocus after a long time stress from dealing with development and daily issues.

This means that there will be no Neos updates for roughly a week and likely no weekly update next week either. While we pride ourselves in a quick development cycle with typically multiple updates each week, we think this is important for a long term sustainability of the development and handling new features and daily issues with a fresh mindset.

We're very thankful for everyone's ongoing support of this project, because without your help we couldn't be continually moving forward, implementing new features, tweaks and bugfixes on regular basis!

2021.5.17.871 - Desktop view mode LogiX nodes, Type Input Node, world crash fix

Hello everyone! Sorry for another smaller build, it's been a bit difficult for me to focus lately, but there are some small goodies and tweaks to the Desktop stuff and other things.

There are now nodes that you can use to get the active view targeting module and whether the view reference visual is active (independent of the visual itself, it just indicates if it "should" be active).

There's now also Type Field and Type Input Node! These are strongly recommended whenever you work with types (e.g. checking if something is of certain type) as they allow the reference types to be upgraded when we make internal changes without breaking your content.

There's some internal additions too, notably a new mechanism for upgrading fields that change their value/meaning in some way and automatically insert "adapter" when they're driven or referenced to old content keeps working. This in preparation for the ongoing transition from Gamma to Linear, but it's a general mechanism we'll use in future whenever upgrading some behaviors.

Fixed up a bunch of issues and crashes as well, hopefully things will be good now!

[h2]New Features:[/h2]
- Added UserPrimaryHand LogiX node (under Users) which indicates user's primary hand (based on request by @Epsilion)
- Added UserActiveViewTargettingController node (under Users) which outputs the currently active view targetting controller (first person, third person, UI camera, Freeform and any future ones) (based on request by @LeDrascol)
- Added UserViewReferenceActive which indicates if given user has currently active view reference (based on request by @LeDrascol)
-- This is True whenever the visual for view reference in Freeform camera and UI aligned camera are active
- Added TypeField (under Data), which stores a Type (similar to ValueField and ReferenceField)
-- It's highly recommended to use this as basis for any type comparisons, as in case of types being renamed or moved, it can be auto-upgraded
- Added Type Input LogiX node, for Type values
-- If you're checking and matching Type of an object (e.g. the ViewTargettingController), it's STRONGLY recommended to use GetType and compare that to the value you set on Input LogiX node. If you compare the string instead, it's likely that your content WILL BREAK and without ability to automatically fix it. Using Type Input node or TypeField lets us upgrade old types in case of internal changes

- Added internal "FieldAdapter" mechanism for upgrading old data model to ensure compatibility with existing content
-- This mechanism automatically converts old values in-place or inserts adapter that translates them in realtime in case they're driven or referenced by other components/LogiX
-- This is encessary for the upcoming switch to Linear space for upgrading old colors and keeping old setups working similarly enough, but is a general mechanism that will be used for many other aspects in the future
- Added OverrideOwner field to CloudValueVariableDriver which allows overriding owner of the variable value (based on request by @Psychpsyo)
-- This allows locally driving fields with different variables/owners
- Merged new MTC strings by @Rue Shejn | Artist 3D for the upcoming MTC Streamer room

[h2]Tweaks:[/h2]
- Upgraded Oculus Integration to 28.0, which includes OVRPlugin 1.59.0 (previously 1.57.0) and OVRLipSync v20
- MultiLerp node overloads that handle floating point types will now output NaN when the Lerp input is NaN (based on feedback by @chemicalcrux)

[h2]Bugfixes:[/h2]
- Fixed Standalone 360 mode not working properly with the new Desktop system (reported by @ooBLANKAoo)
-- The mode was also renamed to "Screen 360"
-- Note that the Dash overlay currently renders in regular mode (this can be changed on request)
- Fixed ReferenceMultiplexer throwing exceptions when the Index is out of range (found in a log from @ProbablePrime)
-- Its behavior is now consistent with ValueMultiplexer
- Fixed world crash in some cases when the user gets destroyed due to ViewReferenceController running post-physics update (reported by @Rue Shejn | Artist 3D, @ProbablePrime and @OH⅄ƎHOHO⅄)
- Added compensation for Linux scroll values being significantly smaller than on Windows, causing scrolling to be unusably slow (reported by @/home/JellyOsaurusPC)
- Fixed reference feet orientation being computed incorrectly for users using fullbody tracking
-- This fixes users in fullbody spawning at odd angles for CommonSpawnArea with RotationNode set to Feet (reported by @3x1t_5tyl3, @Turk | Mentor Lead/Manager, @Robyn (QueenHidi), @Shadow Panther [RU/EN, UTC+3], @AshtonSparx and others)

2021.5.16.886 - Freeform & UI Aligned Camera improvements, performance bugfix

Hello everyone! Just a small build this time, with some more polish for the Freeform Camera, UI Aligned Camera and few other things.

There's also pretty important perfromance bugfix, particularly when initially loading new assets, I found one "Ooops" moment when analyzing some cloud calls where asset metadata requests weren't actually batched and every time one was made a whole new batching manager was instantiated, instead of reusing the same one for the whole lifetime of run of Neos. Don't know what the perceivable impact will be, but should make a few bits more efficient.

We also updated the Patreon badges, since they were getting in conflict with some of the Patreon branding requirements, now they should be more compliant. A few other bugfixes as usual too!

[h2]New Features:[/h2]
- Added DefaultUserScale Logix node (under Avatar) that gives the default scale of the input user (requested by @3x1t_5tyl3)
-- Note that this node doesn't currently trigger update when the default scale changes. It's recommended to do the check on impulse.

[h2]Tweaks:[/h2]
- Updated Patreon badge icon and Patreon name color to use the latest official Patreon branding (requested by @Karel | CEO)
-- This includes adding extra spacing from the other badges and adding it at the front, to better comply with Patreon branding requirements
- UI Aligned Camera now properly handles Up direction when aligning to UI, ignoring the upwards direction of the root space and instead using the upwards direction of the UI itself (or player if it's close enough)
-- This fixes the camera aligning at weird angle when the target UI is parented under object with odd angle (reported by @Cyro)
- Activating Freeform Camera mode now uses the current view position in First Person and Third Person modes
-- This provides more consistent positioning as the avatar moves around (based on feedback by @Shifty | Quality Control Lead)
-- The starting position when triggered from first person mode has been improved as well
- Added extra pose update at the end of physics engine update cycle for the View node, to prevent some cases of the visual clipping into the user
- Camera View Avatar visual now takes into account the size of the currently focused UI when determining whether it should be hidden or not
-- This should improve scenarios with large UI's (e.g. video player), causing the visual to be hidden if the actual avatar is close enough to see the screen at its size (reported by @Shifty | Quality Control Lead)

[h2]Bugfixes:[/h2]
- Fixed Freeform Camera sometimes not initializing the position correctly
- Fixed asset metadata batch fetching incorrectly allocating new batch processing manager for every request, resulting in requests not being properly batched and the queries being significantly more inefficient both client and server-side
- Fixed regression causing inspector for newly created "Empty Object" being positioned incorrectly (reported by @Dante)
- Fixed world crash when LogiX nodes are disposed within evaluation cycle due to another error (based on report by @chemicalcrux)

2021.5.15.697 - Object focus & orbit mode for freeform camera, tweaks & bugfixes

Hello everyone, got a few more bits for the Freeform camera, it now supports object focusing and orbit mode, which should make editing in desktop much easier and friendlier! There are some more goodies based on some feedback too, like ability to get name of your current role in currently focused world or determine which user has allocated specific object. Please pay attention to the notes though to avoid running into gotcha's in the future!

There's a few other tweaks and bugfixes too. For example new user MTC sessions will now have their locale at the end, which can help you determine their native language before joining and LogiX has received a bunch of bugfixes too! I'll have some last additions for this phase of desktop soon, but I'm pretty much just wrapping it up on that now before refocusing on other stuff.

[h2]New Features:[/h2]
- Added focus mode to Freeform Camera mode, which allows focusing view at any object in the scene
-- To focus object, hover over it with mouse cursor and press Ctrl+F
-- When using Developer Tooltip, you can focus currently selected object by pressing F (this will also activate Freeform cam if it's not active, pressing F on the same object will toggle back previous camera)
-- To orbit view around the object, hold Alt and the Right Mouse Button
-- While orbiting object, you can use the mouse scroll wheel to zoom in closer or further
-- Press Alt+F to unfocus
-- When the focused object is actively moved by grabbing or gizmo, it will be temporarily unfocused to avoid feedback loop
- Added RoleName to FocusedWorldStatus, which indicates the name of the role you have in currently focused world (based on feedback by @Beaned and @Shifty | Quality Control Lead)
- Added AllocatingUser node (under References) which will output the User who allocated a given element (based on feedback by @Cyro)
-- It will output null if the allocating user is no longer available (e.g. has left since)
-- Currently leaving and rejoining will also make it impossible to determine which user allocated element. This might change in the future
- Added ReferenceID node (under References) which provides RefID of input element
-- Please note that RefID is an opaque, non-persistent value (meaning its structure and meaning can change at any time, including between sessions) and it's STRONGLY recommended to don't work with them directly, but rather interact with typed references and nodes to extract desired data instead like the one above. If you rely on particular structure or meaning of RefID, your creations WILL break. If functionality is missing, make a request.
- You can now press I when holding the Developer Tooltip to quickly open inspector

[h2]Tweaks:[/h2]
- The starter tutorial MTC sesssion now has user's language code at the end (based on feedback by @あむ(Rabbuttz), relayed by @Raith (CytraX))
-- This can help indicate which language does the user likely speak
-- This is just a tentative solution for now, proper general session language indicators will come down the line
- Replaced remaining instances of debugging printouts when coverting objects ToString to clean versions
-- Note that ToString for objects is meant for user friendly string that "sums up" the object and doesn't present a way to serialize or access its properties (if you need that, please make a request)
- Rotating of grabbed items in Freeform camera mode now locks the cursor in its current position, preventing the item from being moved around (based on report by @Psychpsyo)

[h2]Bugfixes:[/h2]
- UI Aligned Camera mode now automatically updates the current space of the focused UI when it changes
-- This fixes UI's that are held by a player when focused on keeping the focus on the grabbing user hand after it's released (reported by @MattyK, @Kiovo, @Aegis_Wolf | Creative Director and @Shifty | Quality Control Lead)
- Fixed custom Description for CreateSpawnUndoStep not changing the actual description (reported by @Zyzyl)
- Fixed MultiLerp node throwing an exception when the Lerp input is NaN (reported by @chemicalcrux)
- Fixed internal logging system throwing exceptions when passed a null object
- Fixed LogiX overload swapping not being able to reconnect variable length outputs on the swapped variant
-- This fixes Demultiplex and other nodes getting stuck mid-swap and being duplicated when it has already connected outputs (reported by @chemicalcrux)

[h2]Known Issues:[/h2]
- You can't focus freecam on items selected through the inspector, only directly selected with developer tooltip (doing this will require a unified selection system to be implemented)

2021.5.13.384 - Freeform Camera in Desktop mode, UI camera tweaks, bugfixes

Hello everyone, sorry this build took a while, but here's the Freeform camera for Desktop, completing the basic set of camera modes and the first phase of Desktop development! :smile: I'll be refocusing on some other things after this one, but there will still be probably some more tweaks and additions over following days to polish it up a bit. The keybinds are currently tentative, so expect those to shake up a bit in the future as we figure out a good way to set them up.

There's a bunch of other improvements too. I've been working on migrating our build process to Azure Pipelines to reduce the amount of manual work and potential mistakes, got a first little fruit from it - upgraded Assimp library for model import! Getting new builds of the library is now going to be much easier and faster thanks to this.

The UI aligned mode and other desktop features have also received some bugfixes and polish too as well as some other stuff too. Got a few new LogiX nodes, improvements for LogiX and so on. The desktop camera modes can now also be controlled with permission system, so you can disable Freeform camera or Third person if you need to (e.g. for game worlds), the system will auto-upgrade existing worlds based on your Camera permissions, which should be a good basis, read the notes for details!

[h2]New Features:[/h2]
- Added initial version of Freeform Camera mode, which allows to freely move view around independently of the character
-- To activate/deactivate, press the F6 key (note this is tentative and the keybinds will change in the future)
-- When activated, the mouse cursor is freed, allowing you to freely interact with items, gizmos and other elements
-- To pan/move around, first hold the Ctrl and then the Right Mouse Button. You can use WASD, C and Space to move the camera in this mode
-- Note that you can let Ctrl go after holding the right mouse button, it will keep the pan/move mode active
-- By holding left mouse button you can make the character turn towards the current cursor hit and use locomotion to walk around (movement in this mode is relative towards the cursor, meaning W will walk towards where your cursor hits on the screen)
-- More behaviors are planned:
--- Focusing a specific object in the world and being able to orbit it around
--- Having the voice come out of the view proxy when it's sufficiently far away

- Added View avatar visual that indicates where user's viewpoint is when it's decoupled from their head
-- Currently it's always activated when in Freeform camera mode
-- In UI aligned camera mode, it will appear only if the viewpoint is either at significantly different angle from the avatar head or sufficiently far away (6 meters at the moment), to avoid it from popping up when interacting with close by UI's
-- The current default visual is tentative and will be replaced with a better one soon
-- You can customize the visual by adding a new part to your avatar, using the new "View" BodyNode. This works on same principle as filling in default avatar hands/head
-- The visual is scaled up / down as it activates and deactivates and its root is disabled when not active
- Added ScreenViewPermissions permission component that allows controlling which view modes can be used by a user
-- New worlds allow any view mode to be used by default
-- Existing worlds are automatically upgraded based on the CameraPermissions component with following rules:
--- If Streaming Camera Third Person is disabled, the third person view mode will be disabled as well
--- If Streaming Camera Group, World, Manual or Framing of Other Users is diabled, Freeform and UI cameras will be disabled as well
-- To allow/disallow specific mode, you use following datatypes:
--- FrooxEngine.FirstPersonTargettingController (first person)
--- FrooxEngine.ThirdPersonTargettingController (third person)
--- FrooxEngine.UI_TargettingController (UI targetting)
--- FrooxEngine.FreeformTargettingController (Freeform Camera)

- Added character constants (under String/Special Characters) (based on request by RobertBaruch, @Zyzyl, @Shadow Panther [RU/EN, UTC+3], @Alex from Alaska and @Jack)
-- \n, \b, \a, \t (tab), \r, \v, \f, ' ' (space)
- Added "Total Visists" as sorting parameter to the Worlds interface
- Added "RunAfterInputUpdate" to AvatarPoseNode which will run posing after all input interactions update
-- This is necessary for the View node, so the pose doesn't lag a frame behind
- Added simple OAuth API endpoint to fetch user profile information: https://cloudx-account.azurewebsites.net/api/user/profile
-- This requires at very least the profile scope and email and patreon scopes in order to include information about those two respectively

[h2]Tweaks:[/h2]
- Upgraded to the latest version of Assimp (3D model import library) from the source for Windows and Linux
-- This includes about 400 commits of additions, tweaks and fixes which should improve the general format support
-- This should potentially fix crashes on Linux when importing models with no armatures (reported by @Roxas)
- UI Aligned Camera can now be activated on objects that don't have any other interactable on them (e.g. Grabbable or Touchable) (based on report by @Shifty | Quality Control Lead)
- Improved head aiming in the UI Aligned Camera mode, to avoid the avatar hand pointing at awkward angles
- 'char' datatype is now implicitly cast to 'string' when connecting LogiX inputs
- Various security improvements (based on moderation team reports)
- Generating Bone Data diagnostic in the inspector now formats the matrices to avoid overly tiny numbers from hampering readability
- "Create New" dialog positioning is now consistent with other dialogs (this fixes it spawning at wrong point in UI Aligned camera mode and similar)
- Horizontal and Vertical expression Min/Max are now defaulted to -1...1 when assigning with heuristics on the AvatarExpressionDriver (based on report by @3x1t_5tyl3)
- AvatarExpressionDriver now resets all blendshapes to 0 when data source is null, rather than the Min value (based on feedback by @3x1t_5tyl3)

- Merged Spanish locale additions by @Ruz
- Merged Esperanto locale overhaul by @Yellow
- Merged Czech locale tweak by @rampa_3 (UTC +1, DST UTC +2)
- Merged Korean locale tweaks by @MirPASEC

[h2]Bugfixes:[/h2]
- Fixed items jumping to origin when in UI Aligned Camera mode, clicking to align the item and immediatelly letting go (reported by @Shifty | Quality Control Lead and @Snooper)
- Fixed input groups now resetting when disabled, causing inputs to get stuck in the last state in some cases
- Fixed grabbed items in desktop mode sometimes getting rotated relative to the view due to the character turning from a procedural animation
- Fixed Undo steps not working for LogiX input nodes (reported by @AshtonSparx and @H3BO3)
- Fixed Tool shortcuts in Desktop mode leaving behind "Holder" slots (reported by @3x1t_5tyl3)
- LogiX Interfaces, Drive and Reference nodes now spawn properly when in UI Aligned camera mode (based on report by @Shifty | Quality Control Lead)
- Fixed exceptions when saving items that have no children (found in a log from @Shifty | Quality Control Lead)