OSC is a way to get different devices and applications to talk to each other. It's a favorite method of creative coders and people making weird interactive things because it's fast, networked, and very open-ended.
We're expanding OSC support in VRChat so you can control Avatars and Worlds in all sorts of new ways, and stream data out of VRChat to control other things, too! We're launching with two APIs: Input and Avatar Parameters.
You can enable it and then use an OSC-compatible application or device to stream data into VRChat, or to read data coming from it. This wiki is mostly full of info for people that want to make these applications. We'll add links to these sorts of apps after this info has been available for long enough for people to make them.
For VRChat, we default to receiving on port 9000 and sending on port 9001. So an external program you use to send messages into VRChat should send to 9000, and if you want to listen to messages from VRChat, your application or device should listen to 9001. You can change these values with a command line arg:
If you were to replicate the default settings on the command line, they would be:
Note that you can also use 'localhost' instead of '127.0.0.1' if you like. If you wanted VRChat to send data to another device on the network, you would put that ip in the middle like this:
You'll need some OSC tools to test these features!
If you want to build your own from scratch, you have a few choices.
If you're building something using C#, you can grab the all-in-one branch of OscCore, which is the OSC lib VRChat uses internally.
If you're using Python, you can look into python-osc, which we have used for some internal testing with no issues.
You can turn on OSC in the Action Menu under Osc > Enabled.
Check out the Debugging page to see some incoming values whether or not they match up to anything.
Since interacting with VRChat's OSC APIs requires downloading programs from the internet, exercise caution! Ensure you are downloading a well-known, trustworthy application. Ask others who are using OSC to see what they're using.
If you have the expertise, consider writing your own implementations for your setup!
Updated 7 months ago