Hacker News new | ask | show | jobs
by MilStdJunkie 1038 days ago
Incredible viz.

I've experimented with zillions of 3d graphing layouts, usually in the context of PDM/ERP for manufacturing/logistics. Couple of roadblocks I've encountered that are also obstacles here (although he does a MUCH better job than I did in overcoming them, including dynamic distance between nodes, which I can't get away with, sad to say)

First is parallax, the phenomenon of things appearing larger when they are closer to the observer. What this means is that the node size CAN'T be significant in a 3d network unless the perspective is set to orthographic / isometric - because it's going to screw with parallax. How can you tell if the node is actually larger, or if it's just closer?

Second interesting thing about 3d networks is how the (Levenshtein or whatever parm) distance resolves in 3d space, and how that's going to be legible given that we don't have a fourth dimension to stick a camera in. On a 2d surface, the distance-driven force resolves in a 2d vector, so that looking down on it from above, no matter where the force vectors go, all the nodes will be theoretically visible. If you just plot plain distance as a force into 3 dimensions, just using geodesic or straightest line distance, the most tightly gathered nodes will disappear, i.e., be completely occluded. You won't see them!

One possible resolution for this problem, I've found, is classification of distance and assigning this class / category to a specific axis. For example, X axis can be time, Y axis can be a single vector (like, say, military / civilian adoption of a particular dual use part number, expressed as n), and Z axis can represent actual "real" distance (based on tokens, references, "where used", and whatever other factors, either all of them or some of them). This gives you structure where dimensions in the data viz are immediately significant, and simple isometric distance doesn't pile all the nodes in front of each other because they share the same space as the audience.

The takeaway here is that a 3d graph can't just use the same parameters as a 2d graph. The data has to be summarized differently so that the graph remains meaningful. Nothing WRONG with just dumping distance into straight 3d distance, but from the perspective of visual storytelling, it's not optimal.

Also, use isometric cameras. Sure, it's very pretty to have a camera swoop and dive, but it's not going to tell the data's story as well as an isometric camera. (Yes I know I am misusing "isometric" here, but it's the word most people recognize).

1 comments

Thanks for sharing your experience @MilStdJunkie

Actually the camera here is isometric! It doesn't look that way but it is.