Mondfarilo Reference Manual
Since Mondfarilo is no where near finished,
neither is this reference manual.
I will use italic type to identify
features that are planned but not implemented,
or provisionally implemented but expected to change.
Home |
About |
Features |
Applet |
Download |
Tutorial |
Reference |
Bibliography
Table of Contents
Modelling Concepts
To fully understand the workings of Mondfarilo,
you will first need to understand a few basic concepts.
What it's for: POV-Ray produces excellent results,
but its input is a complicated programming language and
its output can take a very long time to generate.
Mondfarilo, like any good modeller, addresses both of these issues.
It lets you build your scene graphically and interactively, so
you don't have to learn the scene description language.
And it displays your scene using a fast wireframe renderer,
so you can see your changes instantly or very nearly so.
Coordinate Systems:
Primitives:
Lights:
Cameras:
Hierarchies:
Textures:
Table of Contents
Editing Windows
Every type of object has its own type of editing window.
Features common to all editing windows

- Name Field
- in the upper-left corner,
displays and edits the name of the object that owns the window.
- Texture Button
- right below the Name Field,
opens a dialog box for editing the object's texture.
There is currently no such dialog.
Every object is chalk white.
- Apply Button
- in the lower-left corner,
takes new values from the various editing controls and bestows them
on the object.
- Four Views
- in the two-by-two grid that fills most of the window,
display and edit the object.
The Camera View occupies the upper-right corner. It
displays the object in perspective from the point of view of
the current camera. Clicking and dragging in the Camera
View changes the position and aim of the camera, as
explained below.
The other three views are the Axis Views. They
display orthographic views of the object from directions
parallel to the three coordinate axes. Clicking and
dragging in an Axis View performs a variety of selecting and
editing operations, depending on the type of object. The
upper-left corner is the Top View, which looks down
from +Z, showing +X to the right and +Y
up towards the top. The lower-left corner is the Front
View, looking North from -Y, with +X to
the right and +Z up. Finally, the lower-right corner
is the Side View, looking West from +X, with
+Y to the right and +Z up.
The Camera View has no scroll bars. You determine how much
can be seen by positioning and aiming the camera, and by
adjusting the zoom lens. The heavy black lines outline the
usual 4x3 aspect ratio. The user will be able to change
the aspect ratio. The Axis Views have scroll bars which
work in the obvious way.
- Number Fields
- The Sphere Editor shown above is typical of most Editing
Windows in that it contains a few Number Fields. These are the
four text entry areas below the Texture button labelled U
Divs, V Divs and so on. Number fields can edit
either scalar or vector quantities as appropriate. Scalar
Number Fields have one number in them. Vector Number Fields
contain three numbers separated by spaces.
- Menu Bar
- contains several commands more generally useful commands.
- Window Menu
-
- POV-Ray
- generates a window full of POV-Ray code, describing the
object as seen in the Camera View.
Since Java applets cannot write files on your hard disk,
you must copy and paste the POV code from this window
using native window system methods.
- Close
- closes this window.
- Camera Menu
-
- Normal Lens
- resets the focal length of the lens to its
default value, which in POV-Ray terms would be
a direction vector with a length of one unit.
In other words, a 90-degree angle of view.
This is a bit wider than what most photographers
would consider "normal."
- Edit...
- opens a dialog box for the exact specification of
the parameters of the camera.
This dialog doesn't exist yet.
The Box Editor

