2009 University of Toronto ShowCaSe Fair

Purpose
Description
Platform
Specialized Features

  1. Normalized Iterative Palette: C. Black
  2. Julia Set: R. Ng
  3. Mandelbrot Music: S. Tsuji
  4. Orbits: M. Weldon
Development Schedule
  1. Thursday February 12
  2. Tuesday February 10
  3. Sunday February 8
  4. Wednesday February 4
  5. Monday February 2
  6. Friday December 26

Purpose
The purpose of this group effort is at least four-fold. The primary objective is to acquire Applet development skills necessary for the final Exam in the course in June. Secondly, the Mandelbrot Set provides a perfect opportunity to explore fixed point mathematics techniques. Thirdly, group programming projects require their own special skills that we have not had much exposure to. Last but not least, entering the ShowCaSe Fair provides a opportunity to get some university-level exposure and feedback on your skill development.

Description
It has been agreed that we will adapt our final ICS3M assignment that rendered and manipulated the Mandelbrot Set, to concepts discussed and developed in ICS4M, with the intent of submitting the projects to the University of Toronto's Showcase Fair.

Platform

  1. A Java Application Framework with added graphic support served as the platform for our ICS3M Mandelbrot project. Since the intent of this year's adaptation is to deploy the project over the web, it is necessary to develop the project as an Applet.
  2. The goal is to permit users to explore the set in real time. To overcome the burden of intense floating point calculations, it is necessary to base the algorithm on fixed point mathematics.

Specialized Features Based on a common Applet platform supported by fixed point mathematics routines, it has been agreed that each student will provide a unique interactive feature to enhance the user's manipulative experience. It is agreed that a check box be available to toggle the feature on or off.

Normalized Iterative Count Palette: C. Black
Links: Normalized Iteration Count Algorithm. PDF: Coloring Dynamical Systems in the Complex Plane (pp. 3-4)

Julia Set: R. Ng
2007 ICS3M Final Exam, Rothman's Final Exam

Mandelbrot Music: S. Tsuji
Driver, Layout, Coordinator

Orbits: M. Weldon
Mandelbrot Orbits Applet


Development Schedule
The submission deadline can be met if we stick to an agreed upon schedule.

Thursday February 12
Event Handling and Listeners. Source Code.

Tuesday February 10
Applet investigations. Source Code.

Student
Confirmed
Applet
Example
 
Chris Black
Rothman Ng
Severin Tsuji
Matt Weldon

Sunday February 8 - Mandelbrot
Create and mount your Mandelbrot Applet that uses fixed point mathematics routines for enhanced performance. Your code could start with this code shell.

Student
Confirmed
Applet
Example
 
Chris Black
Rothman Ng
Severin Tsuji
Matt Weldon

Wednesday February 4
Create and mount a Java Applet by the start of Friday's class that displays examples of fixed point fractions, division, and negative number using your FP class.

Student
Confirmed
Applet
Example
 
Chris Black
Rothman Ng
Severin Tsuji
Matt Weldon

Monday February 2
Create and mount a Java Applet by the start of Wednesday's class that displays examples of addition and multiplication of integers using your FP class.

Student
Confirmed
Applet
Example
 
Chris Black
Rothman Ng
Severin Tsuji
Matt Weldon

Friday December 26
As of December 26, 2008 our intention remains to submit entries to the University of Toronto's 2009 ShowCaSe Event. The Registration and Project deadline is February 15, 2009. One project we had discussed was porting last year's Fractal investigations to Google's Android Platform and adding in Fixed Point Math calls to speed up generation for cell phone technology. The goal being smooth, real-time imaging.

Attempt 1. After finding and exploring some good Theory sites (Jones on Reciprocal Multiplication was terrific), coding was fairly straightforward. With a good understanding of the principles, I found two FP libraries (Beartronics and JMFP) that looked promising. The flash animation to the right is my first attempt incorporating some of the Beartronics library, using Java's 32-bit ints (16.16). The captures to the right were taken on my desktop running at 2.4GHz; 1000 max iterations, 320x320, Zoom 50%.

 

 

 

 

Attempt 2
In this second live capture, the ratio of mantissa:fractional bits was decreased from Q(16:16) to Q(11:21) to allow for deeper zooming. Any fewer mantissa bits jeopardizes calculations involving screen coordinates [2.4GHz; 300 max iterations; 240x240, 300 frames, Zoom:31/32 (98.6%)]. Further code optimization and double buffering were added.