Announcement

Collapse
No announcement yet.

WebSocket API

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • WebSocket API

    I really would love to see a WebSocket API for the application. My use case is that I want to have a fine grained control over the virtual controller that I can pre-configure, reproduce and more importantly trigger remotely. Especially the smooth movement of the thumbsticks based on some bezier curves. I have a workaround for this in mind but it will require a lot of testing and is not guaranteed to work. As a workaround I got myself a Raspberry Pi which will emulate keyboard and potentially a controller signals, which should be detected by reWASD and trigger the pre-programmed mappings. All that just to be able to control some menus and consistently drive a camera in a replay mode to be able to record high quality video footage of the game. A WebSocket would make it much, much easier for me.

  • #2
    Hey there! Surprising question. Could you please describe which exactly events you should send/receive with this API?

    Comment


    • #3
      I'm sorry I wrote this and totally forgot about it as I had so many things todo.

      Having a web-socket support would allow me to do the following things:
      - send messages from a different local computer to reWASD to execute (and re-map if needed)
      - it would allow the creation of key-framing tools
      - in my case I use reWASD to navigate through some menus and control camera movement and fire some system globally tracked short keys to signal OBS to start, pause or stop a recording
      - reWASD allows only sequential re-mapping which is very limiting at this moment, especially if you want to create buttery smooth camera movements using a virtual controller's thumb sticks
      - controlling the virtual controller would allow a custom tool to be built in a way that it follows smooth Bézier curves

      In general I would like to be able to send keyboard and controller inputs to reWASD through a web-socket API from a second local (non Windows) computer.

      Quick bike shedding (very much an oversimplification):
      - message: press and release key A
      - message: press key B (holds it)
      - message: release key B

      - trigger controller key XYZ
      - move left controller stick into direction XYZ by XYZ amount

      - etc.

      Ideally those should be some very simple JSON messages, with some lightweight responses of success or an error.

      Comment


      • #4
        Doing that in a hacky way by emulating hardware signals via a connected raspberry pi but controller through a different computer is a reasonable workaround I still need to work on for now, but it seems like a real stretch.

        Comment


        • #5
          Last but not least, reWASD would also need to send some status messages or at least allow the API user to pull these periodically. A subscription mechanism would be more ideal though as it'd allow one to handle the events gracefully.

          Comment


          • #6
            Thank you for the details.

            We are planning to make reWASD companion app for PC — so you will be able to control reWASD and its devices from another PC, like it is possible now with Junior apps for Android and iOS.
            On Windows, this companion app will be almost a clone of the reWASD, so you literally will be able to do anything, for this case.

            I understand that you are talking about another level, being able to send inputs and then modify them by other scripts. This part is being discussed in our team, so I hope one day we will be able to share the good news. Stay tuned

            Comment


            • #7
              Looking at it from different angle. Now that the mobile companion app actually can be used as a controller. Are there any plans to let the companion app also provide virtual trigger buttons that we can configure? If so, can this part become also some open standard? It'd be great if there was some API to communicate with reWASD running on PC from my own application.

              Comment


              • #8
                I may have misunderstood you, but Mobile Controller already has the ability to use triggers as physically usable buttons as well as virtual mappings.
                Please clarify if I'm missing something.​

                Comment


                • #9
                  Here's my goal:
                  - I want to configure input scripts in reWASD. (DONE)
                  - I want to execute more complex scripts, but configuring those in reWASD is not trivial and could be extremely complicated (e.g. keyframed controller movement to move in-game camera during content recording sessions). (NOT AVAILABLE) This requires a reWASD API or a very inconvenient workaround such as programming a device like Raspberry Pi as a controller and then driving that.
                  - For now it would be a huge upgrade to my workflow if reWASD would be available for the Stream Deck (or at least through the Mobile Controller with custom infinite button layout). (NOT AVAILABLE)

                  I'm confused about the Mobile Controller. I've upgraded my license and just tested it on my iOS device and there's still only a "gamepad" type.
                  The reWASD web page however clearly says the following: "You can choose one of three layouts: Gamepad, Touchpad and Control Pad, and customize all the mappings later."
                  Are the features mentioned still unreleased and work in progress? On PC when clicking on the mobile controller before upgrading the license there was an image, which looked like a virtual Stream Deck. This would be a significant upgrade to my current workflow.

                  I'd happily upgrade my license to get the features I need and use. It looks like the mobile controller will gain the features I'm looking for and you already have a local backend on PC running. The only missing part for me here is a public API which I could make use of. To be clear, I don't want to sound that this should be free, you can still require a one time license or just permit the usage of such an API if the user already has the license for the mobile controller.

                  With such an API at my disposal I'd write an application on my Mac or iPad, which would send potentially parallel inputs to reWASD on PC, which would forward that through the virtual controller into my game and drive consistent recording sessions. I'd have the ability to easily identify multiple different scripts and extend my automations. While I mentioned automations, my goal is to make video content creation easier, quicker and more consistent for myself.

                  Comment


                  • #10
                    Hello! Mobile controller functionality on iOS is currently limited. Other types of mobile controllers will be added soon in the next updates.

                    Work on Stream Deck is possible only if you install Windows on it. We are actively testing this device and maybe in the future we can come up with an alternative way to work with it, but at the moment we cannot promise anything.

                    I'm sorry, but we don't plan to make our API public.​

                    Comment


                    • #11
                      Regarding your Raspberry Pi workaround, it's a creative solution to emulate input signals. However, as you mentioned, it may require extensive testing and might not provide the same level of control as a direct WebSocket API. Using WebSocket, especially through B2B API integration, can simplify your architecture and potentially improve the reliability and responsiveness of your solution. This streamlined approach ensures seamless communication between devices and systems, enhancing the overall efficiency of your project.
                      Last edited by staciquan; 23.11.2023, 11:32.

                      Comment


                      • #12
                        The workaround involving a Raspberry Pi to emulate keyboard and potentially controller signals demonstrates your dedication to finding a solution, but a WebSocket API would indeed streamline the process and make it much more efficient for your needs. It would enable real-time communication and control, providing a more direct and responsive way to interact with the virtual controller.

                        Comment

                        Working...
                        X