- Minima and Maxima
- These two Number Fields define size and position of the
Box by placing two opposite corners, one at the minimum
value of X, Y and Z, and the other at the maximum values.
Mondfarilo verifies and applies the values you type when you
hit the Apply button.
Biparametric Editors
- U Divs and V Divs
-
The biparametric shapes, sphere, cone, torus, superellipsoid,
lathe, prism and bicubic patch mesh,
are approximated by dividing their surfaces into a grid, then
joining the grid points into triangles.
These two Number Fields control how many "slices"
the approximating grid has in each dimension.
The exact meaning of U and V depends on
the object type, and so is described
more fully with the individual editors.
Generally, increasing these numbers makes the wireframe
approximation better, but costs more time and memory.
- Open Ends
- Some primitives have optional end caps,
which may be turned on and off with this checkbox.
As usual, its setting takes effect when
you hit the Apply button.
The Sphere Editor
- Center
- This number field displays and edits the
location of the center of the Sphere.
- Radius
- This number field displays and edits the radius of the
Sphere.
The Cone Editor
- Base
- This field controls the location of the center of the base
of the cone.
- Base Radius
base, base radius, apex, apex radius, open ends
The Torus Editor
major, minor
The Superellipsoid Editor
XY exponent, Z exponent
The Blob Editor
threshold, create, delete, strength, cell size, drag selection
The Group Editor
child list, list selection, drag selection, editing handles
additional menus
camera: look at selection, look from selection, reverse view
edit: cut, copy, paste, clear, reset, group, ungroup, open window
create: box, sphere, cone, torus, superellipsoid, blob, new empty group
The CSG Editor
csg type, cell size
Table of Contents
Primitive Objects
Box
Sphere
Cone
Torus
Superellipsoid
Blob
Table of Contents
CSG Groups
Table of Contents
POV-Ray Output
Table of Contents
Everything from here down is the obsolete first draft
World Editor
The World Editor is Mondfarilo's main window.
In it you create and manipulate the objects making up your world.
There is only one World Editor.
Someday we will support editing more than one world at a time,
in which case there will be more than one World Editor.
The World Editor contains the following:
- Object List
- located in the upper-left corner,
this shows the names of all the objects belonging to this group.
The example group contains a box and a sphere.
Click on the names to select or deselect objects.
Someday you will be able to select by dragging a marquee
in an editing window. The PowerMac version can already do this.
- Axis Views
- showing the Top, Front and Side views, these are where all
the actual editing takes place.
Scroll bars let you edit a bigger world than will fit on your
screen. Pale blue grid lines aid in sizing and aligning objects.
Someday, grid size, grid visibility, and snap-to-grid will
be under the user's control.
- Camera View
- located in the upper-right corner, this gives a perspective
rendition of the objects in the group.
It has heavy black outlines around a horizontal rectangle
with a 4:3 aspect ratio, which is POV-Ray's default.
Someday, you will be able specify a different aspect ratio.
Group Editor
A Group Editor is the window where you will spend most of your
time. It serves to create and transform the objects making up
a group, and to perform CSG operations on them.
- CSG Type
- is the popup menu on the left side, with which you can
choose a Union, Merge, Intersection or Difference.
- Cell Size
- is a text field in which you may specify the size of the
grid used to approximate the CSG surface. This only applies
to Intersection and Difference objects. A smaller number
here produces a better approximation, but takes more time
and memory.
- Refresh
- causes the surface of an Intersection or Difference object
to be laboriously recalculated.
Blob Editor
A Blob Editor is similar to a Group Editor, but instead of showing
the objects belonging to a group, it shows the components belonging
to a blob primitive. Its Create menu has only one command on it,
to create additional components. Instead of CSG controls, it
has blob controls:
- Threshold
- sets the threshold value of the blob as a whole.
It must be a positive number.
All points in space where the sum of the contributions from
each component equals this threshold value are on the surface
of the blob.
- Field Strength
- sets the strength of the selected component, provided there
is exactly one selected.
A component contributes this strength at its center,
decreasing smoothly to zero at the radius and beyond.
- Cell Size
- controls the size of the grid of cells used to approximate
the surface. A smaller number here makes a better approximation,
but takes more time and memory.
Mouse-Adjusting the Camera
- Dragging
- causes the camera's position to orbit around a fixed
look-at point. Dragging horizontally
changes the "longitude" of the camera. Dragging across the
width of the camera window results in a full 360-degree rotation.
Dragging vertically changes the "lattitude" of the camera.
Dragging across the height of the window results in a trip
between the North Pole and the South Pole.
- Shift-Dragging
- causes the camera's look-at point to orbit around
a fixed position.
- Ctrl-Dragging
- causes the camera's position to move closer to or
farther from a fixed look-at point. Dragging towards the top
of the window moves closer, and dragging towards the bottom
of the window moves farther away. Dragging horizontally
has no effect.
- Shift-Ctrl-Dragging
- changes the focal length of the lens. Dragging towards the
top of the window makes the lens more "telephoto," magnifying the
image, narrowing the view angle and reducing the effect of perspective.
Dragging towards the bottom of the window makes the lens more
"wide-angle," shrinking the image, widening the view angle, and
enhancing the effect of perspective.
Dragging horizontally has no effect.
Mouse-Transforming Objects
In the Axis Views, selected objects are drawn with Editing Handles
superimposed.
There is an Origin Handle located at the origin,
in the center of the red circle, for translating and uniformly
scaling.
There is a Rotate Handle directly to the right,
on the red circle at the 3 o'clock position,
and a Scale Handle in the lower right.
- Dragging the Origin Handle
- translates the object. The object follows the mouse as
it moves horizontally and vertically in the window.
- Ctrl-Dragging the Origin Handle
- uniformly scales the object. Dragging to the right makes
the object bigger. Dragging to the left makes the object
smaller. Dragging vertically has no effect.
- Dragging the Rotate Handle
- rotates the object around an axis passing through its
origin and perpendicular to the computer screen.
- Dragging the Scale Handle
- non-uniformly scales the object around its origin, in the plane of
the computer screen, preserving its scale along the axis perpendicular
to the computer screen.
File Menu
- New
- Not yet implemented. In a single-world system, it would
prompt to confirm, then erase the entire world and close all
windows, then create a new World Editor window containing a new
empty world. In a multiple-world system, it would simply open
a new empty World Editor without disturbing other worlds.
- Open
- Not yet implemented. In a stand-alone application or a
trusted applet, it would read a world in from a file. In an untrusted
applet, it would present a text window into which a description
of a world (in what format?) could be pasted.
- Save
- Not yet implemented. In a stand-alone application or a
trusted applet, it would save the world in a file.
In an untrusted applet, it would present a text window containing
a description of the world (in what format?) which the user
could paste elsewhere.
- POV-Ray
- generates a POV-Ray scene description of this window's
contents as seen in this window's Camera View.
You must choose this command from the World Editor if you want
a description of the entire world.
In a stand-alone application, it writes the POV-Ray into a file.
In an applet, it presents a scrolling window full of text.
You must copy and paste the text using your native window system
techniques.
- Close
- closes this window.
This command is found in Blob Editors, CSG Editors, and the
World Editor of the applet version.
The stand-alone application's World Editor has an Exit
command instead.
- Exit
- exits the stand-alone application.
Edit Menu
Mondfarilo maintains a Clipboard for copying and pasting
objects. The Clipboard is global, shared by all the editing windows.
When we allow multiple worlds, one single clipboard will be shared
by all the worlds too.
Clipboard operations all use deep copy semantics. When
you copy a group, you also copy the objects in that group,
including deeply nested groups. You can edit the copy without
affecting the original.
- Cut
- removes all selected objects from this group and places them
on the Clipboard, discarding the previous Clipboard contents.
- Copy
- places deep copies of all the selected objects on the Clipboard,
discarding the previous Clipboard contents.
- Paste
- makes deep copies of all objects on the Clipboard, and adds the
copies to this group.
- Clear
- removes all selected objects from this group, without making any
change to the Clipboard.
- Reset Transform
- restores all the selected objects to their original, untransformed
state. This undoes any translation, rotation or scaling previously
applied to those objects.
- Group
- replaces the selected objects by a group (CSG Union)
containing them, thus pushing them one level down the hierarchy.
- Ungroup
- replaces any selected group objects by their individual
contents, thus hoisting those contents one level up the
hierarchy.
- Open Window
- opens a window for editing the selected object, provided that
there is exactly one selected object. Otherwise, it does
nothing.
Furthermore, only blobs and groups have their own editing
windows. Editors for the other primitives are not yet implemented.
Camera Menu
- Normal Lens
- restores the Focal Length of the camera to its default value.
It's not really a "normal" lens the way a 50mm or 55mm lens is
considered normal for a 35mm camera. In photographic terms, it's
actually a bit on the wide-angle side.
In POV-Ray terms, it makes the length of the camera's direction
vector equal to 1.0, so that a unit square object will fill the
frame when it's one unit away from the camera.
This results in a ninety-degree angle of view.
- Look At Selectee
- aims the camera at the selected object's origin,
still looking from the same position.
Aims at the first selected object if there are more than one.
Does nothing if no objects are selected.
- Look From Selectee
- positions the camera at the selected object's origin,
still aimed at the same point.
Positions at the first selected object if there are more than one.
Does nothing if no objects are selected.
- Swap Camera/Focus
- reverses the position and look-at point. Instead of
viewing target A from vantage point B, you view target B
from vantage point A.
Create Menu
The following commands are found on the Create menus belonging
to the World Editor and any Group Editors:
- Box
- creates a cube, with sides of 100 units each, centered at the origin.
- Sphere
- creates a sphere, with a radius of 50 units, centered at the origin.
- Cone
- creates a cone along the Z (vertical) axis between -50 and +50,
with a radius of 50 units at each end.
This results in a cylinder; you can change the base and apex radii
to get a tapered cone.
Someday there will be separate commands to create cylinders and
cones.
- Torus
- creates a torus centered at the origin,
with a major radius of 50 and a minor radius of 10.
The torus is rotated around the Y axis for compatibility with
POV-Ray, even though the vertical axis would be more
consistent with cones.
- Blob
- creates a blob with a threshold of 30, having one component
centered at the origin, with a radius of 50, and a strength of 100.
- New Empty Group
- create a new group, a CSG union, with no contents.
The Open Window command from the File menu
opens a Group Editor for adding objects to the new group.
There is only one command on the Create menus belonging
to Blob Editors:
- Component
- creates a new component, centered at the origin,
with a radius of 50 and a strength of 100.
Home |
About |
Features |
Applet |
Download |
Tutorial |
Reference |
Bibliography
Send me some mail.