History of Seismic Duck

History of Seismic Duck

Seismic Duck was first developed on a 75 MHz Mac Performa and released in 1997. Back then it was a struggle to get acceptable frame rates. The original version used a small windows, on-the-fly generation of machine code, and 2x interpolation in both spatial dimensions. The 2x interpolation on both dimensions netted an 8x reduction in computational effort, since waves moved over twice as many pixels per frame compared to no interpolation. Window boundaries were handled by a crude damping system, which did not suppress all reflections.

By 2010, machines were much faster. Version 2.0, released and open-sourced in 2010, was a big revision with major improvements to computational speed and physics. The new version exploited multiple cores, SIMD instructions, and the cache memory hierarchy. Interpolation was no longer necessary, so waves could look sharper. Better yet, the simulation could be run in triple-time, so visually the waves now moved about 1.5x faster than in the original version. Introduction of "perfectly matched layers" suppressed reflections from window boundaries.

By 2015, most machines were so fast that the multi-threading was often a waste of power, so version 2.1 introduced automatic throttling that adjusts the number of threads dynamically. Seismic Duck also returned to the Mac that year.

Seismic Duck continues to be the mostly widely played computer game in the category "reflection seismology with waterfowl".