Loading...

This might take a while...

About

Geoid is an implementation of the technique in Animation of Orthogonal Texture-Based Vector Field Visualization (2007) by Sven Bachthaler and Daniel Weiskopf, using the ocean flow dataset from ECCO2 and earth images from Blue Marble Next Generation.

I've exposed parameters of the algorithm so you can see experiment. They are explained briefly here:

Velocity Masking
To make motion stand out from noise, mask areas with low velocity. N and M control the masking level by the function described in Lagrangian-Eulerian Advection of Noise and Dye Textures for Unsteady Flow Visualization 4.10.2.
LIC
Line integral convolution over random noise, i.e. streaks along the field. You can choose either orthogonal lines, which are easier to follow in motion, or parallel lines, which look nicer in my opinion. Step size controls the numeric integration step, while backwards/forwards controls the number of loops to take. Increasing backwards/forwards taxes the GPU more.
Advection
The previous texture is advected along the fiel, i.e. is moved like dye in moving water. The Step size and number of Steps is similar to LIC. Increasing step stize speeds up the apparent velocity of the animation.
Blending
New noise is blended with advected old noise in order to keep enough noise in the system to show motion. Set the blend level all the way to the left to see the raw LIC texture or all the way to the right to see just the advection.
Land
Change the land texture from day to night, purely for aesthetic reasons.
Time
Control the time-varying ocean current field.
Load more Data
Attempt to load the other 18 years of available ocean data. Caution, the data takes up about 256 MB of graphics memory total, and I don't know what happens if you don't have enough.

Implementation

geoid is implemented in coco + WebGL shaders. The main flow of the algorithm is very well suited to GPU shaders. coco smoothes out the annoying parts of javascript. View source on Github.

Oh gosh, your browser doesn't support canvas ;_;

Geoid

About

LIC

Type:

Advection

Blending

Stretch Contrast

Velocity Masking

Land

Time