Summary: MathMorphs upgraded to run on 3.9 and converted to MCZ.
Author: Packaged as MCZ by milan zimmermann. Original code UBA
Owner: Milan Zimmermann (mz)
PackageInfo name: MathMorphsRevival
RSS feed:


Project Goal:

The Morphic Wrappers Revival is project setup to collect MathMorphs and related projects, convert them, if possible, to Monticello format, and make them run on 3.9. Hopefully having those projects in Monticello format will facilitate community changes.

Project History:

MathMorphs and related projects are beautiful pieces of Mathematics and Physics run in Squeak. They have been created at the University of Buenos Aires, and the original web site is at UBA . The projects basis is MorphicWrappers, other projects are FunctionPlotters, LinearAlgebra, MetricSpaces, PhysicsMorphs, Fibonacci and others. For details see the above page. There used to be a Wiki page for MorphicWrappers, but it is no longer available (crashed?). There is a MathMorphs site that is now missing the sar: here.

In May, 2006 Lic. Edgar J. De Cleene suggested on squeak-dev to collect necessary changesets, make them run in latest Squeak, and save them for future in a community effort. He collected most of the changesets needed and put together functional 3.9 changesets, I started converting them to Monticello. Please see details of each MCZ file for history of it's creation. There are 2 Monticello Projects so far, more will be converted in the future.


MorphicWrappers provide underlying architecture for the rest of the MathMorphs. A guide to Morphic Wrappers is in Mark Guzdial's Blue Squeak Book.

To run something interestingly graphical, install FunctionPlotters and see examples below.

More documentation and notes (third link has obligatory screenshots):


Simply yellow-click on the Release and click "install". this will install following Packages:

  1. MorphicWrappers.mcz

  2. Functions.mcz

Test Functions/FunctionPlotters:

Type into workspace:

XYPlotter example1 plot asMorph openInWorld
XYPlotter example2 plot asMorph openInWorld
XYPlotter example3 plot asMorph openInWorld
XYPlotter example4 plot asMorph openInWorld
XYPlotter example5 plot asMorph openInWorld
XYPlotter example6 plot asMorph openInWorld

ThetaRhoPlotter example1 plot asMorph openInWorld
ThetaRhoPlotter example2 plot asMorph openInWorld
ThetaRhoPlotter example3 plot asMorph openInWorld
ThetaRhoPlotter example4 plot asMorph openInWorld
ThetaRhoPlotter example5 plot asMorph openInWorld
ThetaRhoPlotter example6 plot asMorph openInWorld
ThetaRhoPlotter example7 plot asMorph openInWorld
ThetaRhoPlotter example8 plot asMorph openInWorld

" Cardioid - see Famous Curves"
"(Took me a bit to "get" that ThetaRho is 'polar coordinates' .. duh)"
plotter := ThetaRhoPlotter new.
plotter dotSize: 3.
plotter drawSteps: 12.

a := 10.
cardioidFunction := Function fromBlock: [:theta | 2AMB(1 + theta cos)].
plotter addFunction: cardioidFunction.
plotter domain: (ClosedInterval from: 0 to: 2 * Float pi).

plotter directDrawEnable: true.
plotter plot asMorph openInWorld