Developer Update - 25 July 2024

Welcome to the Developer Update for 25 July 2024!

Today’s thumbnail features 真夏、往時の如し by 夏至邱芜.

Our last Developer Update was back on the 11th! Did you miss it? Go check it out here!

Announcements

Summer Music Jam is Still Open!!

Submissions are still open – they’ll remain open until August 2! You still have time to submit a world or avatar!

Check out the full list of requirements here!

About That “Security Update” Last Week…

Last week, we released a very small patch that only had two lines in the notes:

  • Safety and security improvements.
  • The camera had a bug where the menu buttons zigged when they should’ve zagged. We’ve rectified the situation.

So… what was that first one about?

This was a change that we rolled out specifically to combat avatar ripping.

We now validate much more strongly that only a verified VRChat client can download avatar bundles, and only when it is in an instance with somebody wearing that avatar. This allows us to determine when a download is coming from an unauthorized source and block it. This has been highly successful, and many ripping methods now fail entirely.

It required a bit of cryptography magic to make this work seemlessly across our infrastructure, but since version 2024.2.3p2 the system has been active and stable.

Starting on Friday, 19th of July, we blocked all outdated versions of VRChat from entering instances, since old builds would have tripped up the protection and not been able to load any avatars.

No platform has ever been able to entirely eliminate ripping, but we’re happy to see the results of these efforts. The goal of these changes is not to be a silver bullet, but to form a tighter and more cohesive safety net around your content as time goes on. We have shipped measures against ripping in the past, and we have plans already in motion to plug more holes in the future.

Additionally, we continually work on detecting this behavior and acting against people using tools to steal assets. As such, we recently issued a ban wave that affected over 1,900 users who used tools to rip avatars from other users.

You may have seen chatter on social media stating that these bans were issued against people putting certain text in their avatar descriptions, using software to “protect” their avatars, favoriting certain avatars, or other assumptions.

None of this is correct!

While we won’t share the exact detection method we used, our security team spent a large amount of time validating that it was both accurate and precise. We are very confident that all bans issued are legitimate and address an account who has broken our Terms of Service.

If you have been affected by one of these bans, you may appeal your ban by contacting our moderation team.

Hey! Let’s Talk About the Last Dev Update!

We received a few comments in the last Dev Update expressing disappointment that we didn’t talk about the progress of various features.

While we’ll be mentioning one or two things in today’s update that were asked about in the comments, it seemed like a good idea to spotlight some information about when you can expect updates on the things we’re not talk about today.

First: the SDK Roadmap!

Last May, we released a roadmap for our SDK. You can find it here.

As noted by Fax in a comment, we will be updating this roadmap in August.

That means that, next month, we’ll have an update on the status of projects like Persistence, Udon 2, Character Controllers, and more.

But hey – what about stuff that wasn’t listed in the roadmap? What about other features?

We’ve been paying attention to some of the things folks have asking about and will be trying to loop those projects in to the next roadmap update. While that doesn’t mean we’ll be able to get to everything, we’ll try to account for the major things people are asking about!

We hope that clears things up!

Heads Up Creator Docs Contributors!

We just added a contribution guide to VRChat’s Creation documentation! Please read it if you’d like to contribute to our documentation.

Different writers have different styles, so we wrote this guide to improve the consistency of VRChat’s documentation.

The contribution guide consists of three sections:

We hope you find this guide helpful! Please share your thoughts with us.

Ongoing Development

Unity AI Navigation

Our next release of the VRChat SDK includes support for Unity’s AI Navigation system!

  • Compared to previous versions, Unity 2022 has changed how AI Navigation works in Unity:
  • The system is now a separate package maintained by Unity rather than integrated into the core.
  • Runtime generation! You can now create and update your navigation meshes at runtime in the VRChat client. This was only possible in the Unity Editor before.
  • NavMesh Links and Off-Mesh Links are simpler to use.
  • NavMesh generation is generally improved and more robust.
  • Obstacles can be dynamic now.
  • You can use multiple NavMesh Surfaces within your world.
  • NavMesh Surfaces, Modifiers and Modifier Volumes provide more granular control over the system.

VRChat Constraints Update

