Morphic Interface

Morphic is a Direct Manipulation User Interface (see Graphical User Interface) which was originally developed by the Self Language team at Sun Microsystems. It is currently also used in Squeak Smalltalk and in the Lively Kernel research project.

Morphic is a direct-manipulation User Interface (UI) construction kit based on display trees. It is an alternative to Model View Controller (MVC). It will likely replace and obsolete MVC, as Dan Ingalls says in Place in the Universe.

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


Documentation

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

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 Scene Graph and/or Structured Graphics in the collection of Graphics Patterns?

Each Morphic object (Morph) is a node in a Scene Graph. The Morphic framework manages the rendering of the Scene Graph. The application constructs a Scene Graph 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 Retained Mode Graphics Api.

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


Morphics is an attempt to do Collapse Hierarchy for the original Model View Controller framework, and from what I know, it is suffering badly from Large Class code smell even though it presents the user with both controlling and displaying in one hierarchy.


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-Alternate Reality User Interface. 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 Alan Kay's latest retarded project Open Croquet.

Squeak made me hate Morphic. But then what do I know? I'm not a programmer, just an Interaction Designer. -- 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 Naked Objects 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:

Squeak provides the user with a very strong sense of direct interaction with the application objects themselves. The user can select any object and invoke display-related as well as business-specific behaviours directly - even when the objects are moving around the screen. Hence Squeak has blurred the line between programming and using a system. However, although Squeak clearly has general-purpose potential (in the words of the Squeak central team, Squeak is 'Smalltalk as it was meant to be'), most of the emphasis to date has been on educational applications, animated graphics, and multi-media authoring tools

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.

See original on c2.com