24 Hours of 3D Data Viz Hacking

Jason Francis
6 min readJun 20, 2016

--

I’ve been meaning to do a postmortem of the VR data visualization project I started at AngelHack Seattle 2016 for a while now. The event was a month and a half ago and I haven’t been able to work on the project all all since then, but I’d like to tell the story as well as dump some random musings about the product vision.

The hackathon itself was a pretty standard competitive format — pitch, assemble teams, hack for 24 hours, present to judges, win prizes. I knew I wanted to pitch something, but I didn’t have anything premeditated. When the pitches started I got up on stage and stood in line anyway, just for the hell of it.

It felt difficult in this kind of situation to pitch something that didn’t feel like hubris. Something just clicked about 30 seconds before I was scheduled to go on stage, and I had the pitch. I was frustrated with the fragmentation of social media, the decline of RSS readers, and the low signal-to-noise ratio that seems to pervade a lot of internet communities. I wanted to take my Facebook, Twitter, Reddit, and Hacker News addictions and turn them into something more positive. I wanted to build a social media aggregation tool that made it fun and engaging to navigate these vast networks of information again.

I have three mantras when it comes to hackathons. The first is to treat yourself right. Technology is supposed to make us healthier. I see the appeal in chugging caffeinated drinks and staying up all night staring into a computer screen, but it’s not usually worth it. A well-rested and well-nourished team is the one that’s going to pull through in the last moments.

The second is to foster an environment for learning. Even if the project goes completely south, or if you just don’t have a project, hackathons are a great place to both learn and to teach. It can be a lot of fun at these types of events to just walk around and help other teams with their projects.

The third is to make new friends. In this industry there is never a shortage of cool people working on cool projects. These people are my people and I love them to death.

We ended up building two demos using the wonderful D3.js, and a newer library from Mozilla that I had just learned about called aframe. This combination ended up being super useful for a hackathon environment — I was initially thinking we would have to use three.js or X3DOM, both of which are way more complicated. I’d advise anyone who is thinking of doing a quick-and-dirty WebGL demo to look into D3.js + aframe, because these two libraries do indeed play so nicely together.

The first demo was an adaptation of an existing D3 visualization. It was difficult to display image data on it, and it turned out that it wasn’t very impressive VR.

The second demo was way cooler looking and displayed images from some of our favorite subreddits as a series of panoramic cylinders.

We called it Zoomly which was a total throwaway name. The controls are kind of messed up, we only tested it in Firefox, it doesn’t really work in a VR context, and it’s buggy and slow. But it did its job in that it gave us something to present to the judges.

The pitch that came together in the end was essentially about how we were going to build these experiments into “The Tableau of 3D.” The first frontier would be social media because of how wide a reach it has. We’d start with a VR social media aggregation tool that would pull social media feeds, RSS feeds, news sites, blogs, all together into a configurable graph. We would allow the user to accumulate massive amounts of aggregated data, and then give them tools to navigate through it in unique ways that wouldn’t be possible with traditional data visualization methods. From there, we would branch out into other types of graph structures and ways of organizing the data in 3D, and sell it as a business intelligence and scientific analysis tool.

We did make it to the finals, and I got to pitch the project in front of the whole room. Unfortunately we didn’t win! I made a lot of mistakes along the way. In the final moments of our pitch, I could feel my confidence slipping away, like a mental fog was setting in. I got thrown some tough questions that I didn’t have good answers to, and I absolutely could have answered them had I been more prepared. Moments like that can make or break a deal, and personally I wish I could have done a better job.

I also wish I had spent less time arguing with my team and more time defining the problem. When you only have 24 hours to build a product start to finish, every minute spent not coding better be well justified. It’s a problem with the requirements when the engineers don’t know what to do and feel they need to argue about things just to get a grip on what they’re doing. I was totally guilty of falling for this trap and not giving them solid enough requirements that played to their individual strengths. Especially in this environment, engineers usually don’t need any motivation besides having the knowledge that there is a problem to be solved.

Ultimately though I do think the idea of “Tableau for 3D” is still sound. I’ve noticed a distinct lack of good 3D data visualizations out there, and I think this space is still ripe for innovation regardless of the current VR craze that’s going on right now. I often find myself forgetting that the world around our physical selves is a 3D graph, and that we seem to derive some usefulness from it just by living in it. Video games and VR are built on top of this, but I believe there are still plenty of opportunities for displaying other types of large data sets.

One of the big shortcomings of current data viz technology is that it can be confusing and inaccurate depending on the type of data that is put into it. This unfortunately is not a solved problem, even with 2D visualizations. The CAD and VFX industries have done a lot of the leg work in finding accurate ways to do 3D already, so I believe there are opportunities to improve our tools across the board. Our plan was to use large graph structures sourced from social media as a stepping stone into other fields, and it felt a bit impractical. A better place to start is probably in medical imaging, or something else that has an establish use of point clouds and other multidimensional topographic data.

I don’t know if I will revisit the idea in the near future, as other projects have consumed most of my time. But I would still love to see advancements made in this field. Powerful GPUs are everywhere. There are still tons and tons of opportunities for novel 3D applications.

I’d like to give a shout out to my teammates Dominik, PJ, Sayna and Yonas. You guys did an awesome job! I also want to thank Julie Sakalys for suggesting the wonderful aframe library. And of course, many thanks to the organizers and sponsors of AngelHack for getting the whole event together. It was a blast, and I’m looking forward to hacking more in the future!

--

--