Sunday, April 09, 2006

pragmatic augmented reality book

after having completed my third Halo book (the black art of Halo mods for Sams), I've moved onto my next project. it's a book called Augmented Reality: A Practical Guide for the pragmatic programmers. it's a cool project and I'm excited to be working with the pragmatic folks --- if you're not familiar with them, they are responsible for the highly respected book the pragmatic programmer.

Update: the code download for the book is available on the Pragmatic book page

- draft cover for Augmented Reality @ Home (now... Augmented Reality: A Practical Guide)

Augmented Reality is the process of adding virtual objects to the real world. so unlike 'virtual reality' most of what you see is usually real.

in our book, we'll be explaining (and providing) all of the source code for an Augmented Reality "Tank Wars" game (see screenshots below). the book's download includes samples for Windows, Linux and MacOS. the applications are written in C/C++ and C#.

- ARTag Tank Wars demo (click for full size image)

- ARTag Tank Wars demo (click for full size image)

here's a quick example that I just shot on my dining room table. the piece of paper with the augmented reality tags is real and the 3D objects (e.g., the fish and car) are artificial. in order to see the virtual portion, you obviously must be looking at the scene through some sort of interface that allows the augmentation. for example, a computer monitor or a head-mounted display.

- click for full size image

and here's a 3D fish coming out of my 1939 Remington Model 5...

- click for full size image

for a better example, take a peek at this cool video of an augmented reality demonstration. you can also see ARTag videos on YouTube (search for "ARTag").

Update: I've added an ARTag FAQ post for all your ARTag questions.


fbeeper said...

Augmented Reality is not a.k.a. Mixed Reality

Stephen Cawood said...

the two are commonly used as synonyms or closely related technologies. feel free to post your own definitions here.

for example:

"Mixed reality (MR) (also referred to as augmented reality or augmented virtuality)"


"This paper focuses on Mixed Reality (MR) visual displays, a particular subset of Virtual Reality (VR) related technologies that involve the merging of real and virtual worlds"

fbeeper said...

Refer more complete references, like papers of Ronald T. Azuma (one of the fathers of AR).

Stephen Cawood said...

fbeeper, the URL you referenced does not lead to an easily accessible quote. can you provide definitions or quotes that support your argument?

I don't mind being corrected, but I haven't seen a definition that compels me to stray from the popular usage of these terms.

fbeeper said...

Sorry... you can't get it from scholar :(

Get it from Azuma webpage:

Azuma is one of the most relevant researchers on AR and he is the the father of a lot of definitions who no-one cares previosly. Trust him :P

Stephen Cawood said...

oh fbeeper, why do you insist on making me do the work when you're the one who started this? :)

OK, so here's what I got from your second link:

"Milgram1 deļ¬ned a continuum of real-to-virtual environments,
in which AR is one part of the general area of mixed reality ... In both augmented virtuality, in
which real objects are added to virtual ones, and virtual
environments (or virtual reality), the surrounding environment is virtual, while in AR the surrounding environment is real."

not exactly a slam dunk argument that this is how most people would use the term "mixed reality," but nonetheless you've convinced me to edit my original text.

you have prevailed. and thanks for bringing it up.

fbeeper said...

yes! must people use Mixed Reality... and i hate it... i'm working on an Augmented Reality enviroment :P

Sorry for the work :P

Stephen Cawood said...

no trouble. I was kidding around.

I'm happy to help put forward the proper usage. I'll be more cafeful with my terminology in the future.

good luck with your project.

Anonymous said...


I recently bought your book. I have difficulties making a proper setup for working with Visual Studio C++ express. (Ch. 4). What is the right place to put my question(s) and/or find the answers?

THX, John.

Stephen Cawood said...

you can post your question here, post it on the pragmatic AR book forum ( or you can e-mail me.

Anonymous said...

I reached chapter 5 of the book (lot of sweat) and succeeded in compiling in VS C++ 2008.

I get: evaluation has expired!!!

But I download the SDK only a month ago...

Is there a newer version???

Stephen Cawood said...

yes, John there is a newer version.

book specific code: