Heatmaps

Geit

💜 I probably broke it 💜
aa
May 28, 2009
598
1,161
Thought I should do a quick recap of what's going on:

  • Kritzkast are now feeding data from their most popular server
  • The API is now limited to 20 requests/sec
  • Heatmap rendering is now 400% faster, on average.
    • Chrome will now rerender repeatedly during a slider event, instead of when sliding is finished (Firefox goes crazy if this is enabled).
  • API responses are now 100% faster, on average.
  • The victims/killers display modes now have buttons.
  • The map list is now paginated, allowing you to browse.
  • Enabled client side cache of data responses. Flicking between display modes (and different maps repeatedly) should be a lot faster now.
  • The site is now responsive and should work at lower screen widths.
  • Data providers are now acknowledged.
  • Cleaned up the code base slightly, still needs a lot of work
The amount of data from maps such as Upward is becoming overwhelming and is actually quite difficult to analyze because of it, therefore I've decided to go ahead an implement a default filter of 3000 deaths (when filters are complete) to ensure that the data is still readable. This filter can be removed at the user's discretion.
 
Last edited:

henke37

aa
Sep 23, 2011
2,075
515
Could you do more filters now? I miss basics like teams and classes.
 

stegarootbeer

L2: Junior Member
Jan 15, 2012
78
100
Would it be possible to have the settings in the url so when you link it to someone they can see it how you see it? Also a quick toggle check box for the heatmap would be great so you can see the map underneath it better.
 

henke37

aa
Sep 23, 2011
2,075
515
I guess next up would be sentry spots? Or perhaps sniper sight lines?

The first one is tricky. One could simply put points where people put each type of building. Or one could track sentry effectiveness by treating it like a 10th class. Hmm, that would also make it easy to find where people are destroying things from.

One possible filter could be conditions. Things like jarate, übers, being zoomed in and all that.

Of course, there is the quick addition of per weapon filters.

A possibly interesting filter would be the distance between the killer and victim.

And a final suggestion, it could be interesting to track pick up popularity. That one could even overlay some icons where the pickups are on the map.

There is one thing I wonder about, how are suicides reported?
 

YM

LVL100 YM
aa
Dec 5, 2007
7,135
6,056
The 3k filter ought to be automatically reenabled when you change map, otherwise you're getting flooded with full-data requests once people remove the limit the first time.
 

Geit

💜 I probably broke it 💜
aa
May 28, 2009
598
1,161
Would it be possible to have the settings in the url so when you link it to someone they can see it how you see it?

Done, requires flash though.

The first one is tricky. One could simply put points where people put each type of building. Or one could track sentry effectiveness by treating it like a 10th class. Hmm, that would also make it easy to find where people are destroying things from.

Sentries are currently tracked as an extended weapon for the enginieer.

One possible filter could be conditions. Things like jarate, übers, being zoomed in and all that.
Not currently tracking this, but I could be. There is a small hitch though: condition flags used to be a 32 bit integer, so you could directly interact with it in SourcePawn, then it got larger than that so the SM team added convenience functions for checking conditions. Now it's 80 bit integer and I'm not entirely sure how you'd read it out of the player's entity. I'll have to do some research.

A possibly interesting filter would be the distance between the killer and victim.

Noted for later.

And a final suggestion, it could be interesting to track pick up popularity. That one could even overlay some icons where the pickups are on the map.

There is one thing I wonder about, how are suicides reported?

May track pickups at a later date, but they don't exactly lend themselves to heatmapping so they'd just be an extra end-point on the API.

Suicides are only reported if they're caused by the world (fall damage). Stuff like rocket jumping to death is just ignored.

The 3k filter ought to be automatically reenabled when you change map, otherwise you're getting flooded with full-data requests once people remove the limit the first time.

The result limit isn't really to protect my server, more just to make the data look reasonable when the page first loads.
 

henke37

aa
Sep 23, 2011
2,075
515
A very important filter, at least for TC, is which round is active. Similarly, the state of the control points.

And perhaps something about the flag? I am not sure what exactly to do with it, but it is a fairly important game object. At the most basic, a filter for killer/victim holding it.

Other filters would be overtime, sudden death and humiliation.
 
Last edited:

henke37

aa
Sep 23, 2011
2,075
515
Or, allow for a side viewpoint.
 

YM

LVL100 YM
aa
Dec 5, 2007
7,135
6,056
Geit was talking to me about this, the data is recorded with the full 3 axes, so the height info is there. We were discussing importing it into Unity for a sort of 3D view heatmap. I suggeted either making a bsp viewer for Unity, or turning the heatmap data into a mesh in unity and exporting it as a source model format so you could load it up in hammer. Both are somewhat ridiculous, but fun to discuss.
 

Geit

💜 I probably broke it 💜
aa
May 28, 2009
598
1,161
Geit was talking to me about this, the data is recorded with the full 3 axes, so the height info is there. We were discussing importing it into Unity for a sort of 3D view heatmap. I suggeted either making a bsp viewer for Unity, or turning the heatmap data into a mesh in unity and exporting it as a source model format so you could load it up in hammer. Both are somewhat ridiculous, but fun to discuss.

http://mathematica.stackexchange.com/a/17267
 

henke37

aa
Sep 23, 2011
2,075
515
If you want to output png files, then you might want to use the pCAL chunk. Or assume that noone reads the chunk and not bother.
 

Geit

💜 I probably broke it 💜
aa
May 28, 2009
598
1,161
Not such a big update today, I tried to do zooming, failed miserably and threw the code away :C - I'll have to try again tomorrow.


  • Images are now rendered at a constant 1280x1024 and then rescaled by the browser. This will cause a rendering time impact on low power devices, but should be fairly inconsequential.
  • You can now right click on the heatmaps and save them to your computer. (Tested on Chrome and Firefox)
  • Because the rendering size is now constant you can now send someone a link and be 100% certain that they see what you see. (Radius would be in flux based on client resolution before)
 

Idolon

they/them
aa
Feb 7, 2008
2,105
6,106
You can now right click on the heatmaps and save them to your computer. (Tested on Chrome and Firefox)

Strangely enough, doesn't work on Opera. I wouldn't worry about trying to fix it immediately since there's only like 20 people who use it, but just FYI.
 

Geit

💜 I probably broke it 💜
aa
May 28, 2009
598
1,161
Strangely enough, doesn't work on Opera. I wouldn't worry about trying to fix it immediately since there's only like 20 people who use it, but just FYI.

Opera is sexy. This is their implementation choice though - I'll have to add a button somewhere for downloading the image to make it work in Opera. (Will do that later on)