Stereoscopes and Cardboard Part 2: Virtual Stereoscope

In Part 1 I learn about the history of stereoscopic photography. Here in Part 2 I am attempting to display stereoscope cards from the 1890s on my futuristic Google Cardboard.

I took some time to calibrate as best I could the images in photoshop and place them in a 3d environment. At first I tried to make something that looks like this:


But this is, of course, a ‘one-camera’ approach. What I really want is to display the image for each camera (aka eye).


This variation was an attempt to have the image displayed ‘directly ahead’ for each eye (aka offset by 0.3 world units for each camera). I also put each image on a layer, and made each camera display the image. Unfortunately I had a couple snafus in my code. The ‘toggle mask’ meant I had accidentally swapped the image for each eye, and the offset was funky.

Finally I figured that I just need to put each image right on top of each other, and display the left image for the left, and right image for the right. Too simple, right?

Either that’s two cameras or one camera that’s had a lot of coffee.

You may also notice that I’ve added some UI:


These calibration controls allowed me to change the X and Z values of the pictures to see if moving them would better calibrate the image. I can move them closer and farther away, and increase/decrease the gap between them. The ‘Y’ value is fixed at 1.0 world units, which is effectively ‘head height’.

I was able to determine that, overall, the calibration I did in Photoshop was ‘good enough’. The X gap could be slightly better, but that may be subjective.

So how is the experience?

Upon the 3rd build with the calibration controls I saw this:


Which, if you have a Google Cardboard on, looks really, really cool!! My jaw kind of dropped when I saw it work. Not only did the 3d work  almost perfectly upon boot, it is like traveling through time and seeing another era!

I initially wrote I was skeptical that the parallax would have much of an effect, and boy I was wrong. All kinds of details pop out, and you get a feel for the people and things of the world. The pumpkins are round. The  corn didn’t have much pattern before suddenly coalesced into rows. The girl and the man in the background are quite alive and visible now!

Now having said that, the standard issues of current-gen VR do exist, specifically view persistence and the ‘screen door’ effect.  I was initially thinking that displaying the image in a 3d world and being able to ‘look around’ the image would allow for a better experience. But at times it seemed like head tracking (aka gyroscope) was adding blur, and that perhaps looking at the image ‘off axis’ instead of directly at it like in a traditional stereoscope was causing distortion.

So I decided to turn off head tracking, essentially turning the Google Cardboard into a more traditional stereoscope. It turned out (surprise) that while head tracking was adding a bit of blur, it always stabilised. And looking at the image off axis? This wasn’t a problem, but actually improved the ability to see more details! In order to look at the same details in a traditional stereoscope you would have to move the image farther away, allowing you to see the edges of the image without distortion. This also mean the image was smaller and harder to see. With head tracking on, you can see the edges of the image close up and with less distortion.

It is quite fun to think that noone has viewed these antique images in quite the same way and detail that I’m able to see now. It is also somewhat irritating that my only way to convey this to you is through words.  It is quite possible that only I am interested in such quirky things. But if I am not alone, perhaps there will be a Part 3 to this series someday! I hope that I can scan and calibrate all 26 images I have bought and include them in an app for Google Cardboard. It should not be a complicated endeavor, but it is not for today.

Stereoscopes and Cardboard Part 1: Digital Archaeology

Here in Part 1, I attempt to learn more about the history of stereoscopic photography. Part 2 involves converting this old photography into a Google Cardboard virtual reality app.

I was in a rather large antique shop in Globe, Az snooping around and I came across some rather interesting photographs:


These are stereoscopic images taken in the late 1800s onwards. The selection they had, which I now own, generally fell into three categories: nature, cities, and the Sears-Roebuck offices.

These stereoscope cards are, unsurprisingly, put into a stereoscope. Most commonly for the Holmes Stereoscope, which was intentionally left unpatented so that an economical and simple stereoscope could be made.

Thousands of stereoscopes and many, many card sets were made. Some of these sets were available in book-shaped containers, with one hundred or more cards.

The images I bought all were a piece of thick white card with images glued onto them. The Sears Roebuck cards were simply printed copies.

