About PhysGL

Illustrations and animations made with computer graphics are a compelling medium. Just look at the movie and video game industries. Where would they be without "nice looking" computer graphics?

Graphics can also be a compelling platform in education for the same reasons: they look "cool," can be used to capture students' interest, and can be used as a unique medium to illustrate lessons. Fields easily adaptable to computer graphics are beginning programming, physics, math, and art.

The creators of PhysGL have always had an interest in using computer graphics in education, but creating great looking graphics has always been prohibitive from a software standpoint. We are aware of VPython, Povray, OpenGL, Blender, and Java3D. We find Python a wonderful language, but too wordy and too object-based for the beginner. Povray's scripting langauge is awkward, and Java3D/OpenGL have too much overhead. We cannot figure out even "step 1" with Blender.

We were quite intrigued with the emergence of WebGL, which runs OpenGL in the browser. Everyone has a browser and knows how to use it, so there's a huge barrier removed (no software or frameworks to install). Next, we found out about THREE.js, which is an easy-to-use Javascript library for accessing WebGL. So we put the two together: a ready-built scripting language (Javascript) + a neat 3D graphics library (THREE.js), which at last gave us a 3D graphics platform for the beginner. Welcome to PhysGL.

PhysGL (short for "physics graphics language") is an open-source scripting language that exists in a browser-based integrated development environment. (Physics isn't involved, it's just that PhysGL was first used to illustrate lessons in basic physics.) The primary use of PhysGL is to give the programmer the easiest possible route to creating 3D computer-graphics drawings and animations, using line-by-line programming. The language is modeled after Lua, and is very plain with no particular feature or style. Its existence fills a perceived void for the novice programmer, which is a straightforward programming tool for producing 3D graphics and animation.

Technology

We are grateful for THREE.js, Codemirror, Google Charts, MathJax, Codeigniter, and jQuery.

Contact

Email tbensky@calpoly.edu or mmoelter@calpoly.edu with any questions.