GithubHelp home page GithubHelp logo

raphiiko / oyasumivr Goto Github PK

View Code? Open in Web Editor NEW
232.0 3.0 18.0 110.43 MB

๐Ÿฅฝ VR Sleeping Utilities

License: MIT License

JavaScript 0.98% Rust 11.20% TypeScript 52.64% HTML 12.37% SCSS 5.04% CSS 0.15% C# 15.79% Svelte 1.66% PowerShell 0.02% Shell 0.15%
openvr steamvr vr vrc vrchat angular tauri vrchat-osc valve-index valve-index-lighthouses

oyasumivr's Introduction

๐Ÿ’ค 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.

Currently only V2 Lighthouses are supported.

๐ŸŽฎ 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.

oyasumivr's People

Contributors

a9ito avatar fanyatsu avatar flower-elf avatar i0ntempest avatar inkuxuan avatar milix-m avatar naki79 avatar neuroblack avatar pacmard avatar raphiiko avatar senkodev avatar themrgong avatar xof-elttil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

oyasumivr's Issues

OSC Automation Data Type Suggestion

Hello,
I really like the OSC automation tab, but I feel like Chatbox OSC integration would be used more frequently than the other types. For example when "Oyasumi detects you are asleep based on your movement" or when "At specific time", more tech savvy users could make a Chatbox OSC automation that will display for how long they've been asleep for or/with any other custom text (maybe expose more variables to the user, since I assume it keeps track for how long your "sleep mode" is activated for).

Here's some resources around how to call Chatbox OSC address that I've found:
VRChat change-logs mentioning variables for the endpoints
very simple OSC Chatbox application & easy to understand

At last here's some simple graphical preview, that I made in Photoshop at how such feature could look like:
Oyasumi_Up5yfIGLDv

Let me know your thoughts on this! I find this project really interesting not just from sleeping in VR pov.

[Request] More power automation options

Would love to have that option if possible:
In hardware automations -> Power Automations, an option to disable controllers/trackers when both conditions met - in sleep mode and controller/tracker battery goes below a certain %.
For example, I want it to disable controllers when sleep mode is active and controller battery goes below 10%
But right now you can't do that if you use automatic sleep detection based on movement
Hope I explained it good enough

[Request] Option to disable all VR overlay prompts

I've been using 1.7.2 for a long time and recently picked up the Steam version which is v1.9.0. The overlays are new to me.

The overlays are neat but a little unnecessary for some of us. Can we get an option to completely disable the VR startup logo and the Activate/Deactivate prompts? I personally use Oyasumi for the one click power tuning option & batch tracker disabling via Steam desktop view.

Feature request: Whitelist friends bulk import

