/OyasumiVR

๐Ÿฅฝ VR Sleeping Utilities

Primary LanguageTypeScriptMIT LicenseMIT

๐Ÿ’ค A utility to assist with sleeping in virtual reality. ๐Ÿ’ค

Latest Version Development Build Status License
Discord Badge Steam Page BOOTH.pm Page Gumroad Page
Ko-fi Page Patreon Page

If you want to come chat, join our Discord Server!

English Japanese
ๆ—ฅๆœฌ่ชž
Korean
ํ•œ๊ตญ์–ด
Steam | Gumroad | Readme Steam | Booth | Readme Steam | Readme
Simplified Chinese
็ฎ€ไฝ“ไธญๆ–‡
Traditional Chinese
็น้ซ”ไธญๆ–‡
Bahasa Indonesia
Steam | Readme Steam | Readme Steam | Readme
Russian
Steam | Readme

Download & Install

Grab our latest installer from whichever place you prefer:

Just run the installer and you should be good to go!

What is OyasumiVR?

OyasumiVR is a desktop application containing various utilities and automations to help you sleep with a virtual reality headset on. Most of these utilities are built specifically for use within the social vr-platform VRChat.

OyasumiVR can detect when you are asleep, and help you in various ways such as:

  • ๐Ÿ”‹ Saving electricity and battery overnight
  • ๐Ÿ”… Dimming your headset brightness
  • โœจ Triggering avatar animations based on your sleeping pose
  • ๐Ÿ“ฉ Automatically handling invite requests
  • ๐Ÿ”ต Automating your VRChat status
  • ๐ŸŽค Muting your microphone when you fall asleep
  • ๐Ÿ› ๏ธ Automating various SteamVR settings

...and many more! Please see the upcoming "Features" section to read more about what functionality OyasumiVR has to offer.

Support OyasumiVR

OyasumiVR itself is completely free, and will always be free. However, if you want to support me and the development of OyasumiVR, here's a few places you can do so:

Ko-fi Page Patreon Page

By supporting me, you help me dedicate more time to developing new features, improving the current functionality, offsetting some of the costs that come with the development process, and fueling my coffee addiction โ˜•.

I'm not done with OyasumiVR anytime soon: there is a lot more I want to work on!

Features

๐Ÿ’ค Sleep Detection

OyasumiVR can detect automatically when you are asleep, based on your movement! Simply calibrate once, enable the automation, and you're set.

If automatic detection is not what you're looking for, there's various alternative automations you can use, that are based on:

  • A time schedule
  • Controller & tracker battery levels
  • Controller & tracker power states
  • SteamVR status
  • Heart Rate
  • Sitting Upright
  • VRChat players joining or leaving

๐Ÿ“ฒ SteamVR Overlay

OyasumiVR comes with its own SteamVR overlay, which allows you control some of its features from within VR!

By default, double press the A button on your right controller, and it should pop up in front of you.

๐Ÿ”‹ Power Automations

Controllers & Trackers
Automatically have your controllers and/or trackers turn off when you sleep, and save their battery! You'll be happy when you wake up in the morning and find they'll still have some juice left in them!

Additionally, you can have your controllers and/or trackers turn off at certain battery levels, or when you put them on the charger. Ideal for hotswapping controllers!
Windows Power Policy
Save some electricity by automatically setting Windows' Power Policy when you go to sleep and wake up! Simply have it set a more conservative policy (like "Power Saver") when you go to sleep, and then restore a higher performance policy when you wake up again.
Base Stations
Have OyasumiVR turn your base stations on and off together with SteamVR. A bit like SteamVR's own base station power management, but compatible with any HMD! As long as your PC supports Bluetooth and is in range of the base stations, you're good to go.

๐ŸŽฎ Device Control

OyasumiVR can allow you to easily control many of your SteamVR devices, from controllers, to trackers, to base stations.

Easily read detailed battery level and charge status for your controllers and trackers, or turn your base stations on and off with a single click!

๐Ÿ”Œ GPU Automations

GPU Power Limiting
Save electricity by automatically power limiting your GPU when you go to sleep, and restoring its full power when you wake up! Simply set the desired watt limits and OyasumiVR will set them when needed.

Power limiting is only available on Nvidia GPUs. AMD users can instead make use of the MSI Afterburner automations.
MSI Afterburner
If you want more control over your GPU than just setting the power limit, you can have OyasumiVR automatically activate the profiles you've set up in MSI Afterburner. Tweak your over- or underclocks, power limits and more, and have OyasumiVR call for them when you go to sleep, or wake up!

๐Ÿ’ซ VRChat Automations

๐ŸŒœ Sleeping Animations
OyasumiVR can detect what sleeping pose you are in, and use it to trigger the right animation or pose on your avatar.

There are built-in presets for popular locomotion assets, including:


