Exploring OpenGL and High School AP Physics
Kris Stewart, Ed Center on CSE, SDSU
http://www.stewart.cs.sdsu.edu/EPIC05/openGL_physics.html

Vlearn3D.org
email from Margaret Corbit (29July04) pointed this out. "totally volunteer org from Margaret Corbit (Cornell), Bonnie DeVarco (), Katy Borner (Indiana U.), Bruce Damer"
Digitalspace.com
http://programminghq.tk/ Programming Headquarters (linked from http://nehe.gamedev.net/, Neon/Helium

28june05 google search finds:

http://www.ba.infn.it/www/didattica.html
http://www.slcc.edu/schools/hum_sci/physics/tutor/2220/sources_magnetic_fields/
http://www.slcc.edu/schools/hum_sci/physics/tutor/2220/links.html
http://www.hazelwood.k12.mo.us/~grichert/sciweb/applets.html
Led to
http://www.hazelwood.k12.mo.us/~grichert/sciweb/basics1.htm
http://micro.magnet.fsu.edu/primer/java/scienceopticsu/powersof10/index.html Powers of Ten

26June05 Google search for AP physics magnetics found some interesting sites:

Vis Electricity and Magnetism
" We are using visualizations in teaching physics interactively in freshman courses at MIT (classes of 500 students). We combine desktop experiments with visualizations of those experiments to "make the unseen seen". "

Physics 8.02 Main Page

Vector Fields in 3d (displayed as QuickTime movies)

Directory Listing for J. Belcher

Starting with a google search for glut physics:
http://nehe.gamedev.net/
	
VM.GAMES
We are an independent game development team from France, check out our website! You can find a demo of our first OpenGL game "lab project" and can also download our 3d engine "VGL" based on OpenGL. 

check it out : VGL 3d engine
http://noether.vassar.edu/~myers/fortran/ Eric Myers / Vassar College
Introduction

Computer programming is an important skill for experimental, observational and theoretical scientific work, and Fortran is (still!) one of the most important computer languages used for such work. Similarly, the Unix operating system is now in use on most scientific computer systems, ranging from PC's and workstations to supercomputers and computer clusters. The purpose of this course is to introduce students to programming in Fortran 77, while at the same time familiarizing them with the Unix operating system and many of the programming tools available in the Unix environment, including the emacs editor and the Revision Control System (RCS).

The only real way to learn to program is by writing programs, so the course is structured around a set of simple exercises. Each exercise requires that you learn one or more new programming concepts in order to complete that exercise. Once your program works correctly, you can move on to the next exercise.


Why Fortran 77? Why not C or C++?

    The latest version of Fortran is Fortran 90, so why does this course use Fortran 77? 

First of all, Fortran 90 includes Fortran 77 as a subset, so by learning Fortran 77 you are actually learning the basics of Fortran 90 too. But Fortran 90 also includes extra language elements for manipulating arrays and matrices, and new control structures. These are useful, especially for problems which have to be run on the latest supercomputers, but they can also be confusing for beginners. It is better to start with simpler ideas and work your way up. So you should start by learning Fortran 77, and then later learn the more powerful and specialized constructs of Fortran 90.

A second reason for using Fortran 77 is that Fortran 77 compilers are available everywhere, on all kinds of computers. Many Unix computers come with the f77 compiler included for free, or you can get the GNU Fortran compiler (g77) from the Net for free. In contrast, Fortran 90 compilers are not as widely available right now, and they generally cost extra. (Of course if all you have is a Fortran 90 compiler, it should work fine on Fortran 77 code.)

    Some people say it's better to learn C or C++. Why not learn those instead of Fortran? 

First of all, Fortran is the easier language to learn, and it is specially designed for scientific and engineering applications. That means you can start immediately to write programs that do useful calculations for your research or classwork. Fortran has continued to be a language used many major scientific computing projects.

C and C++ are certainly both useful languages to know too, but they are a bit more complex and thus harder to learn. C is stricter about grammar and syntax than Fortran. A good way to learn C++ is to first learn C; And for scientists, the best way to learn C is usually to learn Fortran first, as long as you also learn proper style and develop good habits designed to carry over to C. The grammar and style suggestions given in this course are all designed to develop proper programming methods and good habits, so that you can then go on to learn C, and perhaps C++, or any other programming language you may need. 
http://noether.vassar.edu/~myers/fortran/Exercises.html Fortran and Unix for Physics and Astronomy
Lesson 18 -  Computer Graphics with OpenGL and GLUT
    Using the OpenGL graphics library, with the GL Utilities Toolkit (GLUT)
        * SGI OpenGL home page
        * SGI OpenGL/GLUT examples
        * GLUT source code (tarball)
        * GLUT examples source code (tarball)
        * make.tar.gz for SGI
        * glut-bin.tar.gz - pre-compiled GLUT for SGI IRIX/64 
