Exploratories   Repository Applets
     
1D Fast Fourier Transform
The Fourier Transform is a powerful tool allowing us to move back and forth between the spatial and frequency domains. Many of our explanations of key aspects of signal processing rely on an understanding of how and why a certain operation is performed in one domain or another. This applet helps students feel comfortable with these explanations, helping to build a strong intuitive grasp of how signals in one domain correspond to signals in the other.

Additive Color Mixing
This applet allows the user to paint on a canvas that mixes colors additively. Various parameters can be manipulated and some preset images can be loaded and also painted on.

Bezier Splines
This applet introduces the user to the usage and mathematics of spline curves and includes a tutorial, exercises, and an interactive play space.

Combined Color Mixing
This applet helps the user combine concepts in additive and subtractive color mixing through a scenario that includes lights, paints and filters. Users can directly observe how various colored lights, paints, and filters contribute additively as well as subtractively to produce a single color to be viewed by the applet's virtual eye.

Convolution
This applet allows students to understand the process of convolution by visually manipulating two functions through the process. It is useful in understanding both how convolution works and also what the effects are on specific signals being convolved together.

Coordinate Transformations
The Coordinate System Transformations applet teaches several concepts. The first is how a transformation applied to a coordinate system affects the axes of that coordinate system. Second, this applet shows how looking at only a very small portion of any curve produces a straight line (linear approximation) of that curve. Finally, this applet shows how a transformation of the coordinate system affects any objects within that coordinate system.

Cylindrical Texture Mapping
One of three applets written to illustrate different types of texture mapping. The Cylindrical Texture Mapping applet shows the graphical ramifications of the mathematics used to wrap a flat image around a cylindrical model. The applet allows the user to designate a point on the cylinder and displays the corresponding sample point on the image, which is represented on a unit plane. Both numerical and graphical representations of each point are present in hopes that the user will thereby gain a more intuitive understanding of the correlation between them.

Discrete Convolution
This applet demonstrates how the idea of convolution -- which we have explored in the continuous domain -- can also be applied in the discrete domain that the computer operates in. The applet is identical in functionality to the 1D Convolution applet except that students adjust sample values rather than drawing continuous functions.

Dot Product
The Dot Product applet shows how the scalar dot product value of two vectors depends on both the vectors' lengths and the angle between them. It also demonstrates the dot product's property of rotational invariance. Editable equations are displayed, as are concept explanations and help text. The dot product is an essential building block in linear algebra and for doing almost any type of transformation or rendering in computer graphics.

Filter Shape
This applet looks at how the shape of the two-dimensional cross-section of a filter affects the results generated when it is used to scale an image. Users are able to sketch and resize their own filters or use previously generated filters and see how each filter affects the scaling of a subregion of an image.

Impulse Response
This applet demonstrates how a filter "smears" energy from an impulse signal in a neighborhood around the impulse. Students place an impulse, drag a filter over it, and observe the results.

Introduction to Sampling
Pixels are samples at specific points of continuous mathematical functions. To demonstrate this, the Introduction to Sampling Applet uses an image on screen to represent a continuous function. In additon to introducing the concept of sampling, this applet also demonstrates and helps develop intuition about scanlines which we use throughout the later applets.

LSI Convolution
Two key properties that we rely on in signal processing are "linearity" and "spatial invariance". Students can examine these properties by placing and scaling two impulse functions and then dragging a filter function over them (just as in the Impulse Response applet).

Metamers
This applet lets users experiment with metamers: different spectral distributions that are perceived as identical colors.

Normal Scaling 2D
The 2D Surface Normals applet shows students how surface normals are affected by non-proportional (non-uniform) scaling. Without this knowledge, the shading of non-uniformly scaled objects is often calculated incorrectly.

Nyquist Limit
This applet introduces the nyquist limit and the role it plays in signal sampling and reconstruction. The student discovers the basics of aliasing and is able to adjust a signal's frequency and the frequency at which it is sampled to build an intuitive understanding of all these concepts.

Parallel Camera Parameters
The Parallel Camera Parameters applet aims to familiarize students with the various parameter associated with a synthetic, parallel-projection camera. Users can adjust any of the following parameters: field-of-view width, field-of-view height, near clipping plane distance, far clipping plane distance, up vector, and look vector. The viewing frustum is visualized in a window, allowing students to understand how the parameters relate to the shape of the viewing frustum.

Parallel Camera Transformation
The Parallel Camera Transformation applet aims to familiarize students with the transformations necessary for rendering a scene using a particular synthetic camera and how the camera's parameters affect the transformed scene geometry. The effects of the transformation are immediately visible as they are applied to geometry in the main viewport when the user interpolates through the camera transformation. This applet is intended to build on the Parallel Camera Parameters applet, adding the abillity to set the camera's position in space as well as the ability to interpolate through the camera transformation.

