TreDim is a 3D modeling application written in Smalltalk for the Squeak environment. It allows the user to specify common three-dimensional objects (such as cubes, cuboids, pyramids, cylinders, cones, and spheres) and query them for some of their properties (such as surface area, volume, and bounding box). It relies on the WObjectExtension and WTestingFramework packages, which were developed for TreDim and are included in the TreDim distribution.
TreDim was written for the Squeak environment. You can download Squeak from the following location:
In general, if you can get Squeak to run on your system, you can run TreDim.
In order to make TreDim available on your system, you need to file-in the TreDim change set TreDim.cs.
For details on how to file packages and change sets in, please refer to the Squeak documentation.
TreDim is a text-based application: the user creates and manipulates shapes in a workspace. TreDim implements models of cubes (TDCube), cuboids (TDCuboid), square- and rectangular-based pyramids (TDPyramid), circular- and elliptical-based cylinders (TDCylinder), circular-based cones (TDCone), and spheres (TDSphere).
For each geometrical shape, the user can query and specify all of the relevant dimensions using accessors named after the corresponding quantity (messages: radius[:], width[:], depth[:], height[:]) and compute the following quantities:
Additionally, all supported shapes can be queried for their corresponding bounding box, which is itself a TreDim cuboid, by sending a TreDim shape the boundingBox message.
For example, in order to create a unit-volume cube, the user would type
TDCube new length: 1
in a workspace. The surface area of a particular elliptical cylinder (in this case, one of unit-volume) could be computed using the following expression:
TDCylinder new height: 1; depth: 2; width: 2 / (Float pi); surfaceArea
For further usage information and a discussion of TreDim subtleties, please refer to the reference guide in the file "TreDimReferenceGuide.pdf".
TreDim provides partial support for some shapes, like the elliptical cone. An elliptical cone of unit volume would be created by typing
TDCone new height: 3; depth: 2; width: 2 / (Float pi)
If one were to send the surfaceArea message to this shape, the system would oblige, albeit by first converting the elliptical base to a round base of equal area. Upon such an eventuality, TreDim courteously informs the user by popping up a confirmation dialog.
Right on this page:
TreDim is free software. It is licensed under the terms of version 2 of the GNU GPL. See the file COPYING for details.
You will find contact information in the distribution tarball.
This project was originally developed by Alejandro Gomez de Arguello y de Laburu and Vasco Piffaretti between 27 March and 3 April 2006, under the supervision of Marco D'Ambros at the University of Lugano, in Switzerland, as part of the required coursework for Programming Fundamentals 2, taught by Professors Michele Lanza and Amy Murphy.
The authors wish to thank the following people for their help: