The cardioid is a simple and elegant curve. It can be seen in a pan or in a child's milk bowl. For many people, the cardioid is perhaps the first encounter with sophisticated mathematics. A cardioid can be obtained by different methods. Implementing those methods is a good programming exercise, which rewards one with a pleasant design. It is also the basis by which one can modify code to obtain a rich family of three dimensional objects whose diversity is still being explored.