TeaTime in a Nutshell, by My Daughter

My oldest daughter (age 13) just “independently” invented Croquet. Or more specifically, she’s reinvented the underlying computation model called TeaTime. She’s been playing a computer game called “Sims”, in which a single player can create a simulated world, populated with characters that she has configured. These character interact with each other based on their “personalities.”

The version of Sims she uses is not collaborative: each game is independent of anyone else playing the game. But my daughter has a friend (born within a few hours of her, from two parents that lived in the same dorm as my wife and I). Her friend also has Sims, and being 13 year old girls, they play their own games while they talk on the phone with each other. “Let’s make a character called ‘Howard.” Let’s have him do such-and-such. Let’s do this. Let’s do that.“

They’re each using the telephone to coordinate the ”commands” to their respective simulations. Then the games play, producing the same results, even though the game isn’t designed to be networked. That’s exactly how Croquet works.

Now, there are other issues in the Sims, and these girls are as interested in the differences as in keeping things in synch. Pretty cool.

About Stearns

Howard Stearns works at High Fidelity, Inc., creating the metaverse. Mr. Stearns has a quarter century experience in systems engineering, applications consulting, and management of advanced software technologies. He was the technical lead of University of Wisconsin's Croquet project, an ambitious project convened by computing pioneer Alan Kay to transform collaboration through 3D graphics and real-time, persistent shared spaces. The CAD integration products Mr. Stearns created for expert system pioneer ICAD set the market standard through IPO and acquisition by Oracle. The embedded systems he wrote helped transform the industrial diamond market. In the early 2000s, Mr. Stearns was named Technology Strategist for Curl, the only startup founded by WWW pioneer Tim Berners-Lee. An expert on programming languages and operating systems, Mr. Stearns created the Eclipse commercial Common Lisp programming implementation. Mr. Stearns has two degrees from M.I.T., and has directed family businesses in early childhood education and publishing.


  1. This is the best explanation for TeaTime *by far* that I’ve seen so far.

  2. “How about”

    I once observed two young girls playing. Come to think of it, Howard, they may have been your daughters! (I don’t remember who they were right now, I only remembered how they played). They were playing with dolls.

    “How about he’s going shopping” said one.

    “How about he has to walk because his car is broken.” Said the other.

    “How about his dog has to go to the vet”

    “How about the vet is very mean and they have to find another vet.”

    “No the vet is not mean. She’s nice. How about there is a mean person with a mean dog in the waiting room.”

    And so on. There was some moving of the dolls and rearranging of the toys as this went on, but not much.

    And I had this blinding insight (as a dad with about 65 parent-years experience, I guess you might say I’m not too quick on the uptake) that the nature of their play was not mainly invested in creating imaginary worlds for their dolls to play in.

    Their play had a lot more to do with mapping their respective brain-worlds to each other, and negotiating how this would be done.

    “How about” was an operator that proposed a modification to the world, and it was by default accepted. “No” rejected the modification, but by convention the person saying no had to include some variant of the original proposal in her counter-proposal. And so on.

    Gosh, now I’m going to go crazy trying to remember what children these were. I know it wasn’t my own daughters, who are now 17 and 24 years old.

    But that reminds me of some stories about how my daughters do play — here’s a place holder note to myself in case I want to write about it later: “Jainaba, tell me what song I’m thinking of right now.”

  3. I go along with Andreas here, this is a great analogy! If I remember my communications classes (the speaking kind) correctly, shared experience is the basis for meaningful communications. Extrapolating this to TeaTime and Croquet, there would have to be a base set of common objects, and then a negotiation process to modify or add to those objects.

    This is all fine and dandy, except that as Croquet goes forward, I could see disparate sets of base objects being adopted by different groups as a performance enhancement, thereby trading off common understanding and the ability to communicate with the whole community for performance gains.

    In other words, what do the girls do when they find a third friend that plays Sims but has a different neighborhood already built that she wants to share, and your girls want to share theirs with her?

  4. heh. Yeah, merging of diffferent parties is tricky.

    I imagine we’ll start with special cases. E.g., if an object from one simulation “stands alone” (doesn’t depend on anything else from the simulation), then we can add a copy of it to another simulation. Hey, it’s just adding a new object. The trick here is deciding whether it stands alone. We have a theory and an implementation, but we don’t yet know if it’s right, or how often this actually occurs in practice. The effect is equivalent to saying that if the thing can be serialized to the Worldbase and still work properly when it comes back out, then you’re ok.

    If our copy does turn out to have elemenents that do point back to the original simulation, then we’ll have one simulation that refers to another. I know that we will need some of these “far pointers”, but I don’t yet understand how these will work. Are all these things done the same way? In some cases, I think we want each simulation to run on each host, so that traffic between the simulations do not go out on the wire. (In “island” terminology, I think of a group of islands that travel together as an “archipelago.” So maybe this isn’t really a ‘far pointer’ but more like an an ‘inter-island pointer’.) In other cases, such as the initial “party of one” rendevous space that presents portals to other simulations, you don’t want to have the whole world-wide network of simulations running on your machine, so a portal should be a kind of proxy (which might even render a view of the simulation within). I need to understand these two cases better before I can begin to think about taking an arbitrary interconnected object from one simulation and putting it in another. I suspect that allowing this to happen automatically all the time would quickly lead to a chaotic intertwined mess.

  5. i dont get this…

  6. There’s a lot of context here, so there’s a whole lot of stuff you might not be getting. Which parts DID you get?

    For background on Croquet, see http://croquetproject.org and http://wetmachine.com/itf/ (The latter is probably best read or skimmed backwards — i.e., in chronological order.)

Comments are closed