Alternatively, trigger your own animations with the included OSC script editors!
๐Ÿ“ง Auto Accept Invite Requests
Automatically accept invite requests from specific friends while you are asleep! You can add the friends you want to let in to the whitelist, or even block certain friends from having their requests automatically accepted with a blacklist.
๐Ÿ”ต Status Automations
OyasumiVR offers multiple automations for controlling your VRChat visibility and status message, like when you fall asleep, or wake up!

Additionally, you can have OyasumiVR automatically switch your status based on the amount of people around you in VRChat. For example: Switch to blue when you are sleeping alone so your friends can join you, and switch to orange when there's enough people around!
๐Ÿ”” Join Notifications
OyasumiVR can notify you when people join or leave your VRChat world. This is useful if you want to be woken up in certain situations.

It can configured to only notify you in specific situations, like only:

  • For your friends
  • For certain specific players
  • When you're being left alone
  • When you're no longer alone
๐Ÿƒ Avatar Automations
You can have OyasumiVR automatically switch your avatar when you prepare for bed, when you fall asleep, or when you wake up! Useful if you have a specific avatar you use for sleeping.
๐Ÿ”ง OSC Automations
You can send certain OSC messages to VRChat when sleep mode is enabled, or disabled. You can use the built-in OSC script editor to compose the exact messages you want to send.

This is a more advanced feature that you can use to trigger certain features on your avatar. For example: Show a sleepy expression on your face while sleep mode is enabled!

โ›” Shutdown Sequence

Ever wanted to fall asleep in VR, but not stay in VR all night? The shutdown sequence has you covered!

While you can trigger the shutdown sequence manually, there are several automated triggers you can configure:

  • When you've been asleep for a certain amount of time.
  • When you're left alone in your VRChat world for a certain amount of time.

Depending on which actions you configure, it will do any of the following:

  • Turn off your controllers and/or Trackers
  • Turn off your Base Stations
  • Quit SteamVR (And any running game or overlay along with it)
  • Shut down Windows

With the shutdown sequence configured, you can fall asleep soundly in VR, knowing that everything will shut down when you don't need to be in VR anymore!

๐Ÿ”… Brightness Automations

Automate your brightness for when you sleep and wake up. OyasumiVR can smoothly transition your VR headset's brightness, so it falls down gradually as you sleep without waking you up.

It allows you to control both software brightness, as well as hardware brightness if your headset supports it (e.g. Valve Index or Bigscreen Beyond). In addition to providing you with several automations, you can easily control your brightness levels right from the SteamVR overlay menu!

๐ŸŽค Microphone Mute Automations

VRChat Microphone Mute Automations
You can have OyasumiVR automatically mute or unmute your mic in VRChat when you go to sleep and wake up.

Perfect if you'd like to prevent others from hearing you snore!
System Microphone Mute Automations
OyasumiVR can also do the same, but on a system level, muting your Microphone's audio device instead. With this, you can even switch between mute toggle mode and push-to-talk.

This comes with an optional mute indicator in the VR overlay, and the option for binding a controller button so that you can have it completely replace the microphone muting functionality of VRChat or any other VR game you play.

๐Ÿ”‰ Audio Volume Automations

Automatically change the volume of your audio devices when you fall asleep, or wake up! This can be useful if you want to prevent other players, or other applications from disturbing your sleep.

โ™ฅ๏ธ Heart Rate Automations (Pulsoid Integration)

To support heart rate based automations, OyasumiVR integrates with the online heart rate service Pulsoid. For this you can use any hardware that Pulsoid supports, like bluetooth heartrate monitors, WearOS smartwatches, or Apple Watches.

Note that this integration requires a one-time purchase of Pulsoid's OyasumiVR integration, or to have an active Pulsoid "BRO" subscription. Please ensure you have a compatible device before making a purchase.
Sleep Detection
You can set up OyasumiVR to automatically enable the sleep mode when your heart rate has been low enough for a certain duration. Just set the BPM threshold and for how long your heart rate should stay under it, and you're set! If you're not sure, you can get some simple insights to determine the right values for your body.
Nightmare Detection
OyasumiVR can detect when you've got a prolonged elevated heartrate, which could indicate a nightmare. With this feature you can try to cut your nightmares short by automatically deactivating the sleep mode (to for example, increase the brightness), or by playing a sound to attempt waking you up.

๐Ÿšจ HMD Specific Automations

OyasumiVR has various automations for controlling certain features specific to certain VR Headsets. Currently, this includes the following:

Bigscreen Beyond
  • RGB Led Control
  • Fan Speed Control

๐Ÿ‘“ Resolution Automations

Automatically adjust your SteamVR render resolution when you sleep and wake up! Having OyasumiVR lower your render resolution helps you reduce the load on your hardware at times when you don't need it.

๐Ÿ”ณ Chaperone Automations

Automatically adjust the fade distance of SteamVR's chaperone when you sleep. If you have a small play area, you can use this to make sure the chaperone stays hidden while you are asleep, and re-enable it when you wake up!

๐Ÿ  Home Assistant Integration


