{"id":19089466,"url":"https://github.com/naelstrof/vrplayspacemover","last_synced_at":"2025-08-20T20:33:33.150Z","repository":{"id":32064030,"uuid":"130161876","full_name":"naelstrof/VRPlayspaceMover","owner":"naelstrof","description":"A little app that lets you adjust your play-space by gripping the universe!","archived":false,"fork":false,"pushed_at":"2022-04-11T20:19:26.000Z","size":73,"stargazers_count":160,"open_issues_count":38,"forks_count":34,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-07T20:56:16.079Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/naelstrof.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-19T05:07:56.000Z","updated_at":"2025-02-12T22:50:52.000Z","dependencies_parsed_at":"2022-08-07T17:15:10.653Z","dependency_job_id":null,"html_url":"https://github.com/naelstrof/VRPlayspaceMover","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/naelstrof/VRPlayspaceMover","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naelstrof%2FVRPlayspaceMover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naelstrof%2FVRPlayspaceMover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naelstrof%2FVRPlayspaceMover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naelstrof%2FVRPlayspaceMover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/naelstrof","download_url":"https://codeload.github.com/naelstrof/VRPlayspaceMover/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naelstrof%2FVRPlayspaceMover/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271378718,"owners_count":24749199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T03:01:29.901Z","updated_at":"2025-08-20T20:33:32.794Z","avatar_url":"https://github.com/naelstrof.png","language":"C++","funding_links":["https://paypal.me/naelstrof"],"categories":[],"sub_categories":[],"readme":"Playspace Mover has been deprecated! Check out OVR Advanced Settings on Steam instead: https://store.steampowered.com/app/1009850/OVR_Advanced_Settings/\n\n# Playspace Mover\n\nLets you drag around your playspace by gripping certain buttons. This allows you to \"climb\" around certain games, and allows you to adjust your floor level on the fly.\nThis is compatible with KinectToVR, and can run in tandem with any SteamVR app.\n\nIf you want to help support this kind of development, feel free to support me through google wallet (naelstrof@gmail.com), paypal (https://paypal.me/naelstrof), or through my [Digital Tip Jar](https://digitaltipjar.com/naelstrof)!\n\n## Installation\n\n* Requires VR Input Emulator, which an easy installer can be found [here](https://github.com/matzman666/OpenVR-InputEmulator/releases).\n* Grab a PlayspaceMover executable from the [releases page](https://github.com/naelstrof/VRPlayspaceMover/releases).\n* Extract anywhere!\n\n## Usage\n\n* While SteamVR is running, run PlayspaceMover.exe. Make sure it says `Ready!`.\n* In VR, hold down either X/Y or the Vive menu buttons to drag your playspace!\n\n## Configuration (Advanced!)\n\n### Controls\n\nPlayspaceMover can be configured to use different kinds of bindings, currently it only supports button presses. You can change the default buttons by setting button masks in the options. This can be done through either a shortcut, or a commandline.\n\nI find the easiest way is to experiment using the command line, then set up a permanent config with a shortcut!\n\nOpen a command line in the folder with PlayspaceMover.exe like so:\n\n![GIF Showing how to open cmd](https://i.imgur.com/jgifVnJ.gif)\n\n---\n\nIf you're on Oculus, type `./PlayspaceMover.exe -l 128 -r 128 --resetButtonMask 2` then press enter!\n![Image of PowerShell for Oculus](https://i.imgur.com/g2MsPH0.png)\nThis will set the A and X buttons to move the playspace, and if you press B and Y simultaneously it will reset your playspace!\n\n---\n\nIf you're on Vive, try typing `./PlayspaceMover.exe -l 2 -r 2 --resetButtonMask 4` then press enter!\n![Image of PowerShell For Vive](https://i.imgur.com/S98It5X.png)\nThis will set the menu buttons to move your playspace, and if you press both grip buttons simultaneously it will reset your playspace!\n\n### Physics\n\nPlayspaceMover supports some basic physics! [Click here for a video.](http://files.1337upload.net/2018-04-28_16-07-49-d0b94a.mp4)\nHere's a list of some of the options, their defaults, and what they do.\n\n| Option　　　　　　　　　　　| Default | Description                                                                                                                 |\n|--------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------|\n| --physics                | N/A     | If specified, enables physics. Physics will automatically be enabled anyway if you specify any of the options below though. |\n| --gravity                | 9.81    | How much acceleration is applied to your y velocity every frame in meters per second.                                       |\n| --friction               | 8       | How much force is applied opposing your velocity while on the ground.                                                       |\n| --airFriction            | 0       | How much force is applied opposing your velocity while in the air.                                                          |\n| --jumpMultiplier         | 80      | How much force is applied when you try throwing yourself.                                                                   |\n| --noGround               | N/A     | If specified, disables ground collision (You probably should have gravity set to 0 if you use this tag.)                    |\n| --leftTogglePhysicsMask  | 0       | Specifies which buttons you have to hold simultaneously on the left controller to toggle physics.                           |\n| --rightTogglePhysicsMask | 0       | Specifies which buttons you have to hold simultaneously on the right controller to toggle physics.                          |\n\n### Fake Full Body Tracking\n\nIf your game requires full body tracking, you can make PlayspaceMover spawn some fake trackers! The following options enable/configure \nthis feature.\n\n| Option　　　　　　　| Default | Description                                                                                                                                           |\n|----------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------|\n| --fakeTrackers | N/A     | Enables and spawns fake trackers that follow your HMD around.                                                                                         |\n| --orbitTracker | N/A     | Alternative positioning scheme for the trackers                                                                                                       |\n| --bodyHeight   | 2       | Sets your body height in meters, it uses this to calculate where to place your feet and hip trackers. This also automatically enables --fakeTrackers. |\n\n### Permanent Config\n\nTo make this change \"permanent\", you can create a new shortcut by right-click dragging it to your desktop.\n\n![GIF showing how to make a shortcut](https://i.imgur.com/zPM27WN.gif)\n\nThen edit it's properties by right-clicking on it, and hitting properties.\nThen append your desired button mask parameters to the \"Target:\" section. (Don't override it!)\n\n![Image of shortcut properties](https://i.imgur.com/rUSzA8l.png)\n\nDone! Double click on that shortcut to launch your configured playspace mover!\n\nTry `./PlayspaceMover.exe --help` for more help on bit-masks and other stuff!\n\n## Bitmask Table\n\nHere's a list of the known button bits. There's a couple more for Oculus that aren't listed because I haven't bothered testing for them!\n\n### Oculus masks\n\n| Button | Bit | Mask |\n|--------|-----|------|\n| A/X    | 7   | 128  |\n| B/Y    | 1   | 2    |\n\n### Vive masks\n\n| Button | Bit | Mask |\n|--------|-----|------|\n| Menu   | 1   | 2    |\n| Grip   | 2   | 4    |\n\n## Tips\n\n* VR Input emulator likes to keep HUGE logs if you're on oculus (18+GB), set `X:/Steam/steamapps/common/SteamVR/drivers/00vrinputemulator/bin/win64/driver_vrinputemulator.log` to read-only to prevent this!\n* Restarting the application by closing it or pressing Ctrl+C will reset your playspace.\n\n## Compiling Instructions (Developers Only)\n\n### Download Third-Party Libraries\n\nFirst we have to collect all the libraries that can't be grabbed using nuget.\n\n1. Git-clone and extract VRPlayspaceMover's source code. (Download Zip on the top right, or use a git client to clone.)\n2. Download and extract glm-0.9.9-a2 from [here](https://github.com/g-truc/glm/releases/tag/0.9.9-a2) to `PlayspaceMover/third-party`.\n3. Download and extract the latest OpenVR zip from [here](https://github.com/ValveSoftware/openvr/releases) to `PlayspaceMover/third-party`.\n4. Download and extract the latest OpenVR-InputEmulator source code zip from [here](https://github.com/matzman666/OpenVR-InputEmulator/releases) to `PlayspaceMover/third-party`.\n\n### Compile Third-Party Dependencies\n\n1. Ensure you have Visual Studio, and the Windows 10 SDK installed. You can find them [here](https://www.visualstudio.com/downloads/) and [here](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) respectively.\n2. Open `PlayspaceMover/third-party/OpenVR-InputEmulator-1.3/VRInputEmulator.sln` with whichever Visual Studio you have.\n3. You should get a *Retarget Solution* window where you can retarget the solution to the v141 toolset.\n4. Install `boost`, and `boost-vc141` with nuget. (Right-click on the project and press *Manage nuget packages.*)\n5. In lib_vrinputemulator's properties, add `PlayspaceMover/third-party/openvr/headers` as an include folder.\n6. Right-click on lib_vrinputemulator, and press *Build*. You should now have a libvrinputemulator.lib.\n7. Rename that library to libvrinputemulator-d.lib, then compile a release version too by changing into Release mode.\n![Release Mode Image](https://i.imgur.com/QhnLzfu.png)\n\n### Configure VRPlayspaceMover Until It Compiles!\n\n1. Open `PlayspaceMover/PlayspaceMover.sln` with Visual Studio.\n2. Install `boost`, and `boost-vc141` with nuget. (Right-click on the project and press *Manage nuget packages.*)\n3. Right-click on the VRPlayspaceMover project, and change the include directories to look similar to the image below.\n![Directory Images](https://i.imgur.com/T5iciwK.png)\n4. Then change the library directories to look similar to the image below.\n![Directory Images](https://i.imgur.com/4JHyubs.png)\n5. Compile and you're done!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaelstrof%2Fvrplayspacemover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaelstrof%2Fvrplayspacemover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaelstrof%2Fvrplayspacemover/lists"}