PHYS 5770 Spring 2001 Homepage

concept | syllabus | texts | BHFS | problems | gallery | emails |

- The suggested text for this course is B. F. Schutz `A First Course in General Relativity' (Cambridge, 1985). This book gets positive ratings from everyone who uses it.
- A highly readable set of notes at about the right level for this course is Matthias Blau's Lecture Notes on General Relativity. The notes do not cover special relativity, and do not get as far as rotating black holes (the Kerr metric). However, Blau does an incomparable job of exploring the various subtle features of general relativity from many complementary points of view. If you ask yourself, for example, why does the Riemann tensor have the symmetries it has, Blau will give you not one but several answers, among which you will probably find an answer that fits the deep question you had in mind.
- One of the best relativity resources on the web is Chris Hillman's Relativity on the World Wide Web, which amongst other things contains links to Lecture Notes at both undergraduate and graduate levels.
- See Sean Carroll's Books on General Relativity.
- Did you know that the best, and definitely the coolest, way to implement Lorentz transformations is as complex quaternions? Discover this and more amazing mathematics in How to Program Lorentz Transformations on a Computer (gzip'd PostScript, 204K; version of 11 Feb 2001).
- S. Gull, A. Lasenby & C. Doran's `Imaginary Numbers are not Real - the Geometric Algebra of Spacetime' HTML; PostScript.
- A. Lasenby & C. Doran's Lecture Course in Geometric Algebra.
- Special Relativity.
- Falling into a Black Hole.

- The definitive guide to OpenGL is M. Woo, J. Neider, T. Davis & D. Shreiner (OpenGL Architecture Review Board), `OpenGL Programming Guide, 3rd Edition', (Addison Wesley, 1999, $49.95 paperback).
- OpenGL.
- Simple DirectMedia Layer (SDL).
- SDL OpenGL tutorials.
- Java 3D, an extension of the Java 2 SDK.
- Stuff you should know about Color.
- Dewey Anderson's experimental c++ code Tex_sphere.cpp for applying a black-hole-like warp to a background, such as the Lund Observatory's Panorama of the Milky Way, or Axel Mellinger's Milky Way Panorama.

Whatever other language or library you may use, underneath will be OpenGL, Silicon Graphics' Open Graphics Library, which has become the de facto standard for cross-platform computer graphics. OpenGL provides 3-dimensional texturing, rendering, lighting (but not ray-tracing), fogging, and hidden object removal.

Despite its power, OpenGL is a fairly low level library, offering no windowing system, no user interface, and no built-in widgets such as buttons and menus. There are now many graphic libraries that are built on top of OpenGL, and that offer higher level capabilities missing in OpenGL. Undoubtedly you will want to use some of these libraries.

Since you will want your interactive animations to run fast, you may find that a useful layer on top of OpenGL is the Simple DirectMedia Layer (SDL), which offers fast access to the graphics framebuffer, audio device, and CDROM. SDL has the merits of being free, fast, documented, and cross-platform. There is also a nice set of SDL OpenGL tutorials.

Another possibility is to use Sun's Java 3D, an extension of their Java 2 SDK (Software Development Kit). Java 3D is built on top of OpenGL. The advantage of Java is that it offers a vast number of high level features, and the automatic memory management is what every programmer dreams of.

My own experience with Java 1.1 in 1998 (making the BHFS whose screenshot appears on the course homepage) was somewhat disappointing: the language was slow and buggy, and it proved nigh impossible to make animations run smoothly. One would hope that many of those problems have been solved or alleviated in the last two years.

PHYS 5770 Spring 2001 Homepage

concept | syllabus | texts | BHFS | problems | gallery | emails |

**Updated** 5 Feb 2001