OPAL

Simple 3D Physics in C++

active-dates: Nov 2004 to May 2006

(Note: The original website has been archived here.)

OPAL (Open Physics Abstraction Layer) is a C++ software library which provides a common API for any number of real-time physics engines (collision detection + rigid body dynamics simulation). That was the original goal, anyway. Eventually, it became clear that the real value of OPAL was as a high-level, object-oriented wrapper for ODE. It features a very simple API, smart default parameters, a handful of intuitive objects (e.g., Solids, Joints, Motors, Sensors), and XML-based file storage for complex objects.

OPAL has been used in a few dozen software development projects, mainly in independent video games, grad school class projects, and funded research projects in and around the VRAC. I also used it for my master's thesis experiments on reinforcement-based motor learning.

Downloads:

Poster for the 2005 Iowa State HCI Forum
Poster for the 2005 Iowa State HCI Forum
"Playpen" for testing OPAL objects, included with the SDK
VR retail simulation by Infiscape
VR retail simulation by Infiscape
Physically simulated cabin that collapses when set on fire
Physically simulated cabin that collapses when set on fire
Rhino, a 3D space shooter game
Rhino, a 3D space shooter game
Menu system for VR applications at the VRAC
Menu system for VR applications at the VRAC
My own research on motor learning in physically simulated creatures
My own research on motor learning in physically simulated creatures
First-person shooter by Andres Reinot
First-person shooter by Andres Reinot
VR Arkenoid game by Ken Kopecky
VR Arkenoid game by Ken Kopecky
Magic Suit: physics-based VR with motion capture by Ken Kopecky & Melinda Cerney
Magic Suit: physics-based VR with motion capture by Ken Kopecky & Melinda Cerney
Hovercraft Soccer game by Ken Kopecky
Hovercraft Soccer game by Ken Kopecky
Radius game by Ken Kopecky and team
Radius game by Ken Kopecky and team
Ukrainian Rumble game by Oleksandr Lozitskiy
Ukrainian Rumble game by Oleksandr Lozitskiy