Vector fields are a great way to visualize what is happening in a system. This is my early attempt at visualizing them.

As always, I like to start with the basics.

Experimenting with R^{3} vector fields and different arrow types.

Adding support for visualizing vectors on/with curves.

Visualizing NaN as red Xs.

Implemented an interesting feature that allows you to click on the grid to integrate the field at any point. A curve results.

Implemented a new magnitude visualization technique.

Added a scalar visualization mode with various ways of contrasting positive and negative quantities.

Implemented the ability to draw an arbitrary curve on the field to calculate the curve integral. The complex result is printed in the console window.

Experimenting with different fields. Here, the color is a function of the arrow angle.

Added an informational box that displays quantities of interest relative to the clicked point.

Experimenting with visualizing vectors on arbitrary R^{3} models.

Implemented a line-based arrow mode. I believe I implemented this in a geometry shader, which were quite new at the time. I eventually switched over to instanced rendering instead.

Ported the application to Direct3D and implemented a cartoon shader mode.

The vector field can vary with time and is calculated on the GPU.