A closeup that shows the halftone pattern of the lithographic black and white photo print.
A closeup that shows the halftone pattern of the lithographic black and white photo print.

Regardless they were quite fascinating to me in many ways. Partially because of what was considered worthy photographic subject matter. Here is where Sear’s stores its ‘talking machine records’.


The back of the card reveals that…yes…this was a subtle sales ploy:

“If you are interested in a talking machine don’t fail to read about our offers in our General Catalogue”

I mean, if you own a stereoscope, chances are you are the sort of chap who’d love a talking machine, yes?

While these are interesting cards, my favorites were the higher quality photo cards. These cards were generally more interesting, and are genuine photos from the late 1800s, most likely circa 1890. The gorgeous sepias and continuous tones make these stand out.

When the frost is on the pumpkin, and the fodder's in the shock.
When the frost is on the pumpkin, and the fodder’s in the shock.

Yes, this is…I don’t really know what this is. I mean, first these two are kissing:


These two are sneaking a kiss in after their work is done (aka When the frost is on the pumpkin, and the fodder’s in the shock). I’m assuming this is supposed to be more funny than titillating, and at least she seems to be laughing. These two however are not:


But hey, I’d look surly if I was stuck dancing with the dog, too.

So my first thought about these photos was…are these really stereoscopic? I do not actually own a stereoscope! But I do have a scanner and a few Google Cardboards for various projects. But before I go ahead and create an app for viewing these quaint (what better word for them than quaint?) images I figured I should verify they actually are stereoscopic.

At first glance, they do look like the same image. The imagery is rather small (the stereoscope has a magnifying effect). The images were cut out and glued by hand, making it more difficult to determine if the images were simply cut out a little to the left, and then to the right.

When I scanned the images and digitally superimposed them, I had no ‘registration point’ with which to determine the location of the images. It also seemed like there is a bit of vertical mis-alignment as well which I had to adjust for.

But for both my ‘talking machine’ and ‘kissing farmers’ image it became quite obvious that the images were indeed stereoscopic.


The row of corn is the most prominent detail, showing the parallax effect between the two cameras. It seems also that the parallax between the cameras is even exaggerated, making it much larger than the actual parallax that occurs between a person’s eyes naturally. Perhaps this was on purpose, or it was simply because the camera equipment required was so large.


While both cards were not very well ‘registered’ (ie calibrated for stereoscopic display) the talking machine card definitely was worse due to its rotation. The kissing farmers were vertically mis-aligned, but the talking machine was both vertically off and slightly rotated. I could only imagine this would make it quite difficult to get the correct stereoscopic effect.

But it seems to me that the usage of stereoscopic imagery was gratuitous and did not add much to the imagery. I’m not sure what value there is to seeing a hallway full of vintage vinyl in stereo, unless maybe you are a classic vinyl junkie. Perhaps the camera lenses of the time did not provide enough distortion to give the images a sense of perspective. It also seems like the calibration of the cards may have posed issues as well. I am very interested to see if there is something more to these images in 3D that becomes more immersive and fun.

And immersion is on my mind because now I will be attempting to bring these images into a 3D environment using Google Cardboard and Unity. Stay tuned for Part 2!

Fixing Time Machine Files

Infrequently I’ll grab something off my Time Machine. But restoring stuff from time machine can sometimes fail. For example if you are restoring a file from another computer.

I then have to resort to copying things over from the Time Machine hard drive, which causes weird permissions issue. And even if you change the user and permissions in Finder…its STILL broken!

Thankfully it is possible to fix this. I found this link about ACLs (access control lists) which talks about how there is a hidden weird os x permissions system that isn’t obvious. And then this link about file attributes talks about the fact that on the command line you can’t see if a file has ACL settings if it has an attribute set!

So how to fix a file?

First you can clear the acl like so in Terminal:

sudo chmod -N $MYFILE

And you can remove ALL attributes (maaaay need to be careful with this one) like so:

xattr -c $MYFILE

This will convert your time machine file to a ‘normal’ file.

And how to better diagnose this is the issue? If you run

