Rift is built on top of the REngine.  This is my own game engine that I've been developing along
with Rift.  It's split into the following 6 parts:
 
- General - Provides the glue and guys that hold the thing together.  This includes thread pooling, an XML parser, and an AC3D file reader.
 - Math - About what you'd expect from a math layer.  Vectors, quaterions, matrices, rays, etc.
 - Panels - This is one of my favourite parts, it's the windowing library.  It has the frames, buttons, scroll bars, menus, and container
windows that you see in the game.  I used boost::function and boost::bind to do all of the event handling and I am thrilled with the result.
You can dynamically attach events and objects to events at runtime.  Boost is my hero.
 - Physics - Here's where most of my time went.  This provides the basic equations of motion as well as a full collision detection system
using the method of separating axis.  It doesn't hold a candle to Bullet or Crystal Space or whatever, but it does rigid body physics fast
enough to run the game, so I'm happy with it.  It's also a lot of fun to tinker with, watching things bounce around and what not.
 - Renderer - An abstraction of OpenGL.  It also supports shadow maps, shadow volumes, normal maps, and GLSL shaders.  Again, it's not
as fancy as some, but it does a good job for me and I learned a lot while writing it.
 - Sound - A thin wrapper on top of OpenAL.  I develop with the mute on about 99% of the time, but I think it still makes noise.