Show HN: A new kind of FPS aim trainer

(openaim.pramit.gg)

81 points | by pmazumder a day ago ago

44 comments

  • ralferoo 19 hours ago ago

    It needs some way of clearing all data. I chose "don't know" on calibration because I couldn't be bothered to try to work it out (but my mouse will be on the low end because it's just some random cheap mouse). Then, the training was ridiculous having to move my mouse miles between targets, but there's no way to change the initial calibration step. Not even in settings / data / delete.

    I'm not really the target user though. I guess those who are will already know exactly how many DPI their mice are.

  • pmazumder 21 hours ago ago

    writeup on the rationale behind it: https://www.pramit.gg/post/i-made-an-aim-trainer

    • interloxia 18 hours ago ago

      "I felt like I may be uniquely equipped to make this problem much more complicated than it needed to be."

      Worth it!

    • dkdbejwi383 20 hours ago ago

      Even with "reduce motion" enabled the background of this page is constantly animating - it's so distracting I just gave up.

      • pmazumder 20 hours ago ago

        I didn't realize it could be distracting, sorry. It shouldn't happen now

    • maccard 20 hours ago ago

      I enjoyed this. Does the same theory apply to a gamepad? My intuition says yes but curious what you think

      • pmazumder 20 hours ago ago

        I imagine it would generalize well to any fine motor control task with a defined tracking objective. The literature I reference mentions that human error when steering cars also roughly follows the same distribution.

    • tranceylc 21 hours ago ago

      Haven’t had the chance to use it use it yet, but the writeup on it is super cool.

      Encourage anyone to check it out

  • pprotas 20 hours ago ago

    The aiming is very choppy because it feels like my cursor is "on rails", or stuck in some kind of grid. Not representative of any modern shooting game I've played. I think this would teach the wrong habits if someone were to use it as an aiming coach.

    • pmazumder 20 hours ago ago

      Are you using it on chromium? It's the only browser I get raw mouse events from right now, so other browsers tend to be more choppy.

      As for the habits, the point of this program is that it ultimately admits that far domain transfer for aim trainers is difficult regardless of what you do, so it tries to optimize in an absolute sense your motor control over your mouse. That way, regardless of scenario you'll have smoother and more efficient aim.

      • pprotas 19 hours ago ago

        Yeah I tried Firefox and Chrome

        EDIT: Maybe take some inspiration from Three.js? This demo works fine for Firefox and Chrome with a nice, smooth cursor that I'm used to https://threejsdemos.com/demos/camera/first-person

        • emsign 7 hours ago ago

          Firefox is definitely choppy for me renderingwise. I use Vivaldi which is Chromium based and the only choppiness comes from the friction of my sweaty wrist on the gamepad. If I hover my wrist and only let it basically rest on the mouse itself, tracking becomes smooth. Changing my hand motion and stance is definitely part of the training process to become a better player.

  • Tox46 21 hours ago ago

    So cool! but somehow the simulation does not work on firefox. the crosshair is just stuck in the middle

    • CyberDildonics 24 minutes ago ago

      How do you know it's cool if it didn't work?

    • pmazumder 20 hours ago ago

      It should still work on firefox, but the experience will likely not be as good. Chromium is the only browser engine (as far as I know) that gives me access to raw, unaccelerated mouse events, so it's the smoothest experience.

      • dminik 19 hours ago ago

        I had the same issue. Linux + Firefox resulted in zero movement. Chrome worked fine.

  • MayeulC 21 hours ago ago

    Interesting project! I am relatively skilled at FPS with a mouse, but would like to improve with my trackball (so that I don't have to change my setup when playing an FPS). This could cone in handy, though I imagine that there aren't multiple "mouse profiles" built-in? It could be useful for players to understand how much of a difference different mice make.

    • pmazumder 21 hours ago ago

      Hi, thanks for the feedback! Multiple mouse profiles isn't something I considered, but I'll definitely look into it. I know a lot of FPS gamers are super particular and switch between mice/mousepads/skates constantly, so it would probably help to provide a semi objective measurement of what setup they're doing best on as well

  • miguel-muniz 15 hours ago ago

    This seems to suffer from what a lot of vibe coded projects suffer from, which is just a whole lot of unnecessary text everywhere. I find one shot outputs always have a lot of jargon, extra "micro copy" and displays the same information multiple times in multiple places. It makes it difficult at a glance to understand what you're looking at.

    I'm not sure what in the training set causes the models to do this, even in my own experience I'll be specific about the feature I'm building and the model will add an unnecessary status message for no reason.

  • hoechst 18 hours ago ago

    very cool. project, will evaluate this in detail.

    one note, on the "Feel your sensitivity." page, it says " raw input off — OS mouse acceleration is active. Your browser couldn’t give OpenAim raw mouse input, so your OS acceleration curve is reaching the game: the same hand motion turns further when you move faster, which no aim training survives. On Linux: set your mouse’s libinput acceleration profile to “flat” (unaccelerated). Chrome and Edge deliver raw input directly."

    but my mouse is definitely unaccelerated (confirmed via `xinput list-props pointer:"Logitech PRO X 2"`). i am unsure if this leads to erroneous results when aim training.

    i'm on: Chromium 150, linux, x11 kde plasma.

  • RunSet 16 hours ago ago

    In case anyone likes to play Quake with a gamepad I recently made this add-on which adds Dark Soul III style target lock. (Click L3 to toggle. Breaking line of sight breaks the target lock.)

    https://www.slipseer.com/index.php?resources/textless-hud.58...

    Some might consider this "cheating" but in my opinion aiming with a mouse is so much easier that using a mouse against players using gamepads more resembles cheating.

    • ramgine 15 hours ago ago

      I used to play q3l competitively and I can’t imagine trying to get any real results using a gamepad without help. That’s a neat idea.

  • King-Aaron a day ago ago

    CS 1.6 scouts and knives was the ultimate aim trainer

    • superxpro12 19 hours ago ago

      UT instagib for me

      • pelagicAustral 19 hours ago ago

        never played this mode, I might just give it a shot later on, thanks for the off-shoot comment

    • psalaun a day ago ago

      woah, so many memories bubbling up right now, thanks!

  • CuriouslyC 16 hours ago ago

    Random note, the biggest single thing you can do to improve your aim is to crank down your sensitivity and learn to strafe with the target rather than try to track with the mouse. The second biggest thing you can do is stop trying to exactly track them, and instead try to predict their strafe patterns based on their surroundings so you can place shots where they're likely to be, at least for any weapon with a travel time.

    • ramgine 15 hours ago ago

      These are great suggestions. It’s what I see pros doing, just really hard to get there.

  • danielrmay 15 hours ago ago

    Neat project. I wonder how a small model could interpret movement data to provide personalized improvement suggestions e.g. "you're weaker targeting left than right, but only under these conditions"

  • isqueiros 18 hours ago ago

    This looks pretty cool, but I'm pretty sure my imported sens from Deadlock has gone wrong. I have 0.68 in game and it feels significantly slower on the app.

  • pugdogdev 13 hours ago ago

    Wow nice! I am so rusty This can be really useful for kids and elderly people I think. Great job

  • mherdelight 18 hours ago ago

    I might use it to compare different mice I have, have you considered adding a comparison option?

  • terekhindc 17 hours ago ago

    does it separate flick errors from tracking errors, or is it just angular delta over time? valorant aim usually feels dominated by confidence-to-fire more than path smoothness.

  • lelanthran 20 hours ago ago

    You might want to look into this page - it slows my PC to a crawl :-(

    • pmazumder 20 hours ago ago

      What browser are you on? Hardware acceleration? It shouldn't be very difficult to run, so I'm guessing some sort of a compatibility issue

      • lelanthran 20 hours ago ago

        > What browser are you on? Hardware acceleration? It shouldn't be very difficult to run, so I'm guessing some sort of a compatibility issue

        Sorry, the linked page, not the actual app. It slows my PC to a crawl.

  • emsign 7 hours ago ago

    It's called "Open"Aim. Where is the source code then?

  • WithinReason 18 hours ago ago

    the calibrated sensitivity is correct but the in-game sensitivity is waaaaay higher, it's a bug

  • juliendsv4real 15 hours ago ago

    Very cool, would you open source the code? did you start this from scratch?

  • maxlin 11 hours ago ago

    I got semi average score of 2.4k not trying super hard, but the "moving click" exercise seems dubious, got literally zero off it. Not sure if it's comparable to any actual game?

  • fragmede 15 hours ago ago

    This is really cool! The calibrate part could be easier to tweak, so I can dial in what a 360 is on my system, instead of having to go back back next next try, and then I can't re-calibrate again? Or at least, it's not obvious where to change those settings.

  • djmips 13 hours ago ago

    Can right mouse escape during calibration as well as ESC please. Make it easier to re-calibrate

  • thomasikzelf 18 hours ago ago

    Cool app! I also had some ideas a while ago that I think the current breed of aim trainers are still missing.

    In-game practice like the Range, DM, and Team DM still feels like the gold standard to me. I generally only use aim trainers when they offer a noticeably higher return per minute, rather than just teaching me how to get good at aim trainer specific mechanics.

    Here are a couple of things I think an aim trainer should have:

    - Dynamic difficulty: I feel it works best when trying to keep accuracy relatively high, but fluctuating the target accuracy threshold over time and adjusting difficulty dynamically to match it. That keeps you challenged without breaking form.

    - Dynamic scenarios: Instead of picking scenarios manually, I think a trainer should ideally detect what you suck at and launch those directly.

    - Habit coaching: It would be awesome if a coach flagged bad habits in real time—like clicking too fast (low accuracy), doing a slow tracking movement instead of a sharp flick (mircoflicks), or using tracking when click timing is needed.

    - Biomechanics: Finding the exact "perfect" sensitivity feels less important to me than ensuring your arm and wrist are working together properly, altough this might depend on your aiming style.

    - Simplicity: A lot of trainers overwhelm you with numbers and menus. I image a simple "click here to start and follow feedback" workflow with nothing else for the user to learn. Seeing a bunch of numbers is less important to me then just getting better (maybe with a final score).

    Valorant-specific focus: Trainers often feel too generic for tactical shooters like Valorant, where angle holding, target reading, and micro-corrections dominate.

    I built a small aim trainer to experiment with these ideas myself: https://mousecontrol-thomaswelter-fceff2dbe456668c6bedef32db... (the aim trainer is very basic, only made for myself, fixed sens etc).

    - In this tool, difficulty scales dynamically while playing (the parameter in parentheses changes on the fly):

    - Angle Hold (enemy speed increases): Practicing holding angles against multiple targets. Holding angles is crucial in Valorant (just look at how Primmie plays).

    - Follow (standstill window decreases): Forces active mouse correction and reading the target before shooting. I tend to click too fast, so this forces me to slow down and micro-correct.

    - Jiggle (jiggle speed increases): Targets perform tight jiggles. I find players who spam small jiggles really hard to hit, so this directly targets that weakness.

    - Micro Flicks (snap distance increases): Micro flicks are easy enough to train in the Range, so I mostly use this mode when I am away from my gaming PC.

    - Static (target size decreases): Standard static clicking, but with dynamic scaling as targets shrink.

    - Strafe (movement speed increases): Moving targets with limited hit windows. When watching pro DM VODs, most kills are on stationary targets, but hitting moving players is still vital and tricky to isolate in-game.

    I am still not very good at Valorant but the aim train ideas are interesting. Let me know what you think!

  • poly2it 20 hours ago ago

    Interesting project. One suggestion I'd make is to reduce the configuration complexity up front on new users. It is kind of overwhelming before you have a feel for how your settings translate to the actual training experience.