Contents

"White_dune", what's that ?

White_dune is a graphical VRML97 editor, simple (NURBS) 3D modeller and animationtool in development. It can read VRML97 files, display and let the user change the scenegraph, fields and routes. This can be used to improve or make VRML97 3D-worlds, animations and interactions.
The modelling features of white_dune are not strong enough (yet), to use it alone. It makes sense, to let it work together with a 3D modelling tool with static VRML97 export (like for example wings3D oder Art Of Illusion).
In difference to most 3D modelling tools the lightning/coloring and the interal structure of white_dune is based on the VRML97 standard.

"White_dune" crashed, work lost ?

White_dune is work in development and it is not as stable as it should be.

If white_dune crashed, is your work lost ?

No not automatically !

"White_dune" will try to save the VRML97 file short before crash. This is not always successful e.g. when the error which caused the crash destroyed the internal data structure. If the file is written sucessfully, white_dune will write under Unix/Linux something like

   Internal Crash !
   Try to save Files
  attempt to write file to /home/someone/.dune_crash_NUMBER_NUMBER.wrl
  write sucessful
to standard error of the starting window and to system console (eg. to the window of the xconsole application).
Under M$Windows you get (possibly after clicking "ignore") a similar Messagebox

When you restart white_dune and use the file menu, you should see the filename of this .dune_crash file.

Just click to it and save to another file.
This Method can fail, if the error that led to crash has damaged the internal data structure of the program.
In this case it is worth to search in directory of VRML-files for temporary files (".dune_*"), that are produced during the execution of File->Preview or File->Textedit.
These Files will be deleted at a normal program end, but not in case of a program crash.
For example if the program crashs immediately after changing or creating the ECMAscript part of a scriptnode in a texteditor, after the file with the ECMAscript program was written, this file is still part in the filesystem. You can find this file (via name and creation date) and reuse the content per cut and paste.

Starting "White_dune" with foreign menues

