Morphic Interface

Morphic is a DirectManipulation UserInterface (see GraphicalUserInterface) which was originally developed by the SelfLanguage team at SunMicrosystems. It is currently also used in SqueakSmalltalk and in the LivelyKernel? research project.

From the SqueakSwiki (see
Morphic is a direct-manipulation User Interface (UI) construction kit based on display trees. It is an alternative to ModelViewController (MVC). It will likely replace and obsolete MVC, as DanIngalls says in Place in the Universe.

See (link updated 8/22/02), (marked This category needs an editor 2002-11-24) (see OpenDirectoryProject)


Squeak's SWiki page has extensive information on the Squeak's implementation of the MorphicInterface:

For more on Morphic, the following papers should help (available from the ACM digital library):

Maloney, J. and R. Smith. Directness and Liveness in the Morphic User Interface Construction Environment. in UIST. 1995. Pittsburgh: ACM.

Smith, R., J. Maloney, and D. Ungar. The Self-4.0 User Interface: Manifesting a System-wide Vision of Concreteness, Uniformity, and Flexibility. in OOPSLA '95. 1995: Association of Computing Machinery.

How does it relate to SceneGraph and/or StructuredGraphics in the collection of GraphicsPatterns?

Each Morphic object (Morph) is a node in a SceneGraph. The Morphic framework manages the rendering of the SceneGraph. The application constructs a SceneGraph by composing Morphs. The application modifies Morphs in response to changes in domain objects that the Morphs represent. The framework then updates the display by rendering the modified Morphs and any other Morphs that also need to be redrawn such as those overlapping the modified Morphs.

Graphic programmers, especially those used to programming 3D graphics, will recognize this as a RetainedModeGraphicsApi?.

There is no direct relationship between Morphic and NakedObjects, though a number of people have observed that there is at least some overlap between the ideas e.g.:

-- RichardPawson

Morphics is an attempt to do CollapseHierarchy for the original ModelViewController framework, and from what I know, it is suffering badly from LargeClass? code smell even though it presents the user with both controlling and displaying in one hierarchy.

-- ChaoKuoLin

Once upon a time, I played with Squeak ... for about 20 minutes. That's how long it took me to conceive an intense loathing for its UI. Is Squeak's UI direct-manipulation? Sure it is. It's direct manipulation done wrong!

Squeak's UI is the ANTI-AlternateRealityUserInterface. Squeak's UI doesn't attempt to make interfaces disappear, oh no. No, Squeak's UI creates interfaces FOR its interfaces, controls FOR its controls. And the same goes for AlanKay's latest retarded project OpenCroquet.

Squeak made me hate Morphic. But then what do I know? I'm not a programmer, just an InteractionDesigner. -- RK

I agree. It didn't take a lot of messing around with Squeak to see what it was about before I actually began to feel claustrophobic and simply couldn't take anymore.

Just reading the NakedObjects book. What's most interesting so far is how it makes the argument that Squeak's UI isn't OO at all because it displays commands as icons (the halo around each object). Which of course is the #1 complaint I have about it.

the former comment is wrong, please remove it: (from ) [BrokenLink]

I couldn't care less about interacting with "application objects". In fact, I don't WANT to interact with application objects. The less interaction with those wastes of visual space the better! I want to interact with business objects. Only with business objects.

What Squeak does is it shoves interaction with "application objects" down your throat. It clutters up the screen until the UI chokes on them. Squeak's UI makes it impossible to have any meaningful interaction because it forces you to pay attention to and concern yourself with totally useless, pointless and wasteful interaction. -- RK

What kind of interactions did you find wasteful? My understanding of the Morphic paradigm is that the objects on the screen are intended to be your business objects, though as far as I can tell from the Self Movie, Randy Smith and John Maloney did not have business very much in mind. In other words, the visible object has all the slots (properties and scripts) that it needs to be some part of the computer model that you are working with. In a similar way, a spreadsheet cell has slots for a formula and a value, but you can't usually manipulate it to add some scripts (behaviours), animations, extra data, or change its location in the grid.

View edit of July 13, 2012 or FindPage with title or text search