ls -al
-rw-r--r--@  1 chris  staff      740 Nov 16 11:50 time_machine_file.txt

See the @?  As mentioned in the article above this @ will obscure the ‘+’ that would normally show, that tells you that an ACL controls this file. You can find out with:

ls -le .
-rw-r--r--@  1 chris  staff      740 Nov 16 11:50 time_machine_file.txt
 0: group:everyone deny write,delete,append,writeattr,writeextattr,chown

Oh hey, look at that! ‘group everyone: deny write’ that might be a problem. And now you know the fix!

Fixing Cmd-tab for Full Screen in Hearthstone on Mac

One of the more annoying things about Hearthstone on Mac is Blizzard’s decision/oversight to not allow cmd-tab to work in full-screen mode. Considering its written in Unity, and I’m a Unity game dev I knew exactly what was going on: their ‘Mac Full Screen Mode’ setting was not set to ‘Full Screen Window With Menu Bar and Dock’ but ‘Full Screen Window’. This meant that you have to exit full screen in order to switch applications, which for me was a major pain in the ass (especially while net decking! :) ).

And so I realized hey, I know how to fix this. Its just data. I could find the setting in the binary data, and flip the bit. I created a simple test project where the only change was this setting. I then did a diff on the mainData file and found this:


Oh look! I can switch a 1 to a 2 and fix the issue. Ok, so next step was to open Hearthstone’s mainData. Let’s just say that this required some basic snooping to find the correct offset. The offset in my mainData was 10 32-bit words off from two 0xFF words followed by what looked like a lot of bit flags. So I found two 0xFF words in Blizzard’s mainData and counted 10 words over, flipped a 1 to a 2, and bam: cmd-tab works.

How do?

Perhaps you would like to turn cmd-tab on as well? I will attempt to give some simple steps:

  • Download Hex Fiend here.
  • Get the mainData file from /Applications/Hearthstone/ and back it up.
  • Copy the file to another location, and open the file in Hex Fiend.
  • Choose Edit->Jump To Offset. At the time of this writing the offset is 4884. Move your cursor until the status bar on the bottom says ‘4884 out of XX bytes’.
  • Change the 01 to a 02 at this location.
  • Save the file.
  • Move the modified file to the location mentioned above and start Hearthstone.
  • Observe that you can now Cmd-Tab.


Your Mileage May Vary

Needless to say that this information will most likely go out of date as soon as the game is patched. Additionally Blizzard had this feature in the Beta, but then removed it at launch, and my assumption is that they had a reason for it (probably full screen compatibility issues on crappy graphics cards). But hey, if its not that, maybe they can flip this bit and make us Mac players happy campers?

Unity Tips: Running from the Command Line

Running Unity from the command line has a few benefits. And its easy:

/Applications/Unity$UNITY_VERSION/ -projectPath /Users/chris/Projects/MyProject/$BRANCH/unity_project
  • Open multiple projects!
  • You can specify a Unity version (I usually immediately rename Unity to Unity$VERSION due to needing multiple versions of Unity installed).
  • You can open up multiple branches of a project at the same time easily and compare/copy things quite easily.
  • Ctrl-C will immediately kill a hung Unity. Then press the Up Arrow and Enter to get back in the zone.

My Favorite Game Soundtracks

Hey do you like music? I got some records back at my place. You want to come by and check them out? You do?


First, a lot of music doesn’t even have physical form because its a tracker file or some arcane format meant to be played on an old sound chip.

Second, lots of video game music is pretty damn nerdy. It doesn’t have the deep vocals of Marvin Gaye to weaken knees.

BUT! Some of the best music EVER is video game music. And why not shine a light in this little musical corner and give some love to these hard working people who make this amazing work? So in no particular order here are some of my faves. Got a fave yourself? Let me know in the comments!

Disasterpeace: FEZ

Probably one of the most amazing soundtracks period. I constantly come back to the warm fuzzy spaces it creates. The variety of melodies are evocative and constantly evolving. Each track shifts into the next effortlessly. An entrancing thing of beauty.