Surprise! VRChat Constraints are now in Open Beta! We’ve talked about them a few times in these very Developer Updates, but here’s the short version, taken from the beta patch notes:

  • VRChat Constraints are a replacement for Unity’s constraints system that is more performant!
    • Constraints allow folks to do really cool things with avatars – but until now, they’ve been risky when it comes to performance cost. This was due to how Unity’s default contraints were calculated.
    • Our version is vastly more performant. That means creators can use more without impacting other folks around them.
      • This performance increase means that VRChat Constraints can be used on non-PC avatars!
    • It also means we can calculate their performance cost more accurately, so we’ll be adding them in as a tracked performance stat.
      • Seconary note: in addition, we now track a new stat called Constraint Depth. This tracks the deepest chain of constraints on your avatar. This helps us give a more accurate understanding of the performance cost of any constraint systems on your avatar.
    • You can automatically convert your avatar from using Unity contraints to VRChat Constraints using the SDK! We’ve been testing it behind-the-scenes for some time, and it works great!

For more information on VRChat Constraints, you should check out the Creator Docs, which you can find here.

SteamVR Skeletal Hand Tracking

VRChat’s finger tracking has been ported to PCVR!

We took the interaction model from our Quest finger tracking and ported it directly to PCVR, with a new finger UI to show the state of the inputs to help users know what commands will be activated.

VRChat will always let you use the skeletal data provided by SteamVR to animate your avatar, but when a controller (virtual or physical) indicates that it is using full finger tracking, that data will be processed and use gestural inputs.

Gesture Inputs:

  • Left Hand

    • Menu:
      • Look at your left palm and pinch your index fingertip and thumbtip together.
    • Locomotion:
      • Pinch your left middle fingertip and thumbtip together.
    • Mic:
      • Have your palm not facing away from your head, and pinch your left ring fingertip and thumbtip together.
    • Hand Input Toggle:
      • Have your palm not facing away from your head, and pinch your left pinky fingertip and thumbtip together.
  • Right Hand

    • Turning:
      • Pinch your right middle fingertip and thumbtip together.
    • Jump:
      • Have your palm not facing away from your head, and pinch your ring fingertip and thumbtip together.
    • Item Drop / Menu Back / Cancel:
      • Have your palm not facing away from your head, and pinch your right pinky fingertip and thumbtip together.

Any SteamVR controller driver that sends a full-fidelity hand skeleton and has that skeleton set in the VRChat bindings will be able to use this gesture interaction support.

One method of support is using the new beta version of Virtual Desktop (enable “Forward tracking data to PC” and “VRChat hand tracking”) to stream PCVR to a Quest with finger tracking:

Many other driver creators have been working on support. Community members are working on Linux support for hand tracking as well!

Users looking to play VRChat from their Linux PC may be interested in the Linux VR Adventures support & development group! They’ve developed their own drivers that solve many of the issues SteamVR has on Linux – as well as improving wired and wireless play, as well as a custom-tailored Proton distribution intended for VRChat video players.

Consult their wiki and access their community Discord/Matrix hub for setup and support assistance. Some helpful links below:

…but that’s not all!

SteamVR Input 2.0

With SteamVR Input 2.0 you can fully remap your controllers using the SteamVR bindings UI. Remap any action to any button you want on any controller. The customization possibilities are nearly endless.

This update introduces new gesture methods, including new mappable “Gesture Direct” buttons that let you explicitly map gestures to any button. This is helpful for triggering avatar effects via explicit button presses.

This means you can map almost anything: Earmuffs, Nameplates, Chatbox, and more can be one button press away with an array of new mappable shortcuts.

Oh, and this also means that auto-hold is now a thing! Tired of holding the grip button for equippable items like pens and grappling hooks? The option to auto-hold them is now active if the new “Drop” action is mapped. Now you can press once to pick those equips up and press again to drop them!

Please check out the SteamVR Input 2.0 update available now on the Open Beta of the Steam version of VRChat.

More Web Updates!

The web team has been busy once again! We’ve got some more updates available now at vrchat.com/home:

  • There are now descriptive page titles across more of the site!
  • Search results are now shown with tabs for users and worlds instead of one long list.
  • The gallery sections now have their own URLs; no more jumping back to the icon tab when you upload an emoji.

Thinking With Portals

We have completely overhauled the visuals and some technical aspects in regards to portals!

The following things have been changed:

  • Overhauled Visuals: This includes a new custom shader and new particle animations.
  • Improved Thumbnails: World creators spend a lot of time creating thumbnails for their worlds so we wanted to make sure these are more visible in our refresh. Images inside the portal are less squished and are no longer obscured by a ripple effect.
  • Parallax Effect: Thumbnails now have a subtle parallax effect when viewed from different angles.
  • New Animations: Portals are now more likely to properly create holes in the space-time continuum. 100% more dangerous and equally more fun.
  • Updated Text: We’ve modernized the font used for portals to align with the rest of our user interface, replacing the ancient relic previously in use.
  • Text Positioning: The origin point for portal text has been adjusted, making it easier for smaller players to read when standing close to the portal.

