Developer Update - 9 March 2023

Welcome to the Developer Update for 9 March 2023! This is the eighth Developer Update of 2023.

Thank you (again!) to DrMorro for their world Olympia Nights, which we’ve used in our Dev Update thumbnail this week! Sorry, no cute joke here, it’s just a gorgeous world.

If you’d like to catch up, you can read our previous Developer Update from March 2.

We’re Hiring!

While we’ve always got our Careers page stocked up with positions we’re looking to fill, we’ve recently added a few new ones!

If you’d like to join our amazing team and help build VRChat, check it out! We’re a fully remote company that hires worldwide, and offer a ton of great benefits.

We’ve hired quite often out of our community (oh hey, myself included) and a lot of our unique strengths come from that. If you want to contribute and help develop VRChat, apply! (If you aren’t a member of the community, don’t worry, apply anyways! We’ll show you how deep the rabbit hole goes.)

Creator Companion 2.0 RELEASED!

We’ve finally released VCC 2.0, also known as the “Web Creator Companion”! It uses tech that is much faster and easier to maintain, in addition to working across platforms! This version replaces the previous VCC.

To install it, head over to our Downloads page and grab it.

To upgrade, simply launch VCC and click the big ol’ Update button in the top left.

If you’re curious, @Fax has made an excellent video walking you through all of the features and processes for the VCC.

As previously noted, you can still download new VPM-compatible UnityPackages. These UnityPackages extract into your Packages folder. These packages are meant to support users who cannot use the VCC due to platform or other limitations. They can only be used on new projects.

:warning: WARNING: These UnityPackages CANNOT be used to upgrade non-VCC-migrated projects. Importing one of these new UnityPackages to a non-VCC project will break that project. Please migrate your project using the VCC instead.

SDK2 UnityPackages are no longer available for download. At a future date (undetermined, but on the scale of “months away”), SDK2 worlds and avatars will no longer be permitted for upload. We will support existing SDK2 content within VRChat for as long as possible. This will be the last info update regarding SDK2 until we establish a date for upload blocking.

If you are maintaining a SDK2 world project and want to migrate, CyanLaser maintains CyanTrigger, which provides a SDK2-like interface for Udon. He also has created a SDK2 migrator, which can auto-convert SDK2 to SDK3, including complicated assets like the Standard Assets package that was supported with SDK2.

VRChat 2023.1.2 Update

We’ve just released 2023.1.2 to Live!

The full patch notes can be read in our documentation, but you can also check out our latest Video Patchnotes too!

This update heavily focuses on a bunch of improvements and bugfixes, primarily around providing some quality-of-life changes to make it easier to use VRChat.

Ongoing Development

Upcoming Avatar Jam

It’s that time again: We’re hosting our first Avatar Jam of the year! Submit a public avatar and show off your skill and creativity to the rest of VRChat’s community.

The event will run from March 10 to March 27. When we publish the info on the Jam, it will include qualifications, terms and conditions for entry into the Jam, and all the other necessary information.

Stay tuned for more details and the official announcement!

AsyncGPUReadback

Reading that title probably was enough for a small number of shader authors. :sweat_smile:

We’re implementing Udon hooks to allow asynchronous GPU readback! This feature has been in development for a little bit, and is now done and awaiting QA and internal feedback.

If you’re still a bit lost, here’s a real-VRChat example: this allows getting data from AudioLink into Udon without a huge performance cost! Right now, it is very expensive to do so. In fact, AudioLink advises against it.

With AsyncGPUReadback, you can get that data off the GPU much cheaper and use the AudioLink data to drive any kind of Udon-based logic, which is much easier than doing it all in shaders. Anything you want to do on the GPU that’s super expensive on the CPU can now be done on the GPU and then sent back to the CPU to affect things there.

You could, for instance, do a very expensive simulation on the GPU. You can then send the state of the simulation back to the CPU after the expensive calculations have been done. This isn’t the best example, but cloth simulations are in this category: The CPU could now know where each vertex of the cloth lives and do the heavy lifting on the GPU, which helps when doing things like collision.

Udon Ownership Bugs

We’ve recently tracked down and fixed a bug related to Udon Ownership transfers! This will be included in our next VRChat release.

