[Edu-sig] VPython with Ubuntu 9.04

kirby urner kirby.urner at gmail.com
Sun Sep 13 18:49:18 CEST 2009


On Sun, Sep 13, 2009 at 6:02 AM, Andre Roberge <andre.roberge at gmail.com> wrote:
> On Sun, Sep 13, 2009 at 1:34 AM, kirby urner <kirby.urner at gmail.com> wrote:
>
> <HUGE SNIP>
>>
>> Clearly I'm not writing enough to replace the INSTALL.txt here, not my
>> intention.  This is more some encouragement to developers wanting to
>> work on a VPython curriculum, still probably Python's best answer to
>> Ruby's quasi-native access to OpenGL.
>>
>
> How does "Ruby's quasi-native access to OpenGL" compare with what one
> gets using pyglet? (http://www.pyglet.org/)
>
> André
>

You know, I'm having trouble reconstructing how I came to the view
that Ruby has quasi-native access to OpenGL.  I think it was a few
OSCONs back when I was intent on immersing myself in Ruby, went to a
couple tutorials, the talk by Matz.  My recollection is sitting there
in an interactive Ruby shell, following some tutorial, and getting
some colorful shapely things happening on my screen pretty early.  But
now when I go back, sifting through blogs and tutorials, I'm at a
loss.  I see Yoshi has the opengl extension, and that people are
building on that.  I watched this YouTube:


If you look at the Vpython API, it's very high level.  Arthur felt
drawn to it kicking and screaming for his Pygeo, still one of the most
impressive interactive geometry programs ever written, and in Python
no less (with Vpython).  He used to be my connection to the Vpython
crowd but since then I've been switch boarding through Lincoln,
Nebraska as Dr. Bob Fuller emeritus is a contact in common.

Thanks to VPython, my students are able to focus on geometry, not
computer science.  Our focus is a simple arrangement of polyhedra, a
kind of zen garden, a namespace.  We want them thinking about rhombic
dodecahedra, not how to create a context window or rotation matrix
although the latter will come up, and we have Numpy at the ready if we
need it.  However, Vpython allows the interactive rotation of any
graphical object you create.

In stickworks.py, I provide simple Vector and Edge classes.  The
former do what Vectors are supposed to e.g. + - and * / with scalars
(you can upgrade to Quaternion to multiply two vectors, then drop back
into Gibbs-Heaviside, but that's just for play).  So we use operator
overloading, which isn't a mystery as we've used these __ribs__
already when introduction Rational, Modulo, Polynomial (ala Litvins)
and several other simple "math object" classes (right after Dog, Cat,
Monkey, Human -- all as subclasses of Mammal type).

I'm not aware of any other coupling between a general purpose coding
language with a bright future, and a simple OpenGL engine that doesn't
require huge amounts of study to use.  Pyglet is extremely low level
in comparison, more like Pygame (SDL) in that sense.  If you've
already turned yourself into a C/C++ programmer, these toolkits feel
liberating.  However, my students are more likely coming from a ray
tracing language like POV-Ray's, or from VRML/x3D.  They want to give
XYZ coordinates of something, say what shape it is (cone, tetrahedron,
cylinder, blob) and be done with it -- just add texture (optional) and
fly.

Kirby


More information about the Edu-sig mailing list