[WML-Source: MeshModeling.wml][TOC][Part00]

[chapter]Mesh Modeling

[section]Basic Objects

Blender offers a set of basic objects, that you can use as the starting point for any model you may care to create.

You can access these basic objects via the Toolbox, which you can call up by using SPACE or SHIFT-A . The difference between the two is that SHIFT-A places the highlighted menu-entry in the add menu, while SPACE displays the last selected option.

With the mouse you can call up the Toolbox by left clicking on the Toolbox icon located at the upper right corner of the Blender screen.

Set Blender to the default scene by pressing CTRL-X , remembering that this action will delete your current scene, so you should be shure to save if you want to keep it.

Bring the mouse cursor over a 3DWindow and press SHIFT-A . The Toolbox with the activated ADD menu will pop up.

  [images/Basic/AddMenuHighlighted.tga]

Next, click with the LMB (left mouse button) on the menu-entry "MESH". The menu changes and will show the different possibilities for adding mesh-objects.

  [images/Basic/AddMeshPlaneHighlighted.tga]

Select "Plane", the Toolbox disappears and a Plane appears at the 3D cursor. We are currently in the EditMode where we can edit the shape of the mesh itself. Now press TAB to leave EditMode, and the Plane changes to purple in the 3DWindow.

It is very likely that this Plane is positioned exactly above the default Plane, so press GKEY to enter the grab mode, then move the plane with the mouse a little way off and confirm the new position with a LMB click.

We are now going to add a more interesting object. Press SHIFT-A again, and then choose "UVSphere" from the "MESH" section.

In this instance, the Sphere does not appear at once, but Blender instead asks you for more information. The "Segment" and "Rings" input fields are prompting for the resolution of the Sphere we are going to create. For this, just click "OK" or press RETURN . Again, leave EditMode and move the Sphere to a position of your choosing.

  [images/Basic/BasicObjects.tga]

You can add a few more objects from the Toolbox with the procedures described above. Then use the middle mouse button (MMB) to rotate the view and explore the objects you have just created. Use the MMB together with SHIFT and CTRL to translate and zoom the view. Use a perspective view (PAD5 ) to get more of a 3D look.

Notice how the objects are composed from lots of single edges. Use the EditMode (TAB ) to explore the vertices of a selected object.

Press ZKEY to toggle on and off the filled view for objects in the 3DWindow.

[section]EditMode

When working in 3D space, basically you can perform two types of operations: operations that affect the whole object, and operations that affect only the geometry of the object itself but not its global properties, such as the location or the rotation.

In Blender, you switch between these two modes using the TAB -key. A selected object outside EditMode is drawn in purple in the 3DWindows (in wireframe mode). To indicate the EditMode, the Objects vertices are drawn. Selected vertices are shown in yellow; non-selected vertices are shown in purple.

  [images/Basic/EditModePyramid.tga]

Like objects, vertices can be selected with the RMB (right mouse button). Holding SHIFT allows you to select more than one vertex. With some vertices selected you can use GKEY , RKEY or SKEY for manipulating the vertices, just as you can do for whole objects.

Now add a Cube to the default scene. Use the 3D-cursor to place the cube away from the default plane, or use GKEY to move it away after leaving EditMode.

Switch the 3DWindow to a side view (PAD3 ), select the cube (if it is deselected) and press TAB to enter the EditMode again. Now, press BKEY for the BorderSelect and draw a rectangle with the LMB around the top four vertices of the cube. You will only see two vertices, because the other two are hidden directly behind the first two.

The top vertices have changed to yellow to indicate that they have been selected. You can rotate the view to make sure you really have selected all four vertices.

  [images/Basic/EditModeCube.tga]

Now, press SKEY and move the mouse up and down. You can see how the four vertices are scaled. Depending on your movements, you can make a pyramid or a chopped off pyramid. You can also try to grab and rotate some vertices of the other objects to get a better feel for EditMode.

  [images/Basic/EditModeCubePyramid.tga]

With WKEY , you can call up the "Specials" menu in EditMode. With this menu you can quickly access functions which are frequently required for polygon-modeling. You will find the same functionality in the EditButtons F9 .
You can access the entries in a pop-up menu by using the corresponding numberkey. For example, the key presses WKEY ,1KEY , will subdivide the selected vertices without you having to touch the mouse.

  [images/Basic/SpecialMenu.tga]

