Blog Post

How Do You Visualize Abstractions?



Some time ago, my kids asked me what I do for a living. I told them I work with databases.

“What’s a database?”

“Well its a collection of words and numbers that lives in a highly organized bucket in a storage system hundreds of miles away in a thing called a datacenter.”

“Uh-huh,” That was not permission to continue but I did anyway.

“So it really doesn’t store words and numbers it actually stores them as ones and zeroes. But even then it is not really ones and zeroes but more of a very tight range of magnetic field strength values at a molecular level that we translate back and forth to see stuff. It’s a lot fun to store and manipulate information at your fingertips!”

More staring.

“I look at a computer screen all day, type things on the keyboard, wiggle the mouse, and drink lots of coffee and get paid for it.”

“Well anybody can do that!”

Ah, the folly of the yoots.

Riddle me this: Can you catch the wind? Can you see a breeze? And so it is with databases too. We are many layers of abstraction removed from tiny magnetic fields for persisting data but since it works with incredible reliability according to the properties of ACID ( we trust in the operation of databases. For many of us that is done in our daily lives seamlessly in working with SQL Server.

Some time ago I thought it would be interesting to walkthrough a flow chart using a game engine. Why be limited to looking at a flow chart when you could walk into it?

One of my first ideas was to create something regarding a figure I saw in Chapter 1 of Professional SQL Server 2012 Internals and Troubleshooting:

It is a great overview in the life cycle of a query and the entire chapter sets up a framework for drilling down more into the material behind that figure.

So I decided to try and put something together. Here are some screenshots from one of my first versions:

Looking_up Overview Top_wireframe Transaction_Manager

The PowerPoint slides of text and book covers were converted into .JPG and then edited in GIMP to be a power of 2 in size so I could get them into the Unreal Development Kit (UDK). From there I then created BSP blocks and then plastered the converted images like great big wallpaper the size of IMAX screens. The UDK has a lot of useful in-game art assets and from there I rigged things up as if it were great big LEGO blocks and then added some lighting. It took a lot of experimenting and iterations to get it satisfactory. And then to change things so that the text shows up in the Oculus DK1 headset. Add an XBOX Windows game controller for movement and it works! All a world away from my day to day life in SQL Server.

As a presentation you have to be mindful that some people can get queasy with a lot of movement and that moving between “slides” has to happen quick (<1 second) otherwise you can loose your audience. A presentation shoehorned into a game engine is not like walking around in a museum and having someone explain things to you. It needs to flow and make sense. Building a structure that can be used as a presentation and for exploration is a challenge.

I hope this gives you some ideas and gets you thinking about how to visualize things that are abstract but part of an overall system.


You rated this post out of 5. Change rating




You rated this post out of 5. Change rating