Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Demo app for Android showing compass using OpenGL composited with camera preview
Java C++ C Makefile
Latest commit 47b0b65 Lawrence D'Oliveiro delete trailing whitespace


3D compass is a sample Android application showing how to display a
dynamically-updated 3D arrow with OpenGL that takes its direction from
the orientation sensor, composited on top of a live camera preview
image. The source code includes the following
utility classes:
  * CameraUseful: some routines for managing the camera and decoding
    image data
  * GeomBuilder: basic management of 3D object geometry and rendering
  * Lathe: uses GeomBuilder to construct objects with rotational symmetry
  * Compass: how to use the orientation sensor data to draw a 3D
    compass arrow

Note that the compass direction is sometimes inaccurate--at least, on
my HTC Desire it is. However, turning the phone this way and that will
often nudge it back into a sensible reading.

    src/ -- Java sources for the Android app
    jni/ -- C sources for the Android app
    res/ -- resources for the Android app
    AndroidManifest.xml, build.xml, *.properties -- for driving
        Google's Android build tools (note that you will have to
        provide a couple more of these--see INSTALL for details)
    README -- this file
    INSTALL -- build/installation instructions
    LICENSE -- licence (Apache 2.0, same as Google's sample code)

Lawrence D'Oliveiro <>
Something went wrong with that request. Please try again.