[section]Smoothing, Autosmooth by Reevan McKay

Most objects in Blender are represented by polygons.  In Blender, truly curved objects are often approximated by polygon meshes. When rendering images, you may notice that these objects appear as a series of small flat facets. (Fig. 1).  Sometimes this is a desirable effect, but usually we want our objects to look nice and smooth.  This tutorial guides you through the steps of smoothing an object and applying the AutoSmooth filter to quickly and easily combine smooth and faceted polygons in the same object.

The object used in this demo can be found on the CD-ROM.

Figure 1  [images/Smooth/notes1.tga]

There are two ways of activating the face smoothing features of Blender.  The easiest way is to set an entire object as smooth or faceted.  This can be accomplished by selecting a mesh object, switching to the EditButtons window (F9 ), and clicking the Set Smooth button shown in Fig. 2.  You will notice that the button does not stay pressed, but Blender has assigned the "smoothing" attribute to each face in the mesh.  Rendering an image with F12 will produce the image shown in Fig. 3.  Notice that the outline of the object is still strongly faceted.  Activating the smoothing features doesn't actually modify the object's geometry.  Instead, it changes the way the shading is calculated across the surfaces, giving an illusion of a smooth surface.

Clicking the Set Solid button reverts the shading to what is shown in Fig. 1.

Figure 2  [images/Smooth/notes4.tga]

Figure 3  [images/Smooth/notes2.tga]

An alternative method of selecting which faces to smooth can be done by entering EditMode for the object with TAB , selecting faces and clicking the Set Smooth button (Fig. 4).  When the mesh is in EditMode, only the faces that are selected will receive the "smoothing" attribute.  You can set solid faces (removing the "smoothing" attribute) in the same way: by selecting faces and clicking the Set Solid button.

Figure 4  [images/Smooth/notes5.tga]

It can be difficult to create certain combinations of smooth and solid faces using the above techniques alone.  Though there are workarounds (such as splitting off sets of faces by selecting them and pressing YKEY ), there is an easier way to combine smooth and solid faces.

Pressing the AutoSmooth button in the EditButtons (Fig. 5) makes Blender decide which faces should and should not be smoothed based on the angle between faces (Fig. 6).  Angles on the model that are sharper than the angle specified in the "Degr" NumBut will not be smoothed.  You can change this value to adjust the amount of smoothing that occurs in your model.  Higher values will produce more smoothed faces, while the lowest setting will look identical to a mesh that has been set completely solid.

Only faces that have been set as smooth will be affected by the AutoSmooth feature.  A mesh, or any faces that have been set as solid will not change their shading when AutoSmooth is activated.  This allows you extra control over which faces will be smoothed and which ones won't by overriding the decisions made by the AutoSmooth algorithm.

Figure 5  [images/Smooth/notes6.tga]

Figure 6  [images/Smooth/notes7.tga]

[section]Proportional Editing Tool by Reevan McKay

When working with dense meshes, it can become difficult to make subtle adjustments to the vertices without causing nasty lumps and creases in the model's surface.  The proportional editing tool works like a magnet to smoothly deform the surface of the model.

[subsection]Step By Step

In a top-down view, add a plane mesh to the scene with SHIFT+A >>MESH>>PLANE.  Subdivide it a few times with WKEY >>SUBDIVIDE (or by clicking on the SUBDIVIDE button in the EditButtons) to get a relatively dense mesh (Fig. 1).  When you are done, deselect all vertices with AKEY .

Figure 1  [images/Pet/notes1.tga]

Select a single vertex in the mesh by clicking it with the RMB (right mousebutton) (Fig. 2).

Figure 2  [images/Pet/notes2.tga]

Still in EditMode, activate the proportional editing tool by pressing OKEY or by clicking on the grid icon in the header bar of the 3dWindow.
If the icon isn't visible in the header bar because your window is too narrow, you can scroll the header bar by clicking with the MMB on it and and dragging it left or right.

You should see the icon change to a distorted grid with two curve-shape buttons positioned next to it (Fig. 3).

Figure 3  [images/Pet/notes3.tga]

Switch to a front view (KEYPAD_1 ) and activate the move tool with GKEY .  As you drag the point upwards, notice how other nearby vertices are dragged along with it in a curve similar to the one selected in the header bar.