Perspective Camera Parameters
The Perspective Camera Parameters applet aims to familiarize students with the various parameter associated with a synthetic, perspective-projection camera. Users can adjust any of the following parameters: field-of-view width, field-of-view height, near clipping plane distance, far clipping plane distance, up vector, and look vector. The viewing frustum is visualized in a window, allowing students to understand how the parameters relate to the shape of the viewing frustum.

Perspective Camera Transformation
The Perspective Camera Transformation applet aims to familiarize students with the transformations necessary for rendering a scene using a particular synthetic camera and how the camera's parameters affect the transformed scene geometry. The effects of the transformation are immediately visible as they are applied to geometry in the main viewport when the user interpolates through the camera transformation. This applet is intended to build on the Perspective Camera Parameters applet, adding the abillity to set the camera's position in space as well as the ability to interpolate through the camera transformation.

Quantization
This applet demonstrates quantization by having students draw a "continuous" function and then quantize it, showing the quantities version as well as a graph of the error from the quantization process.

Radiosity Form Factor
This applet shows how the form factor between two patches varies in magnitude depending on the relative geometry of the patches. The cosine relationships based on relative patch rotation and the 1/r^2 relationship based on distance are plotted on a graph as the geometry is manipulated.

Radiosity Shooting vs Gathering
This applet shows students the graphic difference between two radiosity algorithms: shooting and gathering. The algorithms are animated for each iteration of the algorithms and the resulting visualization of a discretized scene and of its form factor matrix can be viewed as the animation progresses.

Reflection
This applet explains the interaction between a surface's reflectance function and the spectral distribution of light illuminating it.

Reflection 2D
The 2D Reflection applet is an interactive illustration letting users reposition a light source and automatically recalculate the reflection vector. The standard equation is used with N, L and R for, respectively, the surface normal, normalized direction to a light source, and normalized reflection of L off of a surface. All equations are automatically updated with a user's changes to the illustration. A series of tips/concept explanations are available.This applet helps enhance complete understanding of essential task.

RGB Insufficiency
Given a spectral distribution and material reflectance, this applet shows how the RGB values of the product spectrum can differ depending on how these are calculated.

Scenegraph Builder
This applet allows users to construct their own scene graph and observe how each transformation affects all others below it on the scene graph.

Single Cell Response
Given a frequency response curve, this applet examines the frequency response and total response generated from an arbitrary, user-specified input signal.

Special Function Convolution
Many special functions are convolved with signals in graphics to achieve specific effects. Students can experiment with some of these signals and manipulate their properties to create both good and bad filters. Moreover, they can observe the tradeoffs between the best filters and those which are commonly used by practitioners in the field for performance reasons.

Spherical Texture Mapping
One of three applets written to illustrate different types of texture mapping. The Spherical Texture Mapping applet uses Java3D to show the graphical ramifications of the mathematics used to wrap a flat image around a sphere model. The applet allows the user to designate a point on the sphere and displays the corresponding point on the image, which is represented on a unit plane. Both numerical and graphical representations of each point are present in hopes that the user will thereby gain a more intuitive understanding of the correlation between them.

Subtractive Color Mixing
This applet allows the user to paint on a canvas that mixes colors subtractively. Various parameters can be manipulated and some preset images can be loaded and also painted on.

Three Step Scaling
This applet shows how an image can be scaled in 2 dimensions in three steps. It provides magnified views of individual pixels as well as a schematic illustration of how individual pixels contribute to a weighted average used to generate the color value of a single pixel in the scaled image.

Tiled Planar Texture Mapping
One of three applets written to illustrate different types of texture mapping. The Tiled Planar Texture Mapping applet uses Java3D to show the graphical ramifications of the mathematics used to tile an image on to a 3D plane. The applet allows the user to designate a point on the plane and displays the corresponding point on the image, which is represented on a unit plane. Both numerical and graphical representations of each point are present in hopes that the user will thereby gain a more intuitive understanding of the correlation between them.

Transformation Game
This applet introduces the user to the usage and mathematics of two-dimensional transformations using a fun, interactive play space.

Transformation Hierarchy
This applet shows how changing the transformations of a scene graph affects the final result and how each transformation affects the space in which child nodes are transformed.

Transform Propagation
This applet shows how changing the transformation matrices change when a scene graph node is changed.

Triple Cell Response
Given three different response curves, this applet examines the resulting frequency responses and total responses given an arbitrary, user-specified input signal.

Two Box Convolution
This simple case of convolution clearly illustrates the mechanics of convolution. Two box functions are displayed on a signal graph and their area of overlap (which, for the box function, corresponds to the value of the convolution at a particular point) is shaded. Students can drag one box of the other, and see how the area of overlap changes and corresponds to the value of the convolution at that point.

Two Materials
This applet examines what happens when two different surfaces are illuminated by a single light.