This bug was reported to us via Canny. Currently, when the master of an instance leaves, the OnOwnershipTransferred event fails to fire. Creators can work around this with the OnPlayerLeft event - but that’s unintuitive and cumbersome. This bug has been fixed, and OnOwnershipTransferred will now fire for instance masters!

Google Drive removed from URL whitelists

Due to a security issue, we have had to remove GDrive from the URL whitelist. Google Drive is no longer a valid URL to use with any Udon that accesses the internet (video players, remote strings, remote images).

Just to put you at ease, we don’t think anything nefarious happened with these links. However, it was disclosed via our exploit report form that it was possible to “break out” of the approved URL list using GDrive, so we’ve decided to err on the side of caution and remove it.

Of course, you can still use Google Drive if you have “Allow Untrusted URLs” enabled in your Safety options. Please exercise caution using this option, and only use it in worlds that you trust.

Conclusion

That’s all for this week! A bit short, and not much flashy to show off-- we spent a lot of this week on getting 2023.1.2 ready for release, as well as a bunch of internal organization and planning.

We’ve got some very interesting stuff on the way for Groups! I wish I could tell you about it now, but it isn’t quite cooked yet and might change before we release. I don’t want to tell you about stuff we don’t have solidified completely yet.

Thank you for reading, and we’ll catch you again next week.

22 Likes

Great update!

Any chance we can get the camera to remember the Multi Layer setting it was last on? I always forget that it resets to the off position after I close and re-open the camera.

Thanks!

2 Likes

Are default animations from sdk2 going to be transfer to sdk3? Also super happy for the push for texture ram usage.`

1 Like

this is pretty good. :+1:

1 Like

heavy breathing intensifies, gasps

THANK YOUUU

!!!

4 Likes

I noticed the steam audio beta is kept in parity to current version. Is there any case of us possibly seeing this come to an open beta at some point?

Will the client eventually detect mesh vram usage as well? This seems to be an issues on certain high blendshape count avatars…

1 Like

you’re so welcome :smiling_face_with_three_hearts:

Eventually!

See above response!

No, probably not.

Humm… maybe? That seems reasonable. You should make a Canny post.

4 Likes

Ah, so that wasn’t a problem with my code, I was making so many weird workarounds for that lol

1 Like

I may still be dumb when it comes to shaders, but AsyncGPUReadback is going to lead to some fun things.

Screw coding in Udon, I’ll just use it as a compatibility layer and use shaders instead.

2 Likes

so does that mean the Linux in a pixel Shader is going to get more powerful

3 Likes

I also want to bring this up again Canny

We can already force rotation using TeleportTo and stations, but coding that is needlessly complex when there should just be a way to rotate the player.

TeleportTo can’t be used because it seems to have a bug in regards to its rotation argument that almost seems to cause it to invert the horizontal rotation when the players view passes over ~330 and ~30 degrees, up and down (depending on avatar).

1 Like

Since we’re doing a canny posting
Will there be a way to change the maximum loading time for Dynamic Images? This takes too long, and users prefer the option to set their local rate for downloads

[1286] Dynamic Images based on Users’ Choice | Voters | VRChat

1 Like

If you’re planning to do more of these patch update videos as well as the learning ones like CC, sounds like you’re going to need more video editors. :smiley_cat:

(please hire me i got laid off due to covid and want something fulltime again instead of freelance)

Why not make it something thats toggleable per world, instead of only globally, like it is right now? i feel like most users just enable it once and then forget about it (me included)

2 Likes

My avatar resets to previous clothing everytime I join or rejoin worlds…???

1 Like

Thank you for the great work! Is there somewhere we can get an overview of how this will work, or even better, do some beta testing?

1 Like

Created a Canny about this when image and string loading got released.
More options for “Untrusted URLs” | Voters | VRChat

More upvotes on this is always good to properly get their attention on it.

2 Likes

Hype to hear about a new avatar jam! It’d be nice if this is used as an opportunity to fill more spots in the public avatar row. More variety in public fallbacks would be great, plus get even more creators in the spotlight~ ^^

2 Likes

The avatar parameters associated with the clothing toggles are probably not set to be saved then, if it is your avatar go into unity and check the “Saved” box on all of the parameters you want to not reset when going into a different world. if it isn’t your avatar you will have to ask the creator to do that
Looks like it may be a bug…

GPUReadback is a game changer ! cant wait to use it :smiley:
well done !

1 Like