We present a general approach to creating realistic swimming be- havior for a given articulated creature body. The two main com- ponents of our method are creature/fluid simulation and the opti- mization of the creature motion parameters. We simulate two-way coupling between the fluid and the articulated body by solving a lin- ear 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 maneu- vers 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 re- sulting 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.