You can change which curve profile is used by either clicking on the corresponding icon in the header bar, or by pressing SHIFT+O .  Note that you cannot do this while you are in the middle of a proportional editing operation; you will have to press ESC to cancel the editing operation before you can change the curve.

When you are satisfied with the placement of the vertex, the operation and reverts your mesh to the way it looked before you started dragging the point).

Figure 4  [images/Pet/notes4.tga]

You can increase or decrease the radius of influence (shown by the dotted circle in Fig. 4) while you are editing by pressing KEYPAD_PLUS and KEYPAD_MINUS respectively.  As you change the radius, you will see the points surrounding your selection adjust their positions accordingly.

Great effects you get by using the proportional editing tool with scaling (SKEY ) and rotation (RKEY ) tools.

Figure 5  [images/Pet/notes5.tga]

Combine these techniques with vertex painting to create fantastic landscapes.

Fig. 6 shows the results of proportional editing after the application of textures and lighting.

Figure 6  [images/Pet/final.tga]

[section]Extrude

The most important tool for working with Meshes is the "Extrude" command (EKEY ). This command allows you to create cubes from rectangles, and cylinders from circles. The Extrude command allows you create objects such as tree limbs very easily.

Although the process is quite intuitive, the principle behind Extrude is outlined below:

Grab mode is automatically started when Extrude is invoked.

[subsection]Using Extrude by Willem Zwarthoed

Extrude is one of the most frequently used modeling tools in Blender. It's simple, straightforward, and easy to use, yet it is also very powerful. In this tutorial you'll learn how to use Extrude to model a sword in a very short time.

[point]The Blade

Start Blender and delete the default plane. In top view, add a mesh circle with 8 vertices. Move the vertices so they represent the figure below.

  [images/Extrude/shot01.tga]

Select all the vertices and scale them down with the SKEY so the shape fits in 2 grid units. Switch to front view with Keypad_1.

The shape we've created is the base of the blade. Using extrude we'll create the blade in a few simple steps. With all vertices press EKEY, or click the button labeled `extrude' in the EditButtons (F9). A box will pop up asking `Ok? Extrude',

(DTP: put these pictures close together)
  [images/Extrude/shot11.tga]

  [images/Extrude/shot02.tga]

click it or press RETURN to confirm. If you move the mouse now, you'll see the following has happened: Blender has duplicated the vertices, connected them to the original ones with edges and faces, and has entered grab mode. Move the new vertices up 30 units, constraining the movement with CTRL. Click the left mouse button (LMB ) to confirm their new position, and scale them down a little bit with the SKEY.

  [images/Extrude/shot03.tga]

Press EKEY again to extrude the tip of the blade. Move the vertices five units up. To make the blade end in one vertex, scale the top vertices down to 0.000 (hold CTRL for this) and press WKEY>'Remove Doubles' or click the "Rem Doubles" button in the EditButtons (F9). Blender will inform you it has removed seven of the eight vertices and only one vertex remains: the blade is done!

(DTP: put these pictures close together)
  [images/Extrude/shot05.tga]

  [images/Extrude/shot10.tga]

[point]The Handle

Leave edit mode and move the blade to the side. Add a UVsphere with 16 segments and rings and deselect all the vertices with the AKEY. Borderselect the top three rings of vertices with BKEY and delete them with XKEY>'Vertices'.

  [images/Extrude/shot06.tga]

  [images/Extrude/shot07.tga]

Select the top ring of vertices and extrude them. Move the ring up four units and scale them up a bit, extrude and move 4 units again twice and scale the last ring down a bit. Leave EditMode and scale the entire handle down so it's in proportion with the blade. Place it somewhat under the blade.

  [images/Extrude/shot08.tga]

[point]The Hilt

