Wave Visualizer


Description

This is my final project for CSC 471 Introduction to Computer Graphics. For this project I wanted to create some sort of physics visualization tool, to combine my interests in physics and computer science. I decided to make a tool that shows simple solutions to the wave equation. I settled on this idea beacause visualizing waves with their respective equations is both visually pleasing and also educational. Having a good geometric intuition can make working with equations much easier, and this tool provides that link.

Waves from multiple sources interfering constructively and destructively (preset #8):

superposition!

How to Use

Features

Equation

The equation in the top left is a billboard with a textue that is an image of the equation with a transparent background. I wrote the equations in LaTeX, and then converted them to images with Roger's Online Equation Editor. The billboard also isn't passed any information about the view matrix, making it somewhat of a Heads-up Display. In the vertex shader its final position is simply: gl_Position = vec4(vertPos,1);

Mesh

The mesh is a 200x200 grid similar to the mesh used for the terrain landscape labs. All the points are moved closer together to make the wave seem more continuous. The height value of the mesh is then just determined by which equatinon is selected. I left the mesh as a wireframe because I felt it provided more information about the wave while not taking away much of what makes it look nice. It is easier to see exactly how the waves move in time, and since this was an educational tool, I felt it appropriate.

Video

Here is a quick video of me flipping through all the presets of the program. The ball in the middle is shown to see how the space is being distorted.

Resources