thayes46 / aimi

Physical aimbot for a variety[ish] of games including Osu! and Valorant
MIT License
17 stars 6 forks source link

Building something similar. #26

Open 69kevinutah69 opened 4 years ago

69kevinutah69 commented 4 years ago

I’m coding up something similar for val with OpenCV . I currently have an issue where mouse movement does not snap well do the heads. I think this is due to latency between the time the mouse is told to move and the time OpenCV sees it has moved. Any creative solutions? Also do you have a discord?

thayes46 commented 4 years ago

We are currently no where near our pipeline for starting to approach valorant due to the jump in complexity required for an algorithm to detect targets. Our current capability is clicking circles for Osu!. Running on 8 cores with 16gb of ram I have about 15ms latency using a hough transform as the algorithm for parsing the image. Most likely any latency between openCV and your mouse movement is in the complexity of your algorithm that is parsing where a head is, so I'd encourage you to explore solutions focused on how you are parsing your image with OpenCV. If you would like us to look at your algorithm we can try but I won't promise anything since we ourselves haven't begun the process of developing the algorithm for Valorant character head detection.

We are likely taking 2 drastically different approaches to this problem, so I would caution you referencing this for your own work. We are attempting to build a physical robot arm that plays games, not a hack for video games. The intent is never for this to be used on live servers as it would break the terms of service of almost any title.

As for the discord, we do not have one. We are currently keeping all main communication between the main developers, however you are more than welcome to submit issues or open pull requests if you'd like to contribute. For more info on the main developers, we currently are developing as a group of friends who met through RoboJackets at Georgia Tech (if you're curious about RoboJackets, you can find out more info on the org here). One way for updates on what we're doing will be through the newsletter that RoboJackets publishes monthly, as we will be featured in the september issue (subscribe link can be found here) While this project isn't directly under the umbrella of RoboJackets, we all came from there and they are giving us a shoutout for our work and plans.

69kevinutah69 commented 4 years ago

I would note that your robot arm does likely still break their terms of service. I myself was not intending to use this in live servers. My project is an exploratory introduction to OpenCV and aims to hit all 30 bots in the range on hard mode, a non destructive, yet familiar playground for myself. My algorithm currently relies solely on pixel colour and repeated dilation and erosion. As for the latency it most certainly is not with my code as I have rigorously profiled it. In its current form my main loop runs in excess of 1000 fps. I believe the latency is upstream and downstream of my code. I.e getting a frame from the game into my code takes a long time, analyzing is fast, and finally telling the mouse to move is slow. I was hoping for any insight you may have as to perhaps any prediction algorithm or other software tricks that could try and account for this latency. Perhaps a PID loop?

Thank you for the formal response,

thayes46 commented 4 years ago

We appreciate your concern, but we will get there when we get there, we are still months away from approaching valorant.

That being said it is incredibly impressive to have a main loop doing all of your frame processing at 1000 fps, what hardware are you getting those results on?

As for your algorithm, that isn't too expensive so your concerns with latency in other aspects of the system are valid. How are you receiving video input? Is your processing happening on the same machine as your game? We will be using a separate computer, the computer to eventually control the robot arm, but our latency is still negligible when looking at target detection time to cursor movement when running on the same machine for Osu. How are you going from detecting a target to sending a mouse input?