components have a name — Brie

I don’t know why software projects need meaningless codename, but they do. Maybe that’s how this ethereal stuff becomes “real.”

I can’t say that all our U.Wisconsin projects for Croquet will be named after cheese, but I wouldn’t be surprised. Not sure why Wisconsin means cheese, yet we start with a French cheese. But Brie is cool. My wife lived there for a while. The have big parties when the new cheeses come out, but you can also buy this old wrinkled stuff that you can’t get here, which my wife calls “fromage morte.”

So, what is Brie?

It is a user interface for Croquet. In this case, a set of components for building stuff with, that follow a mostly Apple OSX interaction style. (Select-like stuff on mouse down, activate on up. Right click for context menus, etc.) It’s more general and more uniform, because you can click right on EVERYTHING (even menu items) and from there inspect it, or get affordances by which you can move it around and change it. Not everything in Croquet has to be a Brie component, and not all Brie components have to behave the same way. But we will provide a bunch of Brie components that do.

Brie is also the underlying component architecture and implementation. It allows complex components to be assembled by sticking them together like blocks. It also allows users to change the behavior of components. This can be done through the inspector on any object, but also by pulling behaviors right out of an interesting object and dragging them into another. A menu item might look like an OSX menu text that triggers some behavior, but it is actually the transferable behaviors itself. So you can use the UI to construct and change the application itself, or the application’s UI. And then you just walk away. No publish. No mailing stuff around or downloading, and not install. Whomever you allow into the space can use the thing you’ve just built. They can watch you build it, or they can build it with you. They can change it. You can leave and come back later and continue using it. (The persistence is part of Croquet in general, not specific to Brie. But it helps in understanding why you would want to interactively muck about with your stuff at all levels.)

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. Brie sounds like a very cool thing, and I’m looking forward to seeing it. I’m hoping that there is a high degree of coordination with other new developments in Croquet, such as the TeaTime and abstrated UI stuff that David Smith is working on, and the Tweak project. I’m looking for the "and then magic happens" part of the Croquet project, where it all comes together. Love the pieces too, though!

  2. Yes, Brie is very specific to TeaTime, Filters, and the rest of Croquet. For example, OSX uses the "application" and its windows as a packaging concept, with one application-specific menu bar at a time. Brie intermixes components from different applications, but makes use of a per-filter event manager for packaging user state. This is possible because Croquet persistence eliminates the need to set aside a separate thing called an "application" with separated units called "data files". I’ll write more about all this later.

    By itself, Brie doesn’t have anything special built-in for 2D graphics. Tweak is an appropriate choice to supply such. Of course, Tweak is much more than that, and Andreas and I will be working closely to see how Tweak scripts fit in. By itself, Brie currently just uses the usual Squeak/Morphic/Croquet style of stepping through continuing actions. It is not ideal.

Comments are closed