http://www.sgi.com/products/software/opengl/examples/index.html
Examples

Redbook
Examples from the "OpenGL Programming Guide".

Samples
Collection of simple programs helpful for testing an OpenGL implementation. Many have keyboard options (see source for details).

More Samples
More samples collected from a variety of places.

GLUT Samples
Samples that are included with the GLUT distribution.

Win32 tutorials
Windows 95/NT specific programs intended to be a tutorial for those getting started with OpenGL and Win32. 
http://www.sgi.com/products/software/opengl/faq.html
	Frequently Asked Questions

    * What is an API and why is it important?
    * What is the OpenGL® API?
    * What are the benefits of OpenGL for hardware and software developers?
    * I'm a hardware developer and would like to create an OpenGL implementation for my hardware. Is there code available to start? Or do I need to begin from the OpenGL specification?
    * Since the S.I. is available under an open source license, are thereany other licensing requirements for hardware developers?
    * I'm a software developer and just want to use the OpenGL API. So I need to have a license?
    * How does a university or research institution acquire access to OpenGL source code?
    * What is SGI's role in the future of OpenGL API?
    * Where can I get the OpenGL specification?
    * Does Windows support OpenGL API?
    * Does the Mac® OS support OpenGL API?
    * Does Linux support the OpenGL API?
    * What other hardware supports the OpenGL API
    * What are the conformance tests?
    * What benchmarks exist for OpenGL?
    * What is the OpenGL ARB
    * How is the OpenGL API governed? Who decides what changes can be made?
    * How does the OpenGL ARB operate logistically? When does the ARB have meetings?
    * How do additional members join the OpenGL ARB?
    * How do I get more information about the OpenGL ARB?
    * If I'm not a member of the ARB, am I shut out of the decision making process?
    * Are ARB meetings open to observers?

http://www.opengl.org/
OpenGL.org Website

The Web site is the vendor-independent site for daily updates, technical documentation, white papers, demos, and OpenGL® news. This site is sponsored by SGI and runs on an SGI® Origin® 200 server. 
Al's Programming Resource
Win32, OpenGL and ODE Physics
http://members.net-tech.com.au/alaneb/opengl_links.html
First Link:
CS 559  Computer Graphics - U. Wisconsin
GL Survival Kit for CS559
Michael L. Gleicher
Last modified: 16:50 Oct 24, 2000
This document will try to tell you some of the basic things you need to know to get started with OpenGL under Windows. This is not meant to replace the GL book!
http://members.net-tech.com.au/alaneb/physics_links.html
http://homepage.ntlworld.com/richard.chaney/index.html
Richard Chaney's Web Page

This page contains some of the programming projects I have created in my spare time. Any source code on this page can be freely used and modified without licensing constraints. The code is here for educational reasons so people might learn something useful. There is some documentation with the code, but to explain it all would take too much effort and I'm not going to bother. However, you might still gain useful ideas by reading the source code.

Lightwave Plugins

Here are a few useful plugins I have written for the Lightwave 7 Modeller, currenly my favourite 3D modeller.
http://ode.org/
ODE = Open Dynamics Engine - Russell Smith  c/w 2002
    ODE is an open source, high performance library for simulating rigid body dynamics. It is fully featured, stable, mature and platform independent with an easy to use C/C++ API. It has advanced joint types and integrated collision detection with friction. ODE is useful for simulating vehicles, objects in virtual reality environments and virtual creatures. It is currently used in many computer games, 3D authoring tools and simulation tools.
http://ode.org/slides/igc02/index.html
ODE Presentation for IGC'02 - 2 November 2002
http://panoramix.ift.uni.wroc.pl/~maq/simulationscd/
Physics Simulations CD-ROM by Maciej Matyka
Maciej Matyka
ul. Krasickiego 3/2
51-144 Wroclaw
Poland
http://panoramix.ift.uni.wroc.pl/~maq/eng/simple.php
http://panoramix.ift.uni.wroc.pl/~maq/eng/newton.php Particle Dynamics Engine
http://www.linuxfocus.org/English/January1998/article17.html
 This article describes the first steps into any OpenGL application and tells us how to render simple polygons in 2D. 
