Si es javascript y si se mas o menos como se realiza, tengo tiempo realizando trabajos con el canvas de html5 para automatizar la creacion de videos.
Se utilizan para detectar fonttypes instalados y emojis con eso te das cuenta si es pc o movil sin tener que confiarte del user agent y si a lo mencionado le sumas diferencias sutiles en el procesamiento de ciertos algoritmos de transformaciones de imagenes podrias determinar hasta el tipo de hardware que utiliza.