Think about the last time you were at a lake, river, or the ocean. Remember the ripples of the water, the waves crashing against the rocks, the wake following a boat, the sun reflecting off the crests? Amazingly, the mathematical equations describing many of these phenomena have been known for over a hundred years. The trouble is, actually solving them is extremely difficult and costly, making accurate, realistic simulations a significant problem for computer scientists, visual artists, and others. Now, computer scientists at the Institute of Science and Technology Austria (IST Austria) and Nvidia have introduced a novel representation of waves that improves computational efficiency by at least an order of magnitude. Based on principles of theoretical physics, their method allows for significantly more visual detail as well as a greater degree of user control.
As the equations modeling water surface waves are so difficult to solve in their original form, when studying these equations, researchers typically assume that the waves are not "too" big. This simplifies the problem enough for their work, but not enough to make it tractable for computer graphics. In the past, this was addressed by making further simplifying assumptions and then using numerical methods to solve the equations. In this approach, the water waves are represented by a grid of points at different heights above the water surface, and motion is simulated by repeatedly updating the heights of the points based on the heights of their neighbors. However, the visual quality of the simulation then depends on how fine the grid is, and it is moreover impossible to quickly produce an image of the waves in the far-off future, as these updates–or time-steps–must be computed one after another. An initial leap was made in 2007, when another team of researchers departed from the idea of a wave stored on a grid, and instead modeled the crest of each wave as a chain of points, and allowed those points to move along the surface as real waves would.
Now, IST Austria Professor Chris Wojtan and former IST Austria postdoc Stefan Jeschke have applied ideas from theoretical physics to develop a new type of representation of the waves as packets. Each wave packet contains a collection of similar wavelengths, and then larger wave formations are created by adding individual packets together. Breaking up the waves in this way is not new to physics, but it is new to computer graphics, and in this way, the team has developed a simulation that more versatile and physically plausible than previous methods. Moreover, as their method is largely independent of time-steps and does not rely on a computational grid, the user can look very far into the future (or past) of the simulation, and examine the waves arbitrarily closely. Important effects, such as reflection, dispersion, refraction, diffraction, and dissipation, can be included with minimal extra work, further increasing the quality and believability of the simulation.
Besides believability, computing cost and efficiency are crucial considerations for any simulation–and the team's method improves on previous methods in this area as well. "When we want to optimize a computer simulation, we have to think about what information we're storing, how much of it we're storing, and what it costs to update everything," explains Chris Wojtan. "In this case, each wave packet is relatively cheap to store and update. Since each wave packet is computed in parallel, the number of packets is up to the user, and can be decided based on their needs and their system's capabilities."
"It's popular with visual artists as well," adds Stefan Jeschke. "If a movie director wants to make the waves around some monster bigger–even if physics doesn't agree–it is easy to adjust the wave height in a particular area, simply by changing the wave packets in that region. When the visualization is based on small, sequential time-steps, effecting one tiny change could mean running another twenty-hour computation, with the possibility that the next version would also be rejected."
In addition to implementing the idea of wave packets, Jeschke and Wojtan also developed a new theory for simulating wakes–the trail of water that follows an object moving on the water's surface. Again, they appealed to theoretical physics to figure out which waves are visually dominant, allowing insignificant motion to be ignored and cutting down on computing costs. The team is currently working on the next iteration of their method, but the source code for their current simulation software can be downloaded via the link below. A video of the software in action can be viewed here: https://www.youtube.com/watch?v=A2auK5Sf4gY&feature=youtu.be
Chris Wojtan obtained his doctorate in 2010 from the Georgia Institute of Technology. Immediately thereafter, he joined IST Austria as an Assistant Professor, where he leads the group in computer graphics and physics simulation. He became a full Professor in 2015. Stefan Jeschke received his PhD in 2005 from the University of Rostock. After postdoc positions in Vienna and Arizona, he conducted research at IST Austria in the Wojtan group from 2012-2016. He joined Nvidia as a researcher and developer in 2016.
Link to project webpage: http://visualcomputing.ist.ac.at/publications/2017/WWP/
Link to paper: http://pub.ist.ac.at/group_wojtan/projects/2017_Jeschke_WaterWavePackets/wavepackets_author.pdf
Link to video: https://www.youtube.com/watch?v=A2auK5Sf4gY&feature=youtu.be
Source code: https://zenodo.org/record/525184#.WUOIrWiGOCg