OyasumiVR can expose many of its own features, as well as SteamVR's, to Home Assistant over MQTT! This allows you to integrate OyasumiVR with various smart devices you might have in your home, as well as enable you to build your own powerful automations within Home Assistant. For example, you can use this to automatically turn off your smart lights when you fall asleep, or turn them back on when needed!

Here is a list of features exposed that you'll be able to read, or control, through Home Assistant:
OyasumiVR Features
  • Sleep Mode (Switch)
  • Shutdown Sequence (Button)
  • Sleep Preparation (Button)
  • Heart Rate (Sensor)
  • Sleeping Position (Sensor)
  • Base Station
    • Power (Switch)
    • Power State (Sensor)
  • HMD Brightness
    • Advanced Mode (Switch)
    • Simple Brightness (Number)
    • Software Brightness (Number)
    • Hardware Brightness (Number)
VRChat Features
  • VRChat Running (Sensor)
  • Player Name (Sensor)
  • # Players In World (Sensor)
  • Status Visibility (Sensor)
  • World Instance ID (Sensor)
SteamVR Features
  • VR Headset Model (Sensor)
  • SteamVR Running (Sensor)
  • Controller & Tracker
    • Power (Switch) (Only Powering Off)
    • Charging State (Sensor)
    • Battery Level (Sensor)
    • Device Roles (Sensor)

Bigscreen Beyond Features
  • Fan Speed (Number)
  • RGB LED (Light)
  • Brightness (Number)

Translation & Localization

OyasumiVR currently supports the following languages:

Help out with translation

OyasumiVR would not have supported as many languages as it does without the help of our fantastic volunteers. I personally think it's amazing that thanks to their efforts, more people get to use OyasumiVR than would otherwise have been possible.

If you want to support us, either by contributing missing translations, or by adding an entirely new language, please check out the wiki page on adding translations for instructions on how to get started! In case you're looking for more information, please don't hesitate to hop in our Discord and ask!

Supported Hardware

Battery Automations

Currently OyasumiVR supports turning off devices using its battery automations for all SteamVR devices that:

  1. Support reporting for battery levels and charging status
  2. Support being turned off via SteamVR.

This includes, but is not limited to the following devices:

  • HTC Vive Controllers/Wands
  • Index Controllers/Knuckles
  • Vive Trackers (1.0/2.0/3.0)
  • Tundra Trackers*

This means that any Oculus controller is unlikely to work, and SlimeVR trackers are unsupported unless they implement this functionality in their OpenVR driver.

(*) Tundra trackers have very delayed reporting of battery levels and charging status. This means that while battery automations will still work, they will be very delayed (minutes in the double digits), unless Tundra fixes this in their tracker firmware.

GPU Automations

Any NVIDIA or AMD graphics card that is supported by MSI Afterburner can be automated by having OyasumiVR activate the profiles you've set up within MSI Afterburner.

Directly controlling the power limits of your graphics card with OyasumiVR is only supported with NVIDIA cards. AMD users will have to use the MSI Afterburner profile automations to be able to control their power limits with OyasumiVR.

Brightness Automations

Controlling the hardware brightness of the VR headset's display is currently only supported on the Valve Index, and the Bigscreen Beyond.

Image brightness control is available on all headsets.

Built With

OyasumiVR's has been built with:

Development

Please see our wiki page on Starting Development.

VRChat

Some features of OyasumiVR require you to log in with your VRChat account for them to work. (E.g. status automations)

This is only required for features that rely on this. You can use features that don't rely on this without having to provide credentials. Your login credentials will never be stored anywhere but your own machine, and are only ever sent to VRChat's servers for authentication purposes.

OyasumiVR isn't endorsed by VRChat and doesn't reflect the views or opinions of VRChat or anyone officially involved in producing or managing VRChat. VRChat is a trademark of VRChat inc. VRChat ยฉ VRChat Inc.

The OyasumiVR developer and any of this project's contributors are not responsible for any problems caused by OyasumiVR (to your VRChat account or otherwise). Use at your own risk.

Aptabase

OyasumiVR's telemetry is provided by Aptabase, which provides open source, privacy first and simple analytics for mobile and desktop apps. Aptabase was picked because it aids OyasumiVR's development by providing crash reports and anonymous usage statistics, while still respecting your privacy as best as possible.

The telemetry is completely anonymous and sends no personally identifiable information. Its only purpose is to provide the aformentioned crash reporting, and basic anonymous usage statistics such as application starts and language preferences. This data is only used for finding and fixing bugs, and other general improvements to OyasumiVR.

You are able to opt out of telemetry within OyasumiVR's general settings. For more (technical) information, please check out the (very short!) Aptabase Privacy Policy.

Support

If you are having trouble with OyasumiVR, say you have a bug, or a feature request, you can join our Discord server.

Alternatively, you can reach out to me directly on Twitter at @Raphiiko. I'll try to get back to you as soon as possible!

License

OyasumiVR is available under the MIT license.