White_dune can be started with menues in foreign languages.
For example, to start white_dune with the german language, the commandlineoption "-german" must be used.
Cause it is not very usefull, always to type in a commandline, this can be done with a shellscript (Linux/UNIX/MacOSX) or batchfile (Micro$oft Windows.
If you can not find a matching file (e.g. germandune for the german language), you can create one (e.g. for the german language) with the commandlines:

For MacOSX you must modify in the file white_dune.app/Contents/MacOS/dunestarter the lines with the options for the program start:
   DUNEOPTIONS=" "
   export DUNEOPTIONS
and add e.g. the -german option for the german language:
   DUNEOPTIONS="-german "
   export DUNEOPTIONS
For other exotic UNIX desktops you will find similar options in the following files If you are interested to translate the white_dune menus and errormessages into a new foreign language (no programming skills required), please read the step by step instructions about localisation in the developer documentation.

What "white_dune" can not do/can do

You can find some typical VRML examples (you can load into white_dune) here, but take care about the fact, this examples do not show modelling or animation features, they show mainly VRML97 examples about interaction and scripting. These are features, which can be not shown in white_dune directly (yet).
The examples are the start base to build interactive 3D worlds with white_dune, which are used later with a "real" VRML browser.

What is scenegraph, fieldvalues, routes etc. about ?

White_dune is a lowlevel tool to make/change VRML97 Files. It is supposed, the user knows the basic structure of VRML97.
You can find detailed technical information about VRML97 in the official ISO specification at http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1 . For the use of white_dune, especially the node reference http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1/part1/nodesRef.html is important.
A good, simple tutorial about VRML97 for beginners you can find (beside in a range of books) at http://web3d.vapourtech.com/tutorials/vrml97/.

The 5 windows of "white_dune"


Beside some toolbars with icons and messages "white_dune" essentially contains 5 windows. Beside the "3D Preview" window you can switch on/switch off this windows via the menu "View". Switch on/off this windows, when they match your current work status.

Navigation

To navigate in the 3D Preview Window, you have two differ between different walk modes.

Additional you have from version 0.16 a SGI like navigation. Please note, that a misconfigured windowmanager can eat up all mouse input, that uses the Alt key.... When a 6D inputdevice is active and the Scene icon is selected in the Scene Tree you can navigate depending on the transform icons in the VRML file.

Changing the scenegraph

The most simple way to change the scenegraph is to add new node by clicking to the matching VRML node icon.
To identify a VRML node icon, move the mouse to it and wait. A descriptive text will occure in the status bar at the bottom of the white_dune window.
White_dune tries either to include the new node at the point of selection in the scenegraph,

or to the root of the scenegraph ("Scene" icon).
White_dune will gray out all node icons, that are impossible to add.


The following table shows the requirements for this nodes in the VRML97 standard:

For example a Appearence node need to be selected, to include a ImageTexture node, or a Shape node need to be selected to include a Appearence node.
All of the matching node fields in the VRML97 are of type SFNode, therefore only one node can be inserted. A icon is also grayed, if there is already a matching node.
For example you can not include two ImageTexture Nodes to a Appearence node. Therefore the ImageTexture is also grayed, if a Appearence node is selected, but a ImageTexture node is already there.
According to the VRML97 Standard the shape nodes Box, Sphere, Cone, Cylinder, IndexedFaceSet, IndexedLineSet, PointSet, ElevationGrid, Extrusion and Text need a Shape node. In most cases, the needed structure for the usage of this Shape.geometry nodes is clear. Therefor the click on the icons and the usage of the Create -> Shape -> menuitems build a complete Shape-structure (including a surrounding Transform node).
(New in Version 0.29beta) If the selection in case of a creation of such a node is not a node a Shape node can be part of, the surrounding Transform node is filled in a way, that the new node is shown directly in front of the actual viewpoint.

The commands Edit -> copy, Edit -> paste and Edit -> delete work similar to the same commands in many programs. If the last mouseclick was in the Scene Tree, they can be used to change the scenegraph as expected.

A unusual command is the Edit -gt; copy branch to root command. It copies all nodes along the path to the root of the current scenegraph branch into the paste buffer. This can be very handy, if you need to double and split a scenegraph branch.

Another way to change the scenegraph is to drag parts of it with the mouse.
White_dune will show you with a icon of a stop sign, if the target node is not possible

If the target node is possible, white_dune will show the normal mousepointer.

The target is not possible, if there are multiple SF/MFNode fields of the target node.

Nodes with multiple fields of type SF/MFNode (e.g. the collision node) always display the field names in the scenetree (despite a opposite setting in the Options -> Preferences dialog), so you can use the field names as targets in this case.

Similar to the local copy/move in the explorer program of M$Windows2000 and similar filemanagers it is possible to change the behaviour, if the keyboard is used when the mouse is still dragged:

Using USE

(new in Version 0.29beta)
Beside the drag and drop method above, there is a additional way to use the USE construct. The USE construct is something like a undistinctable pointer, the reuse of a already existing node. The node to be USEd need a DEF name which can be applied with Edit -> DEF. The usage of Edit -> USE (if possible) adds a new USE of the last DEFd node at the point of the selected node.
If you change the DEFd node, the USEd node is changed as well.
If you change the USEd node, the DEFd node is changed as well.
In white_dune (unlike when using a text editor on a VRML97 file), you can legally delete the DEFd node. The first written formerly USEd node becomes the new DEFd node, cause the DEF/USE construct is about undistinctable pointers.
Using USE is useful for keeping VRML files small (faster downloadable), increases maintainabilty and can be used to for faster rendering by a smart VRML browser.
Additional commands, that can create USE constructs are the array tool and some of the "create" scenegraph operations following.

Scenegraph Operations

(new in Version 0.27beta)
There is no way to move multiple nodes in the scenegraph (yet). As a workaround there are operations which can be applied to all nodes in the scenegraph branch following the selection (including the selection itself).

The are commands available via Actions -> Rest of scenegraph branch: Unfortunatly some of these operations are (still) very slow.

Input/erase of ROUTEs

In white_dune, there are two different settings, which drive the way to insert a ROUTE.

ROUTEs are made in white_dune by finding the right icon in the RouteView Window (if you click to the icons, the matching icon in the scene tree windows is selected (using Route -gt; Move node to top can be usefull) and click to the boxes of the matching events. The name of the matching event is shown, and you can draw a line to the next icon/event.

As required by the VRML standard, only events with the same type (same color of boxes) can be connected.
To erase ROUTEs, simply cut the line.

As a sugestion for beginners, some event boxes are marked with a small red point. The red point marks a important/often used event.
Of course the importance/usage of events differ with the task of your VRML world. All sensor nodes (the original source of most eventprocessing) have event boxes with red points.

In complex VRML worlds with a lot of objects (for example the VRML export from a 3D-Modelling program like Wings3D, Blender, AOI, Catia, 3D Studio Max, Maya etc.) it can be difficult to find the wanted VRML nodes in the RouteView window.

There are operations to jump to the selected node (with Routes -> Unzoom/jump to selection )

or zoom out of the Routeview (with Routes -> Zoom out)

but in such cases, the usage of the Inline VRML node is recommended. It can be used to put static objects (for example parts of the environment or parts of rigid shapes) in their own VRML files. In result the complete VRML world can only consist of very few VRML nodes.

Commands with automatic generation of ROUTEs
There are two commands to automatically generate new ROUTEs.

Changing fieldvalues

There is more than one way to change fieldvalues:

Simplified scriptbuilding (new in Version 0.22beta)

Before you can use the scripteditor dialog, you need plan what are the datatypes and eventIn/eventOut informations of the nodes you want to connect. To do this, you need to read the node description of the VRML standard (e.g. you can use the menuitem Help -> name of currently selected Node or use a advanced book).
For fast experimenting, you may find it more convenient to use a simplified scriptbuilding method.
Create a new "empty" scriptnode with the "Script" icon (or the menuitem Create -> Programming -> Script).
Following the "get out of the way!" philosophy of the orginal dune project, simply press "OK" on the scripteditor dialog (see above).
Now you can use the RouteView window for further work.



Scriptnodes have a special "connect anything" eventOut. If you click and drag this with the mouse, a white route will be drawn.



Keep the mousebutton pressed while routing and you see (like "normal" routing), you can connect this route to eventIns of other nodes,



but (unlike "normal" routing) the color of the route (marking the datatype) can change with the probed eventIn.



When you release the mousebutton, the route will be established.



In a similar way, you can use the special "connect anything" eventIn of the scriptnode



and connect it to a eventOut of a other node.



Now you need to edit the "url" field of the script node. Beside using urledit you can also select the script node in the SceneTree window, the "url" field in the FieldView.



and press the "Object Edit" icon (or use the menuitem Actions -> Object edit).



Now "white_dune" will try to start a external editor - UNIX die-hards use "xterm -e vi", this is the default under Linux/UNIX ("xedit" for MacOSX, "edit" for M$Windows) if $WINEDITOR was not set at first run. You can change the editor with the Options -> Texteditor Settings ... menuitem.
In the editor window, you will see a schema of the needed javascript code.
Use Options -> ECMAscript settings to control, if you want extended comments in the schema.



Use the editor to complete the javascript code and save/quit the editor - in case of the vi editor use the keystrokes :wq

NURBS Modelling (partitially new in Version 0.25beta)

Superformula Modelling (new in Version 0.27beta)