Contact Us

Owning the full-stack: A homesteading analogy on software, innovation, and freedom

Have you ever met a homesteader who owns a mansion? Me either. My neighbor, Bill (80), is a homesteader who tries to be as self sufficient as possible. From what I can see, it’s an immensely rewarding and humble existence. Life-satisfaction oozes out of his every pore and, eventually, even enduring the hardships must have become rewarding to him.

He was wearing an interesting smile when he told me that for 20 years the only inputs to the property were paper goods (read as: toilet paper) and that they don’t have any source of heat other than wood, which he cuts off his own property. Homesteading is immensely hard and it’s not for everyone. Homesteaders don’t have the time to live a life of luxury because homesteading means you have to own all the problems of life. The problems of food and shelter, and producing enough value to trade for things you can’t produce yourself. I think this is similar to how a full stack developer has to own the problems of the whole stack.

Read More »

When Earth is Like an Egg: 3D Terrain Visualization

Some of the most satisfying breakthroughs happen when technology gets used in a way it was never intended. While working with our graphic design group at Sasaki on ways to generate a dot pattern for a decorative screen, we came across some open-source software called StippleGen. Stippling is a way of creating an image by means of dots. StippleGen was created to optimize stippling for, among other things, egg painting. The software does a great job of laying out dots with greater density on the darker areas of the image while keeping a comfortable spacing between the dots. What's more, the voronoi algorithm it uses gives an irregular, organic pattern. The ah-ha moment came when I realized this could be applied to a different problem, visualizing terrain; specifically, optimizing terrain meshes in 3D software based off elevation data (a.k.a. Digital Elevation Model (DEM)).


Here's a typical use of StippleGen:

Used to create this: 

So how do we get from eggs to terrain? A given terrain, unlike an egg, is typically a mix of high variation areas, like canyons, with more uniform areas, like plains or plateaus. A typical DEM heightmap can be seen in the following image (top left) alongside some more familiar, human-readable representations of the same terrain that you might see on maps. Shaded relief is a useful trick for representing terrain in 2D where the terrain appears to be lit from one side.

Read More »

Einstellung Effect: What You Already Know Can Hurt You

The Einstellung effect is a psychological phenomenon that changes the way we all come to solutions and impedes innovation.

(Image Source:

Every day we solve problems - from choosing the quickest way to work, to how we’re going to fix a problem for that one client. How do we know if our solutions are any good? What if there is a much better solution that we haven’t thought of yet?

Read More »

Embracing the Hairball

One of the perennial challenges in visualizing complex networks is dealing with hairballs: how do you draw a network that is so large and densely interconnected that any full rendering of it tends to turn into an inscrutable mess? There are various approaches to addressing this problem: BioFabric, Hive Plots, and many others. Most involve very different visual abstractions for the network.

There is something compelling, however, in seeing the full, messy complexity of a network laid out in one image. Many of the alternate approaches have the disadvantage of being less intuitive. Most people are accustomed to inferring network structure from a collection of dots and lines; not so much from a matrix representation. I wondered if there wasn't a way to retain the immediacy and intuitiveness of, say, a force-directed layout, while somehow ordering it and stretching it out in a way that would give the important elements room to breathe. In this blog post I will describe an effort to find this middle ground.

Read More »

Subscribe to Email Updates

Privacy Policy
309 NW 13th St, Oklahoma City, OK 73103 | 888.514.8982