The card data are located in the game folder under the files card files. The most important one is the file called: cardxml0.unity3d* which contains the cards meta-data in a pseudo XML format where an entity block contains the data for a single card. The other files contain the textures/images for the cards. For example, heres what the entity Holy Smite looks like:
Over time, parsing this file has become a little tricker. Thats because Hearthstone moved from having a single entry per card (with all the translations) to one entry per translation sometime after the Nax release. Blizzard also removed the string that previously described what each tag means. Now only the enumID appears. Nevertheless, this file contains all the information needed. It just takes a bit more time to write the correct parser :)
From there, I simply ended up using the same libraries that Ricardo Cabello used for his periodic elements demo as they were very easy to use. Since Three.js doesnt do animation natively, the viewer uses Tween.js to manage the transitions from point A to point B. To deal with user controls including pan, zoom, pinch, and rotate, the library of choice is called TrackballControls.