Demo app for Android showing compass using OpenGL composited with camera preview
Java C++ C Makefile
Latest commit 3583e04 Jul 27, 2016 Lawrence D'Oliveiro update to latest GeomBuilder
Failed to load latest commit information.
jni fix NDK warning Dec 16, 2013
src update to latest GeomBuilder Jul 27, 2016
.gitignore Major rework: Mar 30, 2013
AndroidManifest.xml Major rework: Mar 30, 2013
INSTALL delete trailing whitespace Jan 6, 2015
LICENSE add readme, instructions & licence Aug 19, 2011
README Major rework: Mar 30, 2013
build.xml fix signing with OpenJDK 8 Jul 19, 2016


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 <>