ITP Spring Show 2009
Sunday, May 10, 2-6pm & Monday, May 11, 5-9 pm

Zoe Fraade-Blanar


International finance, interpreted as fish.

The Nature of Code

Scales makes the world of international finance accessible by displaying dry numbers in fishy form. In this data-inspired environment, weak currencies are content to swim with the school in the pond while stronger currencies race each other upstream. Users can add or remove fish throughout the simulation to see how they compare.

International exchange rates powered the physics of an earlier version of a project that has turned into Scales. In it, bills were granted different forces of gravity depending on the relative currency strength they represented. They then attempted to follow a US dollar which was oscillating at the rate of inflation. Although visually appealing, this simulation did not allow for any interactivity, and it was not clear at a glance which currencies were most successful. Scales seeks to solve these problems by making the environment more engaging, allowing for user interaction, and presenting a clearer interface. (Earlier physics project can be found at

Scales is both for those users who, like me, feel intimidated or overwhelmed by the world if finance, but it is also for seasoned financial professionals who would like a more whimsical way monitor the worth of the Belarusian Ruble.

User Scenario
A financial professional might open Scales at the beginning of their work day, add a few fish for the currencies they wish to monitor, and allow it to run in the background to help keep their sense of humor. Or, an elementary school teacher trying to explain the differences between types of money might use Scales to demonstrate how different currencies compare to each other.

Scales uses a number of nature simulation techniques to give a natural, welcoming feel. The fish themselves are made of undulating sine waves. Their motion follows “flocking” rules with border-detection while in the pond, but uses “path following” algorithms while attempting to get upstream. The waterfalls are made from particle systems to give the most realistic effect possible. The steam at the bottom of each waterfall is Perlin noise. The values for each fish are pulled from a financial rss feed that is updated every 6 hours. The interface is rendered in OpenGL.

This is a very memory and graphics-card intense application, due in part to the large number of particle systems it takes to simulate water. As Daniel Shiffman pointed out early in Nature of Code, when it comes to nature simulation, and may I add, in data visualization as well, there is no such thing as 'faking it'. If the application gets the information across, there is no need for complete perfection. Sometimes it is necessary to sacrifice perfect simulation for real-world concerns, such as the sluggish speed of my graphics card.