Written by: Josh HolderSeptember 5, 2019 3:30-5PM
Edited by:GFSeptember 5, 2019 3:30-5PM
Updated 7sep19
Prof. Francis (aka GF), to get us all started on this task, described it as a A Journey Python/OpenGL to Javascript/WebGL.
JH (aka Josh Helder) adds that sample Blurbs of other IGL projects can be found in the shared IGL BOX folder. And a math calendar can be found at the top of the website with dates for meetings and deadlines.
But, since a journey should have a destination, let's say the ours will the production of Real-time Interactive Computer Animations (RTICA) to illustrate mathematics. Any mathematice, but with close attention to the method of programming them. Historically, the acronym was coined before web browsers, and the the C in RTICA stood for the CAVE, which was a 3D "automatic virtual environment" where real-time interaction were not as easily achieved as they are today. The CAVE was a worthy goal for undergraduate programming projects for 20 years, and the final language Python/OpenGl was the perfect medium for achieving this goal. Python/OpenGL is still the golden standard for RTICAs. But not forever.
Today, the browser is the most powerful piece of software any hardware can support. And since HTML5 (the language websites are written in) added thee new CANVAS graphics feature, it seems logical that writing new mathematical RTICAs, and preserving old ones onto a website requires translation into Javascript (JS) and WebGL (a total revision of OpenGL suitable for GPUs and the WWW.)
We ended this introduction with a brief discussion of what an RTICA could be in 2D and more interestingly, in 3D. And we tried to classify the types of RTICAs by order of what was, in effect, both quantity of mathematical information and difficulty of programming. In 2D at the "low" end stood the trivial case, a static Webpage (like this one), and at the other end, Daniel Carmody (DC) suggested one that watches the zeros of a time-dependent polynomial $y=f(x,t)$. To which GF suggested the unexpected example of \[ f(x,t)=x^{2t} \], for which everyone could only guess the shape for the case $t=0$ and $t=1$ (which everybody remembers from high school). In between were moving geometrical shapes under user control.
Things get more interesting in 3D. It was observed that if we think of the third dimension as time, then DC already mentioned that above. Every animation is something that lives in one dimension higher than what we see in the screen. To be properly 3 dimensional, rotating it about any axis has to make sense. But what sense is there in rotating a homotopy through about the axis $x=t$ ?
[GF: Let me just write here what I had in mind. In any dimension it is fairly easy to move the objects rigidly on the screen, either in a scripted (automatic) or inter-active manner. Obviously the latter is harder than the former, and as the dimension goes up, it's harder to "see" what is going on. Our own world, 3D, is the easiest to understand. 4D provides a challenge you need computer graphics to illustrate.
More interesting, from out stand viewpoint, is the manner of the animation itself. Like a flipbook, or a film-movie (!) you can take a sequence of still images of a moving or morphing object, and show them fast enough to animate. An animated GIF is a simple example of this. More informative, and harder, is to make a video, such as an .mp4 or .mov. But to make such animation interactive is really quite hard, even to imagine. We stop at the RTICA even though the list goes further (sound, haptic devices, etc).
The student and visitor's side begins with Advice, a miscellaneous collection of instructions for students in particular classes, mostly in the past. Some of the content is still useful today, but not all. The Infosheet you have already met. The essay on keeping a Journal might be useful if you are learning how to keep a permanent notebook on a subject you're learning. The Lesson on learning Python with SymPyLive will concern us more in connection to an exercise GF proposed for the class, below. But the most important for our purposes is the miscellaneous collection videos prepared for students in GF's in-class and on-line math courses. We will a collection of 3 examples, all illustrating both a theorem in plane geometry and the operation of the geometrical drawing tool that produces the illustration.
(1)centroidKSEGpaint.mp4 which uses Ilya Baran's KSEG free geometrical construction software. Baran couldn't afford to buy the contemporary package, so he built a simpler version of his own and gave it away. Wendy Hubbard produced this video in the sense that her assistance in finding free software for math courses, and preparing tutorials for them, led to this lesson.
(2)gex_intro.mp4 GF used KSEG for MA402 "Non-Euclidean Geometry" course until something better, more powerful and versatile became available. Michael Hvidsten (PhD Illinois) wrote a textbook we used for many years, and a free geometry construction package called Geometry Explorer (GEX). This video was made by Brian Fisher, who took the course and became GF's Grader, later TA .
(3)GeoGebra_intro.mp4 Shiya Liu worked with GF exploring the possibilities of casting MA402 as a Coursera MOOC. She introduces the incredibly versatile free package, GeoGebra whose best description is "A Pocket Mathematica". Our Coursera project failed for three reasons. The third collaborator, Prof. Jayadev Athreya, who incidentally invented the IGL, left Illinois for U Washington, Seattle. Secondly, MOOCs depend on barely more sophisticated homework and testing tools than multiple choice questions. Geometry requires students to prove theorem. And Coursera tools could not be persuaded to manage grading that. Finally, Coursera was a very proprietary system. It neither had a geometry construction tool, nor did it permit access of by an independent one, like GeoGebra.
Exercise 1 Video: from mp4 animated GIF
Here GF suggested that a possbible practice project for our IGL effort could be to produce
an well illustrated lesson, in the style of these mp4s, on how to use a graphics tools for
mathematics classes, seminars, and IGL project presentations. E.g. Making an mp4 from an
RTICA, and an animated GIF abstract for its webpage.
Exercise 2 SymPy: integrate the graphics module
Exercise 3 Interactive design of an RTICA
new: Restoration $\gt$ jazzVenus
First play with it to try and figure out the story being illustrated.
If you need a hint, see
new: Restoration $\gt$ Venus Abstract
There's more in this new: Restoration $\gt$ Etruscan Venus page.
Noting that we have to set up Piazza forum soon, and Daniel Carmody mentioning
that three.js as a possible Javascript library for webGL. Our next meetings will
be announced soon.
Indeed: Meeting this week are Wednesday 11sep19 3pm at TBA and Thursday 12sep19 3:30pm to 5 at TBA.
All of us knows how to program in Python, the most popular current computer language.
So a brief look at the online Python learning tool
SymPy leads to another
idea for a mathviz project. For this (old) version of SymPY there was no graphics component.
Rumor has it that now there now the SympPy
Real-time interactive computer animations are hard to design. The user interface is often
constructed by programmers of the tool itself, and enables chiefly clones of themselves
to use their product. But to appreciate this, you need to compare two example RTICAs,
each illustrating a mathematical phenomenon interactively. First click on
INFO587:Dissertation Research of my graduate student in the Informatics Department.
Note the animated GIF in his portal page. The, try to figure out how to interact with
his illiJoeRTICA. Compare this to a current version of the first RTICA
Donna Cox and GF used to make a video
video
which was shown at the a SIGGRAPH conference. Conclusion
We ended the meeting with questions, Professor Francis telling us to figure out
the story what the jazzVenus does. Find her on our portal page by choosing