Additionally there are two remix albums available. FZ: Side F and FZ: Side Z. Both quality additions, but the original is still my favorite.

C418 : Minecraft Volume Beta

Probably my favorite remix of the Fez soundtrack is C418’s Kompass, which made me ask: What the heck is a C418?! Turns out this talented guy is responsible for the music in Minecraft. While I enjoy all C418’s work, Volume Beta is, similar to the Fez soundtrack, be an album I will never tire of.

Anamanaguchi: Scott Pilgrim Vs. The World (Original Video Game Soundtrack)

When you think game music, you might think demo scene. You might think SID, and most of all you’ll think CHIP TUNE! Anamanaguchi does not disappoint with their unique tracker shenanigans. While the movie soundtrack is pretty good, THIS is the soundtrack I wanted, and keeps me coding all day.

Amon Tobin: Chaos Theory

Ok, so I’ve played the above games, but this is a soundtrack for a game I’ve never even seen a screenshot of. Just googled it: its a stealthy Metal Gear Solid affair. Meh, not my thing. Amon Tobin is one of the original Ninja Tune crew and that’s all I need to know. The soundtrack has his signature sound: atmospheric, dense, and big.

Bonus: It is a testament to the album that years later it was remixed by some great artists:


Daniel Olsén : Ilomilo

OMG, this soundtrack’s whimsy is almost too much. I love its playfulness and it fits the game to a T. A hidden gem among game and soundtrack alike. My favorite is the lighthearted recorder(?) of ‘Uke In The Grass’ played with the hesitation of a child learning a new piece. The music doesn’t take itself seriously and it lifts my heart.

Well that wraps up some of my favorite game music. This was getting a bit long, so I’ll leave it at that! I’m always looking for more, give me any suggestions in the comments!

Top Best Most Awesome of 2014: Strava

So far the Best Most Awesome has been games and movies. Because what else is there in life, right?! As I’ve already mentioned, friends are for people who don’t own video games. I do leave the house quite a fair bit tho. To do what?! Well…I ride my bike.



Yep, I ride my bike and shit. Around the yard, and if my mom lets me I can go all the way to the park and back.

Ok, that’s all you need to know about my cycling habits. Back to games! Fun fact: in the history of the known universe there has never been a good video game about bicycling. The closest possible game was Paperboy, which also had chromed freaking handlebars.


Most cycling ‘games’ are pretty stupid boring affairs, with a lot of talk about things like Functional Threshold Power, and video footage of some dude going up a mountain. While MAMILs may enjoy this stuff, everyone I know unanimously can’t stand it. It doesn’t stop tons of companies from making more boring training products thinking that maybe their shiny graph of power output will be cooler than that other company’s.

But then, there is Strava. Is Strava a game, a social network, or just a data tracker? Like many things, its what you want it to be. Keeping track of training data? Great. Want to conquer that KOM? Push for it! Want to meet people and socialize? I use Strava more than any social network.

What makes Strava so much better? I think because, unlike all these other companies, they’ve figured out that, sure, cyclists care about FTP and looking good in lycra, but that’s not the main reason we cycle. I ride my bike because…its fun. I use Strava because…it makes cycling more fun.


That’s a run from someone I don’t really know, who always posts great one-liners for his rides/runs. This fine gentleman, who as you can see is quite popular, has inspired me to do the same. In fact, I keep a joke diary and take notes just to help me come up with good one-liners for Strava. This guy, who I have never met, has driven me to compete on Strava with one-liners.



This is a ride from Niki Terpstra. He won the 2014 Paris-Roubaix, which was, for me, the best ride of the year. It was such an inspiring ride, I went and looked to see if he was on Strava (he was). And the actual Paris-Roubaix race that he recorded was up there!

So…games. I keep coming back to the gamification of cycling that Strava is/is not/could be. Gamification is generally a misguided attempt to manipulate people into working towards a goal they would otherwise not do. But Strava is gamification that works. I compete with others, with myself, and Strava enables me to level up, to engage more often, and ultimately have ‘player stories’.