Searching for friends when creating a whitelist is somehow very laggy. Sometimes stuck for even a minute.
Would appreciate if the whitelist can be manually edited using a configuration file or anything likewise.
(Right now I'm manually editing the JSON file in %UserProfile%. However this could be risky for some users)

Logging in with VRChat accounts without 2FA enabled causes various issues

The following issues were noted based on a user report:

When logging in with a VRChat account that does not have 2FA enabled:

  • The login window does not close when the login is successful
  • Friends will not load in friend selection dialog
  • (Possibly) websocket refuses to connect or stay connected

Workaround:
You can temporarily get around these issues by:

  1. Enabling 2FA on your VRChat account
  2. Logging out on Oyasumi and logging back in
  3. Clearing your Oyasumi cache in Settings -> Debug -> Clear Cache.

Users without 2FA enabled on their account are recommended to log out from Oyasumi until this bug has been resolved in the next update.

Toggle Sleep State using OSC

I think it would be a nice feature if you could enable and disable sleep mode using a bool parameter and OSC.
That would make it possible to add a toggle to the expression menu or use a contact or something on the avatar without having to resort to overlays to show the desktop and the application.

Toggle for OSC

There should be a clear on or off switch for Oyasumi's OSC features. I personally do not use any Oyasumi OSC integration but learned the app occupies ports regardless.

I didn't remember or assume OSC from this app was on by default and was confused why another app was spitting errors at me until I remembered Oyasumi had OSC integration. Searched Oyasumi an option to disable OSC to no avail; Instead I just set the ports it uses way out of range of my other apps.

Make strings for the current language and language switching available on Rust side

Currently, the Rust side cannot access any translations. These are only available in the frontend.

Ideally, the frontend should send the translations to the Rust side on startup, as well as whenever the language is changed.

The Rust side should be able to update its shown translations (e.g. for the system tray from #22) whenever the active language is updated.

Improve user interface with cute drawings and/or graphics

Are you an artist who enjoys using Oyasumi and would like to help improve it? I could use some help:

I feel like it would be great if Oyasumi's UI could be polished up a bit with some cute drawings, to make Oyasumi a bit more fun to use. I'm thinking something along the lines of small chibi drawings of booth avatars, similar to the ones below.

An idea I had is to have the sleep mode state be represented by one that is either awake or sleeping.

Here are some examples of spots these could potentially go:

If this is something you would want to help out with, please do get in touch!

Can't change OSC port

I manually changed VRChat's osc port, but now the problem is that I can't find any Settings in OyasumiVR to change the osc port, which seems to have been removed since version 11.0? I can't use anything that requires osc now.

Possible network swamp or security flaw

Since installing the app on Steam 4 days ago, everytime I would open SteamVR, our access points would start heating up and our wifi would shutdown intermittently. Since uninstalling the application yesterday, our network is no longer overwhelmed when SteamVR is opened.
I suspect that this might be because of something related to the broadcasting that is being done for OSCQuery, but I cannot say. The issue persists even in VRChat.

Auto limit GPU after certain time

Hi - This is a really awesome project. I've wanted something like this for a while and i'm glad someone with the right experience is working on it. Thank you for your contributions!

I think GPU limiting functionality would be really beneficial. It would save a lot of energy consumption when asleep since most peoples GPU's are running at almost full load while sleeping in VRC. Its unnefficient and has other downsides like increased heat and worst case scenario, lower hardware life span. There is another tool that is able to do this, but it isnt in English which makes it difficult to use for me and others:

https://github.com/njm2360/VRChatGPUTool

Also being able to auto limit the game resolution when sleeping would be great, but I'm not sure if its even possible to override SteamVR's resolution with an external app. Worth mentioning but I understand if it cant be done.

I hope you consider this, thank you once again :)

MDNS broadcasts do not function properly for certain users

Issue description

MDNS broadcasts that advertise OyasumiVR's OSCQuery server to VRChat completely fail for a select group of users.

Symptoms

  • Large log files: Contain a lot of socket related errors, sometimes filling up the users disk
  • VRChat not picking up OyasumiVR's OSCQuery server, resulting in none of the OSC-related functionality working.
  • Possible network overload, resulting in degraded network performance.

Workaround / Mitigation

Instructions for disabling MDNS broadcasts

Note that this will prevent any OSC related functionality in OyasumiVR from working. This disables the MDNS broadcasts that advertise OyasumiVR's OSCQuery server to VRChat.

  1. Find the installation folder of OyasumiVR (This should contain the OyasumiVR.exe executable)
  2. Next to the executable, you'll find a file named flags.toml. If it doesn't exist, create it.
  3. Within this file, find the DISABLE_MDNS flag, and set it to true. If the file does not contain this flag, instead append a new line: DISABLE_MDNS = true
  4. Restart OyasumiVR

Planned Fixes

  • Taking the zeroconf/mdns implementation from vrc-oscquery-lib, and running it as a separate process, to replace the current MDNS broadcast implementation.
  • Automatically cleaning up older logs that exceed a couple of megabytes in size
  • Automatically cleaning up logs older than a month

[request] Add an Alarm

Yesterday I used OyasumiVR for the first time, and I thought it would be nice to add an alarm from the quick menu for the current session.

It could, on said hour, play a sound, and start doing the stuff that is configured to happen when the user wakes up (like brighten the screens)

I cant install OyasumiVR

When installing the program I get the message:

"install missing runtimes

the following runtimes that are needed by OyasumiVR are either too outdated or not installed on your system

-.NET Runtime 7.0.10

-ASP.NET Core Runtime 7.0.10"

I have tried several times to install both runtimes, making sure that it is the correct version, restarting the pc, uninstalling and reinstalling oyasumiVR but I still get the same error.
Screenshot 2023-09-07 144102

Memory leak in Angular UI

Currently, there is a memory leak somewhere in OyasumiVR's UI, that some of y'all are running into, but which I cannot reproduce. Not being able to reproduce it, makes it insanely hard for me to track down.

How do I know I have this problem?

If OyasumiVR shows you this screen sometimes, you've ran into the issue.
7cb4ebfe-53d9-4184-b20c-a68f43443ce2

Instructions for taking a heap snapshot, no longer relevant

What can I do to help

I need someone to make a heap snapshot for me to analyze. Hopefully with that, I can find out where the leak comes from.
This is however a bit of an annoying process, as the snapshot has to be made when the memory usage is building up, but the issue hasn't occurred yet:
Once the screen in the previous screenshot shows, it's too late to make the snapshot.

How do I get started

When to make the snapshot

First of all, we need to detect the moment where we need to make the snapshot. For this, I've put a memory watcher in OyasumiVR.

After starting OyasumiVR, you can activate this by going to Settings -> Advanced settings -> Scroll all the way down -> Clicking "Activate" on the memory watcher.
ca42ef1f-5d1c-4954-8221-2814df7b8b73

When OyasumiVR starts using a problematic amount of memory, it will notify you using an error dialog:
8774c235-8be6-4d1d-8539-44ea7ccfae97

Alternatively, you can keep an eye yourself on the memory usage in task manager. If OyasumiVR is using over a gigabyte in total, that's already way too high.

This is your cue to take the heap snapshot.

Taking the heap snapshot

Once you're in this state where OyasumiVR is still running fine, but using a lot of memory, this is when you need to take the snapshot.

  1. Start by opening the dev tools: Settings -> Advanced settings -> Scroll all the way down -> Clicking "Open DevTools"
    c0b63c10-9652-4b7a-a147-ac57e1ef7b33

  2. Make the Heap Snapshot (Steps below):

490b04fe-c803-4872-b10e-a8969ac0a63f

  1. Find the "Memory" tab
  2. Choose "Heap snapshot"
  3. Check "Include numerical values in capture"
  4. Click "Take snapshot", this will take a bit, possibly a few minutes even
  5. Once it's finished, click the snapshot

Finally, click the "Save" button on the snapshot you just made. Feel free to DM the file to me on Discord, or alternatively you can send it to me on iam [at] raphii [dot] co.~~

image

Color temperature and brightness time based automations

Looking to finally replace LuxVR with OyasumiVR but am missing the ability to set color temperature automations and also have both color temperature and brightness change at different times. These are a pretty big necessity for me because otherwise I will not get naturally tired and fall asleep in VR. Also I'm pretty sure that OyasumiVR overrides LuxVR's brightness settings anyways.

Disabling Discord Rich Presence

I don't see any way to disable Discord Rich Presence. Could you add an option to? I'd rather show my friends which VRChat world I'm in rather than if I'm sleeping or not...

Character mid air?

I've got an issue with avatars using Gogoloco being in a lay down pose before Oyasumi's sleep mode kicks in and the animation switches, this usually causes the avatar to float in the air in the sleeping position. From what i've noticed the ground offset in Gogoloco menu changes to some really high number. Trying to alter it manually breaks the sleeping animations as my avatar stands up

Error at initialization

I got this error showing each time I start oyasumi in steam:
oyasumivr could not completely initialize, and therefore failed to start.

Add support for adjusting image brightness to brightness automations

Currently, Oyasumi only supports display brightness control, which is only supported on the Valve Index. This dims the LCD backlight. However, if it's possible to adjust the brightness of the image, more headsets could be supported. Image brightness would function absolutely identically on OLED headsets, and is still a fine fallback for others.

There are a few angles I've considered:

  • VRChat itself already has a brightness slider, but I could not find a way to control this externally. This would be an option if they ever made this controllable over OSC.
  • Oyasumi could leverage a popular overlay like OVR Advanced Settings (OVRAS). OVRAS has image brightness control, but they currently do not offer an API to adjust this externally. There is a general issue open for this functionality.
  • Oyasumi could add its own overlay to dim the image brightness like OVRAS does. The way to do this is something I've not been able to figure out yet.

If you have any other insights or ideas for other options, they would be greatly appreciated!

Unintended SteamVR Controller Haptics

While OyasumiVR is open, a SteamVR controller gets a haptic pulse when pulling or releasing the trigger.

Tested with Vive & Index controllers.

(Was discussed already, just making a git issue for tracking)

Make .NET overlay module self-contained

The problem of people running into issues with missing runtimes (.NET Core & ASP.NET Core) has been a major pain in the butt. OyasumiVR currently does work in various places to mitigate this issue by doing checks for existing installations, and doing automatic installations of the required runtimes whenever needed. However, occasionally, this still seems to fail due to some edge cases people run into.

This all could be simplified if the overlay module would publish as a self-contained binary. However, when I attempt this I seem to run into issues with one of the dependencies, namely CEFSharp. The project doesn't seem to build or the resulting binary does not run successfully (it's been a while since I tried this).

