I'll throw one more answer in, although the answers above are all in the ballpark.
Let's assume you want to work on all browsers. If you need to work on Internet Explorer, and you code your own Canvas solution, you may want to include the Explorer Canvas bridge (do a search for excanvas... sorry, I'd post the link, but I appear to be limited to one link per post).
Family trees are essentially binary trees -- I know, real life is tricky with adoptions, divorces, ugh, but let's just assume for a second that they're binary going in one direction (ancestors) from a particular person.
A good tool that uses Canvas, has the bridge to work on IE included, and uses a simple and general data format is the JavaScript InfoVis Toolkit.
Check out the sample at:
http://thejit.org/Jit/Examples/Spacetree/example2.html
It may not be exactly what you want out of the box, but you can tweak the look and feel.
The data payload to plug-in is very simple, and your example would look something like this:
var tree = {
id: "ME", // Needs to be internally unique
name: "ME", // Visual label, does not need to match id
data: {}, // not really used here, but parameter needed
children: [
{id: "DAD",
name: "DAD",
data: {},
children: [
{id: "GrDAD1",
name: "GrDAD1",
data: {},
children: []},
{id: "GrMOM1",
name: "GrMOM1",
data: {},
children: []},
]},
{id: "MOM",
name: "MOM",
data: {},
children: [
{id: "GrDAD2",
name: "GrDAD2",
data: {},
children: []},
{id: "GrMOM2",
name: "GrMOM2",
data: {},
children: []},
]}
]
};
I'm sure there are other solutions out there, and I hope you find one that works for you.