Virtual Hiker Revision History

Revision History

Back to Main Page
SourceForge Project
Joe's Java

E-mail me

 Jan. 9, 2005
Ver. 0.0.3
Updated to the Epoch 2005 World Magnetic Model used for computing magnetic offset from true north.

Added a method to VH Editor for resampling a DEM at different resolutions.
 Sept. 18, 2004
 Ver. 0.0.2
Added a model of the Earth's magnetic field used to estimate the offset from true north that a magnetic compass would show.  The magnetic offset for a location is shown when the "cross-hair" tool is used to click on the 2D map.  Also, in the 3D view, there are now a pair of buttons above the compass strip that toggle between true heading and magnetic heading.

Added a pop-up menu to the 2D map view that can be used to move the 3D view point to any position on the 2D map.  The pop-up menu can also be used to zoom in or out of the 2D map view.

Added a graphic that displays the current 3D view window's position and view direction on the 2D map.

Changed the button used in combination with the magnifying glass tool to zoom out from "Control" to "Shift".  This is more standard and does not interfere with the pop-up menu functionality on systems with a single button mouse.

  Aug. 4, 2004
  Ver. 0.0.1
First public release of the Virtual Hiker project.  Includes code for both Virtual Hiker and VH Editor.  Includes binaries for VH Editor only.  This is a pre-beta release.  Probably has bugs and definitely has missing features.

Ancient History

The idea for Virtual Hiker was born in either late 1994 or early 1995.  At that time, I lived near Seattle, WA and hiking was a big part of my life and the lives of many of my friends.  Our days jobs were on the rocks, so JW and I (names concealed to protect the innocent) began to dream of somehow combining our love of hiking with our careers -- and thus the idea of writing an electronic hiking guide was born.  Since I had experience with 3D graphics programming, the idea quickly morphed into a 3D mapping program tied to a hiking information database.

The 1st prototype for VH was created in 1995, programmed in C, on a Macintosh IIsi computer (25 MHz, 68030 processor, 4 MB of RAM!).  This was in the days before OpenGL was commonly available and hardware accelerated graphics was a hot new item that my old computer didn't have.  As a result, this first prototype had a custom written 3D graphics engine and extremely primitive graphics quality by today's standards.  But, you could recognize Mt. St. Helens and rotate the model around if you were patient with the redraw time (30 seconds to 1 minute per frame as I remember).

In 1996, I got a new Power Macintosh 9600 with hardware accelerated graphics.  OpenGL still wasn't available on Macs, but Apple introduced QuickDraw3D which was a ground breaking high level 3D graphics scene graph system (like many things at Apple, years ahead of it's time).  I ported the VH prototype to QuickDraw3D and generated the 1st interactive low resolution texture mapped images of Mt. Rainier (rendered at about 5 frames per second).  I also incorporated other Apple technologies at the time such as QuickTime for animations of 3D models rendered in specialized rendering software (VistaPro).

During the summer of 1996, my friend JJO came up with the name "Virtual Hiker" which has stuck ever since.

In late 1996 through early 1997, I finally cracked the USGS's SDTS file format used on Digital Elevation Map (DEM) and Digital Line Graph (DLG) formats and began to read in this widely available DEM and DLG data and the 2D mapping improved (before this, I was depending on a few old ASCII format DEM's that I scavenged off of public FTP sites that I found).  The database portion of the original idea was floundering (I know nothing about databases) and the C code for the mapping program was becoming unbearably complex.  At the same time, my day job became busier and Virtual Hiker fell on hard times.

In late 1997, I discovered Java.  I saw the light and I haven't wasted my time writing a C program since 1998.  Over the next few years I wrote a number of useful engineering programs in Java, but did almost nothing with Virtual Hiker.

By 2000, I had moved to Southern California and, partly because I missed Seattle, I began working on porting Virtual Hiker to Java.  The program was vastly simpler in Java than it had been in C (where a majority of the code handled things that are automatic in Java such as memory management and exception handling).  I quickly implemented code for rendering DEM's, DLG's and even DRG's.  I then used JNI to gain access to the SDTS reading library code from the USGS.  All that remained was getting back the 3D graphics.  By this time I had a 350 MHz Blue & White G3 Macintosh.

At the time, Java3D existed on SGI's and would soon be available on Windows.  But my primary target platform was MacOS, and Java3D was a long way off on that platform (it finally appeared in late 2003).  Also, Java3D, which has a hauntingly similar API as Apple's now discontinued QuickDraw3D, didn't look like it was going to give me the rendering flexibility and performance that I needed.  So, I began to look at other options.  At the time, the only realistic option was GL4Java.

So, in 2001, I began researching terrain rendering algorithms.  After trying out a few, I settled on developing a Java implementation of the high performance GeoMipMapping algorithm that used GL4Java to gain access to OpenGL.   I believe this is the 1st Java implementation of this algorithm and is the core of my terrain rendering code.  The GeoMipMapping algorithm written in Java, combined with GL4Java on a 350 MHz G3 could easily render very large terrains at 20-30 fps.

After this major breakthrough, I made my first pitiful stab at doing the database integration that we always dreamed about, but database programming is not my thing and my proof-of-concept implementation is lacking in many, many, many ways.

In 2002, I moved to Northern Alabama and started a new day job.  Virtual Hiker again went onto the shelf and fell into disrepair.

Finally, in early 2004, I decided that obviously I'm never going to be able to make much progress on Virtual Hiker myself and it's time that the code be made available to others to play with if they want.  So, I decided to publish the code on  Before doing that, I cleaned up some of the really embarrassing code and made a few minor improvements and bug fixes.

Made on a Mac!

Created: August 5, 2004
Modified: January 10, 2005