Here’s a video of them in action!

We’ll hopefully get these changes out to you soon!

Conclusion

That’s it for this Dev Update!

The next text update is scheduled for August 8. Seeeee you then

28 Likes

pretty cool animation + lovely :+1: :hearts:

4 Likes

This link appears to be dead?

Suuuuuuper excited to give this a try!

New Portals look awesome to, but it makes the timer a lot more…subtle? It’d be nice if the countdown text was emphasized more.

1 Like

Yay! Input 2.0 is exciting. Getting some HD headpats from friends with hand tracking on PC lol.

The updated portals look cool!

VRCConstraints are still amazing.

The avatar bundle download changes to combat ripping are also very good to see. While of course no system will ever be foolproof. Any change in the direction of less ripping is one I am happy to see!

4 Likes

This is honestly a neat thing, but as of right now gestures are broken on Vive Wands. It would also be nice to be able to have a lot more control over finger tracking behavior or even outright disable it. This was something I’ve read about that was requested in 2019.

2 Likes

Is there any way u can do that expanded controller customization for Quest controllers, too, please? It’s really illogical to have such a limited custom controls tab and not let us change every button’s action. What if I want my top button or my triggers to have a different fuction? Seriously, why can we only change the joystick button and the bottom button? Please change this and give us Quest users the same expanded controller customization that u just gave Steam users.

1 Like

We’re aware of the issues with Vive wands in the open beta and are currently working on improvements!

6 Likes

Love the new portals. Although I also think that the timer should stand out a bit more. Maybe instead make the timer a bit bigger and bold to get peoples attention that time or running out.

1 Like

Also this is super clean compared to what we have now :sob: hope it comes out of testing

3 Likes

Would be cool to see particles shoot out when a player enters the new portal.
Having different particles if a player logs out, disconnects or enter a different world through the menu would be even cooler.

1 Like

The link should be fixed now!

2 Likes

It’s a wonderful beta right now, I’m enjoying the new fingers.

1 Like

VRC Constraints are awesome! Even in esoteric constraint setups they seem to convert over pretty much perfectly. Thanks to the team for adding utilities for conversion outside just avatar hierarchies.

Really hope we’ll see more development on them in the future to add new types of constraints like the ones in Blender. (Such as Stretch to, Limit Distance/Rotation/Location/Scale, Camera solver, ect)

Going to bind earmuffs to my hip tracker, great toggle to have access to without a menu.

With earmuffs being added to a steamVR input, is there a chance we’ll see an OSC endpoint for them too someday? I’d love to make an app that kicks earmuffs on based on volume, and maybe even adjusts the earmuffs settings.

2 Likes

A lot of these new customizations are thanks to Valve’s work on SteamVR Input systems which simply don’t exist on the Meta platform, unfortunately. It can’t be ported, either, as it depends on SteamVR directly.

We’re always looking to improve the experience for everyone across all platforms, so when/if Meta implements a similar customization system into the Quest OS, we’ll look into it!

Good feedback on implementing our own layer, though. We’ll take that into consideration.

If such an API and system already exists on Meta Quest forgive me, I haven’t dug in as deep myself so I’m making a guess :sweat:

3 Likes

Can you guys please just make a trello-style website or something that we can go to as a single URL/link to see the status of current features? Going to a roadmap that exists at a specific URL which often is oudated 2-3 weeks later because of re-prioritization or scope creep doesn’t help.

That, or utilize the canny more heavily. It is great since it provides a basic status of some things, and I have seen Fax post their own canny features to keep track of some things. But currently, it’s really hard to navigate the canny to find those.

It would be way, way easier to see the status of pending features if it was just a task board like Trello. All visible in one page with smaller cards so we can see more at once. Please consider this.


Otherwise, all the other features are exciting and I appreciate the steps taken to reduce ripping. I can see the team is putting in a lot of work.

I also hope we will hear more about Udon 2 :slight_smile:

6 Likes

Portals look awesome, the parrallax is pretty! Avatar frames next? :eyes:

5 Likes

Is it possible to release the old legacy portal prefabs? They’ve been a staple of VRChat and it would be nice to make them available for world creators tonuse as a prop

4 Likes

I love the new portals, the animation is pretty neat and adds a lot but I will say the timer is not as obvious as I feel it should be.

We hear ya! Going to see what we can do here to make the timer a little nicer

7 Likes

I’ve noticed that quest particles are broken again. As in they don’t show up properly. Was something also changed in this update that would affect that?