We present a general approach to creating realistic swimming behavior
for a given articulated creature body. The two main components
of our method are creature/fluid simulation and the optimization
of the creature motion parameters. We simulate two-way
coupling between the fluid and the articulated body by solving a linear
system that matches acceleration at fluid/solid boundaries and
that also enforces fluid incompressibility. The swimming motion of
a given creature is described as a set of periodic functions, one for
each joint degree of freedom. We optimize over the space of these
functions in order to find a motion that causes the creature to swim
straight and stay within a given energy budget. Our creatures can
perform path following by first training appropriate turning maneuvers
through offline optimization and then selecting between these
motions to track the given path. We present results for a clownfish,
an eel, a sea turtle, a manta ray and a frog, and in each case the resulting
motion is a good match to the real-world animals. We also
demonstrate a plausible swimming gait for a fictional creature that
has no real-world counterpart.
We thank Ron Hutchins, Neil Bright and the Georgia Tech
Office of Information Technology for providing us with
computing cluster resources. We are also grateful for an
equipment donation from NVIDIA. This work was funded
by NSF grants CCF-0811485 and IIS-1017014.