I personally have barely any experience with .NET, so if you think you have a chance at getting it to work, any help would be appreciated!

Logs taking up insane storage

image_2024-03-18_031232990
I have been wondering what has been taking up so much storage over the past few months. I've been kinda ignoring it up until now, but I just did a quick scan on wiztree, and I saw that oyasumi logs are taking up 210 gigabytes ;-;
Obviously the quick scan is not super accurate, but after deleting the files I have freed up 120GB of storage. Before removing these, I did make sure to delete the event logs in oyasumi, but that did nothing.
It would be nice to:
A) Have unneeded logs removed (I don't know exactly what all of these logs are used for, but I'd be surprised if all necessary items got anywhere near even a single gigabyte.
B) Have a way to remove logs in the app without having to manually go in through file explorer, or some other program.
(FYI, i'm not very active on github. I'll check back here every once in a while for responses, but if you ask for more info, and I don't respond, feel free to add me in discord - cosmiclazers)

Running Oyasumi as admin disables interaction via SteamVR overlay

In order to access GPU Automations, Oyasumi must be run with elevated permissions. This functions correctly but doing so disables the ability to interact with the program via the default SteamVR overlay. (like task manager and other elevated tasks) Running SteamVR as admin could potentially be a solution for this but if there's a workaround besides that it would be appreciated.

A optional native SteamVR overlay app like advanced settings could solve this issue. Alternativly the GPU automation settings could be handed off from the standard UI to an elevated sub program, this would also remove the need to reboot the program if you forgot to initiate it as admin.

The sleeping animations preset for GoGoLoco 1.7.1+ does not work when VRCFury was used to install GoGoLoco on the avatar.

Currently, the sleeping animations preset for GoGoLoco 1.7.1+ does not work when VRCFury was used to install GoGoLoco on the avatar. The cause for this is that VRCFury renames the GoGoLoco parameters to include a prefix.

A separate preset should probably be made for people who choose this installation method.
However, at this point I'm not 100% sure if the prefix will always be the same in every case.
EDIT: It's not, so I can't make any assumptions about the parameter names in a preset.

As it looks right now, the easiest solution would be to fix this on GoGoLoco's side by defining (some of) its menu paramaters as global parameters in VRCFury, so they don't get renamed.

In the meantime, a workaround is available to get the preset to work again: (Assuming GGL is the only/first module you have installed with VRCFury)
Discord_tTwXHzMZ89

Unexpected Quit/Crash while dimmed

Using sleep mode, activated sleep mode and after a while dimmed, oyasumi quit in the background and the dimming snapped back to off. Has happened 3 times now.

Log - OyasumiVR_2023-12-22_03-19-00.log

Status Information

{
  "OyasumiVR Application": {
    "Version": "1.11.1-STANDALONE",
    "Build ID": "4b630b2",
    "Elevated Sidecar": "Not running",
    "Overlay Sidecar": "Running"
  },
  "OpenVR": {
    "SteamVR": "Running",
    "Devices": "64"
  },
  "OSC & OSCQuery": {
    "OSC Host": "127.0.0.1",
    "OSC Port": "64716",
    "OSCQuery Host": "192.168.0.13",
    "OSCQuery Port": "55576"
  },
  "HTTP & gRPC": {
    "Core HTTP Port": "55568",
    "Core gRPC Port": "55569",
    "Core gRPC Web Port": "55570",
    "Elevated Sidecar gRPC Port": "Unknown",
    "Elevated Sidecar gRPC Web Port": "Unknown",
    "Overlay Sidecar gRPC Port": "55600",
    "Overlay Sidecar gRPC Web Port": "55601"
  },
  "VRChat": {
    "Client": "Running",
    "Login Status": "Logged in",
    "User": "ArtificialVR",
    "OSC Host": "100.109.118.69",
    "OSC Port": "9000",
    "OSCQuery Host": "127.0.0.1",
    "OSCQuery Port": "51208"
  }
}

lemme know what else i can provide :D

OyasumiVR flagged as PUP by Bitdefender AV

As the title of this issue states, Bitdefender Antivirus detects OyasumiVR as a PUP and labels it as a cryptominer. I am posting this issue to let the developer know that OyasumiVR conflicts with Bitdefender so that the conflict can be resolved as this is 100% a false positive from the anti virus. I will also see if I can submit a sample to Bitdefender to correct the false positive.

Cross-avatar virtual tracker posing

You could use OSC to create virtual FBT trackers, even on Quest, which can be "moved" around to pre-defined positions to create poses similar to locomotion animations from prefabs such as GoGo Loco.

It's an interesting idea, but may be better suited as a dedicated mobile app, or project, but I thought I'd share it cause it seems like something this project might be interested in.

1.0 Base station standby

by default SteamVR does support standby modes for 1.0 base stations but using shutdown sequence in Oyasumi with SteamVR shutdown enabled will cause SteamVR to skip setting base stations to standby mode, and Oyasumi built in base station standby and sleep modes only support 2.0 base stations in both tool tip and practice.

VRChat mute breaks mute keybind

When Oyasumi toggles mute in VRChat, either through the debug (Control microphone mute) or when sleep mode is enabled for example, the keybind to mute in VRChat will no longer work, but toggling through the quick menu or action menu will still work.

Turning OSC off in VRChat fixes this. Turning it back on then will still work (keybind will no longer be broken).

/input/voice is only sent once... This doesn't seem to be an issue on OyasumiVR's end as far as I can see, but rather an issue on VRChat's end. Would need to report it on their Canny if you can reproduce it.
In the meantime, (if it's not just a me issue), you could add a warning or tip about this in OyasumiVR's gui.

Disabling sleep mode at a specific time does not work

I have a specific time set and enabled for sleep mode to automatically disable but it does not work. This is a very useful feature to be woken up by gradual increase of light rather than a loud alarm, loud alarm using my phone would be a backup.

Expand OSC scripting syntax to support strings, and multiple values per message.

Currently, the OSC scripting functionality has two main issues:

  • It only supports one value per message. OSC messages support multiple values per message.
  • It only supports int, float and boolean types. At least a String type should be added.

Expanding this functionality is a very low priority, but would be a nice to have.

Add support for AMD cards with GPU automations

Currently, GPU automations only support NVIDIA cards through NVIDIA's NVML library.

I would like to also support AMD cards, but I did not find a way to set power limits for them programatically on Windows.

If anyone knows of some AMD equivalent for NVIDIA SMI or NVML, that works on Windows, that would allow me to add support for AMD cards to Oyasumi, any hint would be greatly appreciated!

[request] ability to disable discord rich presence (oh wait nvm, i found it. the second i posted it, i found it. sorry)

so ive been using OyasumiVR for a while now on steam version along with VRCX to get the notifications, control my vrchat and the custom discord rich presence. ive noticed that whenever i start steamVR, oyasumiVR would overide the discord rich presence no matter if i have it disable and removed on the discord app, the rich presence would still be appear. the reason for this is because i want to use VRCX discord rich presence instead, i even disable the one vrchat officially provided, since they dont provide as much information as the VRCX discord rich presence does. i had to shutdown oyasumiVR everytime before starting vrchat and once it fully booted up, i then start oyasumiVR. i wonder if there is a way to implement the ability to disable the discord rich presence for the oyasumiVR. thank you and sorry if i yap too much ;-;

one that vrchat officially provided
image

oyasumiVR
image

VRCX
image

[request] Automatically set custom status

I would like a function that automatically switches to custom status (e.g. sleeping) when entering sleep mode, and automatically cancels it when exiting sleep mode.

Since OyasumiVR offers a variety of functions, there is currently little to do before sleeping but I feel that setting a custom status is the only exception.

If there is a factor that makes implementation difficult, I would like to know it.
thank you.

Support for MQTT & Home Assistant

A simple MQTT implementation publishing the sleeping state to a broker to allow control of things outside VR or your PC would be interesting.

With this users could run automations in Home Assistant or other home automation software to control lights/fans/ACs/window shutters/heating and so much more, bascially allowing endless possibilities.

Is anything like that in the pipeline? Would love to see it!

Linux Support

This issue exists for tracking Linux support.

The only change that should be necessary is the way in which Oyasumi interacts with SteamVR's Lighthouse Console.

  • Users should be allowed to pick something other than a .exe executable for the lighthouse console.
  • The way the binary gets called might possibly have to change.

If this is updated, I can set up a Linux build for Oyasumi that should theoretically work out of the box.

I don't currently have a Linux machine set up to work on this, but let me know if there is any interest and I'll see what I can do.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.