And that last bit is key. Those stories up there? Player stories. Things that happened while I was using Strava  that were unique and interesting and I wanted to share them. Maybe player stories are the true secret to gamification? I’m not even sure these *are* player stories because I’m not sure Strava is a game. Regardless, if they are ‘just’ stories, Strava is still one of the Best Most Awesome of 2014.


Top Best Most Awesome 2014: The Lego Movie

Christopher Nolan’s doesn’t write movies. He writes the ‘beginnings’ of movies. All that stuff that happens at the end? Pft, DETAILS. Because of this, I’ve been sorely wishing for a quality Batman movie. Who would’ve guessed that 2014 would have the BEST Batman movie…EVER?

Yes, the Lego Movie, a toy-driven franchise, could have easily turned out to be one long stupid ad for injection molded bricks. But instead they took the time to look deeper. Lego fully understand the importance those bricks stand for: imagination, critical thinking, deep play. There are few toys that shape minds with the power of Lego.


So when they finally made a movie, they molded it(seewhatididthere) around conformity vs. imagination, and how conformity sometimes wins. The imagination is unadulterated, raw, and liberated. The conformity is a surprisingly adult view on corporate culture and how people can spend their lives as interchangeable automatons living an unremarkable existence. All this comes together with amazing animation, superb acting, and an emotionally powerful and unique ending.

I love seeing great people at work. It shows through in the movie, and also in the voice acting:

I cannot complete this without mentioning Ben, my favorite 1980-something Space Guy.


Benny is a big spaceship nerd. He loves them. He knows that everything can be fixed with them. To him, they are the Golden Hammer of vehicles. And thankfully for our heroes it is the Deus Ex Machina of the movie, saving the day.  He’s also a bit on the outside looking in. He wants to help, he’s got some ideas, but he doesn’t have the social capital to make it happen. He bides his time and he gets his payoff in all its 80s glory.

Lego made a very smart movie because it was not afraid to be dumb. Micromanagement In Progress. Double-decker couches. Everything Is Awesome. Morgan Freeman simply existing in this movie. It took the time to explore and be imaginative, and find things that were beautiful and amazing. And then they made a movie that embodied those ideas and was also about them.

So are you listening, Nolan? You set up something in the beginning, and then you pay it off later. This technique provides the characters with growth. They persevere, and learn, and at the end there’s an interesting outcome called a ‘denoument‘. All those old movies that suddenly and abruptly end? Those movies didn’t have a denoument.

For example, at the beginning of this article, I said Christopher Nolan can’t figure out how to finish his movies. I made a connection to the Lego Movie using Batman. Then at the end I explained how you finish a movie. I even used a self-referential loop, without requiring sticking Leonardo DiCaprio in limbo for 50 years.





The Top Best Most Awesome of 2014: The Binding Of Isaac: Rebirth

My ‘Top Most Awesome’ series is not in any order, mainly because I don’t know if there is one. BUT one thing stands out for me at the top of my list: Binding Of Isaac: Rebirth.


The original BOI was a truly fantastic game with one major flaw: it barely worked. I would get to a certain point in the game, and the frame rate made it unplayable. Rebirth is a complete rewrite, fixing all the issues I had, and giving the game even more features.

2014 is the Year of the Roguelike. That word is thrown around a lot lately. There is a big difference between making a game that is procedural and random, and a roguelike. A roguelike provides a game experience where each playthrough provides a completely unique combination of game mechanics that needs to be mastered. If you are simply randomizing mechanics, levels, layouts, or other items, but not making these interactions interesting, it is not a roguelike, its just random.

This is where Binding of Isaac shines. The combinations of items means each run is unique. And with 400 items, you never know what insanity might await you. Lets watch Mike and Jack from Pre-Rec (Red Letter Media’s video game channel)  play some BOI:

And here’s the sad/wonderful thing about the game: I still haven’t beaten Mom. I’m not even close (I am playing solely on hard). But somehow I love playing it anyway.

The art and concept are crazy over-the-top, adding to its uniqueness. I don’t think there will be a game like it ever again. This game will become a classic, played for years.

PS: Check out this amazing box art for BOI created by none other than Sam Kieth! Phenomenal stuff.