A Hud (Heads up display) is nothing more than a program that collects information from text files, most commonly game summaries, although a hud may be just a part of a bigger application like Pokertracker for example, where the program itself does the parsing and HUDs are just shown the processed information.
They do not communicate with the software (eg. Pokerstars platform) since platforms are not exposing any API for this. Instead what they're providing are game summaries, mostly known as hand histories.
These files have a fixed directory in client's machine and they're different for any game (eg. cash game, tournaments). HUDs can find easily which game are you playing on and read the appropriate files, parsing them into hud statistics like VPIP, PFR and many more, which will be then shown in a label / value pair in your HUD program in a custom, specific way to meet your needs.
As you realize, the data HUDs are working on are past news (they can process up to previous hand played) and no the real data you're looking in your table right now. Legit HUDs doesn't involve real-time data parsing (emphasis in legit).
About player(s) position detection
Every poker platform (eg. Pokerstars) gives you a way to determine which seat you want to play, visually, sorted by the maximum players allowed. To make thing more easy for you, they can allow you to always be centered in bottom-middle if you don't set a specific seat for a specific game. Most players don't care about this, they always want to be centered. For example, i didn't set my preferred seat for 9-players tables when i play MTT (tournaments), so Pokerstars decides to auto-center me.
The HUDs need to be configured the same way to reflect this as well. Pokertracker for example works in the same logic: It allows you to set the preferred seat max-players-wise, although if you don't change that, you're always be centered bottom-middle.
Long story short: Mostly, if you don't change anything about preferred seat in both platform + HUD programs, you're going to be centered in the bottom-middle, although this greatly has to do with specific platforms and HUDs involved, i can only talk for the 2 biggest of their own today.
Doing just that, both programs will know exactly where to show your avatar (eg. pokerstars, full-till, ongame, 888) and your hud (eg. pokertracker, fpdb, HEM). Otherwise, your setting in one program has to reflect the setting in the other program.
Second thing you want to inform your HUD program is your screenname. This is done for 2 reasons:
- To properly compute the HUD position for other players as well (read below)
- To properly compute all your graphs into your tracker program
Now that HUD knows exactly where to place your hud stats window, it wants to know where to place the stats for all the players as well. I can't know this but i can guess it pretty easy; The log files themselves doesn't just describe how the hands were played, they also describe the seating between the players as well. For example, in every hand in the log this is described like:
- Seat 1 kidPoker
- Seat 2 Liv Boeree
- Seat 3 eLky
- Seat 4 YOU <-- your own screenname
- Seat 5 PokerBrat
- Seat 6 Money800
- Seat 7 Ivey
- Seat 8 some other world-class pro
Hoping you're indeed playing in that table :), how the HUD program can find out where to place each window hud depends in fact to your own screenname. Since your setting in both platform + HUD was to be placed in bottom-middle then the HUD knows that Phil Hellmuth Jr. has to be placed next to you, just left of your bottom-middle position, and so on. Your preferred seating, as well the ieararchy described in the log file can determine the correct position of all the HUDs.