his is the first article in a series on OpenGL, an industry standard for 2D/3D graphics (see also What is OpenGL). We will assume that the reader is familiar with his/hers C development platform, and has some knowledge of the GLUT library (otherwise just follow the "GLUT programming" series of articles in this magazine). Under Linux we recommend the usage of the Mesa-library which is a wonderful freeware implementation of OpenGL. Now there is even hardware support for Mesa (see 3Dfx graphics card).
http://www.csc.ncsu.edu/faculty/healey/csc562/assn_2/assn_2.html
Introduction

In Assignment #2 you will implement a basic physics engine and associated interface operations. The interface operations will allow the player to select a direction and force with which to hit the ball. The physics engine will use these inputs, together with the layout of the minigolf hole, to animate the ball in a realistic manner.
Physics Engine

In our simple environment, hitting the ball defines an initial ball direction D and ball velocity v. For a discrete unit of time, the ball moves in direction D a distance proportional to v. We use an approximation of rolling friction to slow the ball: each time the ball is moved, we decrease v by a constant rolling friction value rf. When v falls to zero, the ball stops.

Because tiles are not always flat, gravity may also affect the ball's trajectory. A sloped tile has a normalized rolling direction R that defines how objects roll down its surface. When the ball moves over a sloped tile, it is pulled in direction R by an amount proportional to R's downward angle (i.e., R's Y-component). This pull will modify both D and v, since the ball will be travelling in a new direction, and with a new velocity.
As the ball moves, it will interact with different parts of the minigolf hole. For example:

   1. The ball can leave the current tile and enter a new tile.
   2. The ball can hit the edge of a tile.
   3. The ball can fall into the cup. 

Each of these situations must produce appropriate modifications to D and v. To simplify processing, you should keep track of the tile t that contains the ball. This will limit intersection testing to t's edges. It will also limit checking to see if the ball has fallen into the cup (this can only happen if t also contains the cup).
http://www.spacesimulator.net/test_newsite/index.php?page=tutorials
WARNING!!!! THIS IS ONLY A TEST WEBSITE!!!!! TO REACH THE ORIGINAL WEBSITE PLEASE GO TO WWW.SPACESIMULATOR.NET
/* SPACE SIMULATORS, 3D ENGINE PROGRAMMING TUTORIALS AND RESOURCES FOR GAME DEVELOPERS */

In these lessons I will explain how to construct a 3d engine in C using OpenGL. I assume that you already have a basic knowledge of C. If not, I advise you to study it before reading these tutorials (there are tons of online tutorials for C). The engine that we are going to build will be structured to account for open environments, include features suitable for space simulators (after all, we are at spacesimulator.net) and will take into account that in the future will be added sections to manage landscapes and more advanced tutorials in which I will reveal some solutions that I have implemented in my own 3D engine. However, I will proceed gradually from the most elementary concepts to the more complex ones.
http://www.spacesimulator.net/
I have just inserted a test page for the new website, you can find it at: www.spacesimulator.net/test_newsite/index.php
It is programmed in PHP and HTML. Many links are not working yet but the layout is more or less the final version. I would like to know your opinion.
http://gd.tuwien.ac.at/graphics/GLUT/glut3.html
About GLUT . . .

GLUT (pronounced like the glut in gluttony) is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL programs. It implements a simple windowing application programming interface (API) for OpenGL. GLUT makes it considerably easier to learn about and explore OpenGL programming. GLUT provides a portable API so you can write a single OpenGL program that works on both Win32 PCs and X11 workstations.

GLUT is designed for constructing small to medium sized OpenGL programs. While GLUT is well-suited to learning OpenGL and developing simple OpenGL applications, GLUT is not a full-featured toolkit so large applications requiring sophisticated user interfaces are better off using native window system toolkits like Motif. GLUT is simple, easy, and small. My intent is to keep GLUT that way.

The GLUT library supports the following functionality:

    * Multiple windows for OpenGL rendering.
    * Callback driven event processing.
    * An `idle' routine and timers.
    * Utility routines to generate various solid and wire frame objects.
    * Support for bitmap and stroke fonts.
    * Miscellaneous window management functions. 

The GLUT library has both C, C++ (same as C), FORTRAN, and Ada programming bindings. The GLUT source code distribution is portable to nearly all OpenGL implementations for the X Window System and Windows 95 and NT. GLUT also works well with Brian Paul's Mesa, a freely available implementation of the OpenGL API.

Because GLUT is window system independent (as much as possible), GLUT can be implemented for window systems other than X. Implementations of GLUT for OS/2, NT & Windows 95, and the Mac have ben implemented, but only the Win32 and X11 versions are part of the official GLUT source code distrbution.

The current version of the GLUT API is 3. The current source code distribution is GLUT 3.7.