This is a small program made sing C++ with the openGL API. It is a Roller Coaster builder. Using the keyboard you can create a new track sction, move it around, and rotate it. The track is constructed using a Catmull Rom Spline, fitting a model of track piece to it by finding the tangent of the curve.
When the track is all done you can ride the roller coaster by pressing v. A small roller coaster cart is made and the camera is placed inside the cart. You can look around using the mouse. The cart using simple physics, taking its tangent angle, and calculates the effects of gravity using the angle, to provide semi realistic speeds from drops. There is also a small friction force on the cart, and a brake force that is applied at the end of the track to stop the cart.
Also the tracks can be saved and loaded. Each track is saved using the nodes of the curve.