By now you should be used to the `extrude>move>scale' sequence, so try to model a nice hilt with extrude. Start out with a cube and extrude different sides a few time, scaling them where needed. You should be able to get something like this:

  [images/Extrude/shot13.tga]

After texturing, the sword looks like this:

  [images/Extrude/sword_final.tga]

As you can see, extrude is a very powerful tool allowing you to model relatively complex objects very quickly (the entire sword was created in less than a half hour!). Getting the hang of the extrude>move>scale will make your life as a Blender modeler so much easier.

[section]Spin and SpinDup by Reevan McKay

(DTP: The annotated images are also availble as Photoshop layered images, basename + .psd-cw-)

[subsection]Spin

The Spin tool in Blender is designed for creating the sort of objects that you can produce on a lathe. This tool is often referred "lathe"-tool or "sweep"-tool in the literature.

First you must create a mesh representing the profile of your object.  If you are modeling a hollow object, it is a good idea to give a thickness to the outline.  Fig. 1 shows the profile for a wine glass.  This file can be found on the CDROM.

Figure 1  [images/Spin/notes1.tga]

With all the vertices selected and in EditMode, access the EditButtons window (F9 ).  The "Degr" button indicates the number of degrees to spin the object (in this case we want a full 360 degrees sweep).  The "Steps" button specifies how many profiles there will be in the sweep.

Figure 2  [images/Spin/notes3.tga]

As with Spin Duplicate (covered by the next section), the effects of Spin depend on the placement of the cursor and which window (view) is active.  We will be rotating the object around the cursor in the top view.  Switch to the top view with KEYPAD_7 .  The cursor should be placed along the center of the profile.  This is easily accomplished by selecting one of the vertices along the center, and snapping the cursor to that location with SHIFT+S >>CURS->SEL.

Fig. 3 shows the wine glass profile from top view, with the cursor correctly positioned.

Figure 3  [images/Spin/notes2.tga]

Before continuing, make a note of the number of vertices in the profile.  This information can be found in the Info bar at the top of the Blender interface (Fig. 4)

Figure 4  [images/Spin/note7.tga]

Click the "Spin" button.  If you have more than one window open, the cursor will change to an arrow with a question mark and you will have to click in the window containing the top view before continuing.  If you have only window open, the spin will happen immediately.

Fig. 5 shows the result of a successful spin.

Figure 5  [images/Spin/notes4.tga]

Now for the tricky part! The spin operation leaves duplicate vertices along the profile.  Unfortunately, these duplicates do not always exactly match the original profile.  In order to remove them, and thereby close the object, we need to take a few steps.

Use the boundary select tool (BKEY ) to select all of the vertices that lie along the "seam".  The white rectangle in Fig. 6 shows the vertices that must be selected.

Figure 6  [images/Spin/notes5.tga]

Press PERIOD to scale around the location of the cursor.  We'll do this to scale the selected points into a line that passes through the center of the object.

Press SKEY to start scaling.  Drag the mouse cursor vertically and press the middle mousebutton.  If done correctly, this will constrain scaling operations to the Y axis.  If not, you can MIDDLE_CLICK again to turn off the constraint and try again.

While scaling, hold down the CONTROL key to scale in 0.1 unit increments.  Scale the line of points down to 0 in the Y axis, and LEFT_CLICK to complete the scaling operation.  If you like, you can revert to the default rotation/scaling pivot by pressing COMMA when you have finished.

Remove doubles in the current selection set by pressing WKEY >>REMOVE DOUBLES.  A small box will appear saying how many points were removed.  Dismiss this box by moving the mouse, pressing ESC or by LEFT_CLICKING or RIGHT_CLICKING .

Figure 7  [images/Spin/notes6.tga]

Notice the selected vertex count before and after the "Remove Doubles" operation (Fig. 8).  If all goes well, the final vertex count (38 in this example) should match the number from Fig. 4.  If not, some vertices were missed and you will have to go and weld them manually.
To weld two vertices together, select both of them by holding SHIFT and RIGHT_CLICKING on them.  Press SKEY to start scaling and hold down CONTROL while scaling to scale the points down to 0 units in the X,Y and Z axis.  LEFT_CLICK to complete the scaling operation and click the "Remove Doubles" button in the EditButtons window.

Figure 8  [images/Spin/note8.tga]

All that remains now is to recalculate the normals by selecting all vertices and pressing CONTROL+N >>RECALC NORMALS OUTSIDE.  At this point you can leave EditMode and apply materials or smoothing, set up some lights, a camera and make a rendering.  Fig. 9 shows our wine glass in a finished state.

Figure 9  [images/Spin/final.tga]

[subsection]SpinDup

The Spin Dup tool is a great way to quickly make a series of copies of an object laid out in a circular pattern.  The "clock.blend" file on the CD-ROM contains a clock that is missing the hour marks.

Figure 1  [images/SpinDup/notes5.tga]

Select the object you wish to rotate (in this example, it is the small rectangle at the 12:00 position on the clock, indicated by the arrow in Fig. 1) and switch to the EditButtons window with F9 .  Set the number of degrees in the "Degr" NumBut to 360.  We want to make 12 copies of our object, so set the "Steps" to 12 (Fig. 2).

Figure 2  [images/SpinDup/notes1.tga]

If you want to place the cursor at the precise location of an existing object or vertex, select the object or vertex, and press SHIFT+S >>CURS->SEL.

Figure 3  [images/SpinDup/notes3.tga]

If the view you want is not visible, you can dismiss the arrow/question mark with ESC until you can switch a window to the appropriate view with the keypad

Figure 4  [images/SpinDup/notes2.tga]

When spin-duplicating an object through 360 degrees, a duplicate object is placed at the same location of the first object, producing duplicate geometry.  You will notice that after clicking the "Spin Dup" button, the original geometry remains selected.  To delete it, simply press XKEY >>VERTICES.  The source object is deleted, but the duplicated version beneath it remains (Fig. 5).

Figure 5  [images/SpinDup/notes4.tga]

The "clock.blend" file on the CD-ROM contains the rest of the clock details and lighting on layers two and three (Fig. 6).  Fig. 7 shows the final rendering of the clock.

Figure 6  [images/SpinDup/notes6.tga]

Figure 7  [images/SpinDup/final.tga]

[section]Screw

This tool starts a repetitive "Spin" with a screw-shaped revolution on the selected vertices. You can use this to create screws, springs or shell-shaped structures.

This Images shows how to make a spring...  [images/EditButtonsSpin.tga]

The method for using the "Screw" function is strict:

If there are multiple 3DWindows, the mouse cursor changes to a question mark. Click at the 3DWindow in which "Extrude" must be executed.

....and this how to make a screw.  [images/EditButtonsScrew.tga]

[section]Mesh Intersection

Mesh Intersection, often called "boolean functions", is a different way to model. The Blender way is to model around holes, but with Mesh Intersection first you do your models and then you cut holes in them.

Mesh Intersect is available in the Editbuttons, F9 . Select the faces (this means, select the vertices in EditMode which form the desired face) that need an intersection, and press this button. Blender now intersects all selected faces with each other.

  [images/CubeIco.tga]

For the best example to test this out, use an IcoSphere and a Cube. After intersection, you can select the individual parts LKEY . By removing certain parts, a user can easily obtain a boolean operation like OR, AND or XOR.

To ensure a proper intersection, it is important to follow these guidelines carefully:

[section]Noise

The noise function allows you to displace vertices in meshes based on the gray-values of a texture. That way you can generate great landscape or carve text into meshes.

  [images/Noise/SpecialSubdivide.tga]

Add a plane and subdivide it at least five times with the special menu WKEY >Subdivide. Now add a material and assign a clouds texture to it. Adjust the "NoiseSize" to 0.500. Choose white as the color for the material and black as the texture color. This, will give us good contrast for the noise operation.

Ensure that you are in EditMode and all vertices are selected, then switch to the EditButtons F9 . Press the "Noise" button several times until the landscape looks attractive. You should now remove the texture from the landscape because it will disturb the look. Now you can add some lights and do a render. Press "SetSmooth" in the EditButtons to get a smooth landscape.

  [images/Noise/NoiseZBuffer.tga]

[section]Warp Tool by Randall Rickert

The warp tool is a little-known tool in Blender, partly because it is not found in the edit buttons window, and partly because it is only useful in very specific cases. It is not something the average Blender-user will need every day.

A piece of text wrapped into a ring shape is useful in flying logos, but it would be difficult to model without the warp tool.

Add the text in top view, set "Extrude" to 0.1 and set "Bevel" to 0.01. Lower the resolution so that the vertex count will not be too high when you subdivide the object later on. Convert the object to curves, then to a mesh, because the warp tool does not work on text or on curves. Subdivide the mesh twice, so that the geometry will change shape cleanly, without artifacts.

Switch to front view and move the mesh away from the 3D cursor. This distance defines the radius of the warp. See Figure 1.

Figure 1  [images/Warp/figure_1.tga]

Place the mesh in edit mode and press SHIFT+W to activate the warp tool. Move the mouse upward to interactively define the amount of warp. See Figure 2.

Figure 2  [images/Warp/figure_2.tga]

Now you can switch to side view and rotate the ring of text to face the camera. The result is warp.blend. See Figure 3.

Figure 3  [images/Warp/figure_3.tga]

[section]S-Meshes

S-Mesh is short for Subdivision-Meshes. With any regular Mesh as a starting point, Blender can calculate a smooth subdivision on the fly, that is while modeling or while rendering. This allows high resolution Mesh modeling without the need to save and maintain vast amounts of data.

In fact, you can now work with Meshes as if it were Nurbs Surfaces, but with a more precise control and a more flexible modeling freedom.

  [images/smeshc01.tga]

  [images/smeshc03.tga]

"S-mesh" is a Mesh option. The button to activate this is in the EditButons F9 . The second button Subdiv allows you to indicate the resolution for the smooth subdivision.

  [images/SMeshButtons.tga]

Blender's subdivision system is based at the vertex normals in a Mesh. For regular Mesh modeling, it doesn't really matter how the normals point. For S-Meshes however, it is necessary to have them all pointing inside or outside consistently.

  [images/SMeshNormalsNOK.tga]

Use the CTRL+N command to make Blender recalculate the normals.

  [images/SMeshNormalsOK.tga]

In the above image, the face normals are drawn in cyan, the vertex normals are drawn in blue. You can enable drawing normals in the F9 menu as well.

Blender's S-meshes are still under development. The current system best allows for the modeling of smooth and organic shapes. Also bear in mind that a regular Mesh with square faces will give the best result.

Raptor  [images/Raptor.tga]

This cool raptor is modeled by Hiroshi Saito and is a good example of modeling organic objects with s-meshes. The file is included on the CD ( "raptor.blend" ).

[section]MetaBall

  [images/MetaBall.tga]

MetaBalls consist of spherical or tubular elements that can operate on each other's shape. You can only create round and fluid, 'mercurial' or 'clay-like' forms that exist procedurally. Use MetaBalls for special effects, or as a basis for modeling.

MetaBalls are little more than mathematical formulas that perform logical operations on one another (AND, OR), and that can be added and subtracted. This method is also called CSG, Constructive Solid Geometry. Because of its mathematical nature, CSG can be displayed well, and relatively quickly, with Ray Tracing. Because this is much too slow for interactive displays, polygonize routines were developed. The complete CSG area is then divided into a 3D grid, and for each edge in the grid a calculation is made if, and more importantly where, the formula has a turning point, a 'vertex' for the polygonize is created there.

The available quantity of CSG primitives and tools in Blender is limited. This will be developed further in future versions of Blender. The basis is already here and it is outstandingly implemented. Blender has little need for modeling systems that are optimized for Ray Tracing, even tought they are great fun to play with!

A MetaBall is displayed with the transformations of an Object and an exterior determined by the Material. Only one Material can be used here. In addition, MetaBall saves a separate texture area which normalises the coordinates of the vertices. Normally the texture area is identical to the bound box of all vertices. The user can force a texture area with the TKEY command (outside EditMode).

MetaBalls are very compact in memory and in the file. The requisite faces are only generated upon rendering. Be aware that this can take up a great deal of calculation time and memory.

[subsection]Modeling with MetaBalls

In EditMode, you can move and scale the balls or rounded tubes as you wish. This is the best way to construct static (not animated) forms. MetaBalls can also influence each other outside EditMode. Now you have much more freedom in which to work. The balls can rotate or move and they benefit from every transformation of the Parents' Objects. This method does however require more calculation time and is thus a little slower to execute.

The following rules describe the relation between MetaBall Objects:

To be able to display animated MetaBalls 'stably', it is important to first determine what Object forms the basis. If the basis moves, and the rest remains still, you will see the polygonized faces move 'through' the balls.

The "Threshold" in EditButtons is an important setting for MetaBalls. You can make the entire system more fluid, less detailed, or harder by using this option. The resolution of polygonize is also specified in EditButtons. This is the big memory consumer, however, it is released immediately after polygonize. It works more efficiently and faster with multiples, more compact 'families' of balls. Because it is slow, the polygonize is not immediately recalculated for each change. It is always recalculated after a Grab, Rotate, or Size command.


-cw- Last modified: Thu Nov 2 17:21:36 CET 2000