Written by: Josh Holder

September 5, 2019 3:30-5PM

Edited by:GF

September 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

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

** Exercise 3 ** Interactive design of an RTICA

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.

`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.**