San Angeles Observation

San Angeles Observation thumbnail
San Angeles Observation (2004, 2005)
Platform: Windows (original version), Windows/PocketPC/Linux (OpenGL ES port)

Winner of Assembly’2004 4 KB intro competition, released as a production of the Armada group. I am the main author of this production, with the help of !Cube who made the music and st Rana who helped a lot with the design.

The production was nominated by Awards as Best 4k intro of 2004. Here is their commentary:

“Both seduction and repulsion can come from such a colorful spectacle. Dreamlike, very simply arranged in a fade-in / fade-out structure, it actually brings the real start and closure that often four kilobyte intros lack. A city such as this one may not look real, but the original modeling technique used here participates of the overall atmosphere. Not to be forgotten, the soundtrack, which really contributes a great deal to the relaxed feel and the coherence of this ethereal trip.”

2005 Update: I ported the intro to OpenGL ES to contribute in the Khronos OpenGL ES coding challenge. This version won the 1st place in Demo/Special FX category. The OpenGL ES port has reduced complexity and sound removed, but the package comes with source code which can be compiled for desktop Windows, PocketPC and Linux.

2009 updates: I’m glad to report that every now and then there’s some sighting of the production in a new form. Reportedly nVIDIA has ported this to Java and used as a demonstration case. Martin Storsj√∂ has made a Symbian port. Oolong Engine also has included this as an example/showcase for iPhone. Also Google has added it as an example into the Android SDK. Lately it even surfaced as one of the showcases for WebGL from Khronos & Google.

2012 updates:

  • Switched the YouTube link below to a new 1080p Full HD recording.
  • Ported the OpenGL ES version to Raspberry Pi. Get it here: sanogles_raspberrypi.tar.gz, or check out a little preview of it in YouTube. Tested to be runnable with the Raspbian wheezy distribution (2012-08-16 build). The ported version uses VBO optimizations which are contributed to the source in the Chromium source tree. There’s no source in the package, as my changes were a bit messy. However, the changes were pretty simple: removed the X11 code, replaced with init code from the hello_pi/hello_triangle code, changed colors in code to use alpha component (255) as I had to init the EGL with alpha (not sure if this is a requirement or if I just didn’t try the right combo).

Download Windows zip (Original high detail version)
Download OpenGL ES port (low detail, includes source code)

Link to YouTube video.
(2014 update: Video link changed to a 60 fps Full HD version – watch in fullscreen and select the 1080p60 HD quality!)

6 responses:

  1. Tim Larson says:

    Thank you for the SanAngeles demo…

    Is the sourcecode for the “OpenGL” version available (i.e. not the OpenGL-ES version)

    I’ve downloaded and run the Windows executable, but I’d be very interested in seeing the OpenGL sourceCode.

    Thank you for your time
    Tim Larson

  2. jetro says:

    There’s an updated version in the Chromium source tree which has both OpenGL and GLES support, including VBO support. I supplied the original source to be adapted for that purpose, but haven’t yet had the time to check through all the modifications in detail. Anyway, here’s a link to the adaptation:;a=tree;f=client/site_tests/gpu_SanAngeles/src;h=708566b95afba86fda74ee6f47695ec2cf6703c2;hb=HEAD
    (note: link is deprecated, please report here if you figure out up-to-date one)

  3. Dan says:

    Have you ever made the high-detail models available for the open-source version? I’d love to play around with how it performs on some of the newer chips. I’ve taken the Chromium changes and ported them back to Android, so hopefully we’ll have the OpenGL ES 2.0 version with VBO’s available in the SDK one of these days.

  4. jetro says:

    Some Chromium developer asked me for the hi-detail version of models, so the Chromium source tree actually has them available. Check shapes.h and use the SUPERSHAPE_HIGH_RES macro.

  5. jetro says:

    Here are more recent links to various versions Google is using as example or as part of test suites:

  6. […] implementation is based on a great demo called San Angeles Observation by jetro (his page). We added some music of our own, […]