29 August 2005
mjbWorld 6.00. update to java version which now uses Java5 (JRE1.5 or JDK1.5). This has many bug fixes and better type checking by using generics and enums.
28 July 2004
C++ version of mjbWorld put on sourceforge. The conversion work has been done by slimb, this version is not yet stable as he has not yet fully debugged it.
28 July 2004
new project started- kontent - Local Content Management System, version Alpha 0.1 here.
10 July 2004
new project started- xes - XML encoded source - program to encode source code, version Alpha 0.1 here.
24 March 2004
- Mesh simplification implemented, when indexed face set is selected, the tool window now has an option for mesh simplification to reduce polygon count.
- H-anim generator now generates model depending on parameters set in h-anim dialog (see parameters here). The model may take several tens of minutes to be generated. Needs some improvement, for example mesh reduction in face is too high compared to rest.
Here is a list of all the classes that have changed.
28 February 2004
- bug fixes in 2D window
- Tools added, including reflect in x,y or z axis and reverse winding.
- Work started on HAnim generator.
Here is a list of all the classes that have changed.
17 January 2004
- Various bug fixes
- More improvements to picking
- HAnim nodes added
- Some fixes to Kinematics node and animation
Here is a list of all the classes that have changed.
5 December 2003
- More impovements to picking and selection, it still needs a few more changes though.
- Background colour works
- quickshape now also works for c# version
Here is a list of all the classes that have changed.
18 November 2003
Some bug fixes to 3D window
- Improved picking (selection) using mouse in 3D window.
- If more than one 3D window is present then each window can have a different view.
- tidied up code, removed 2 classes.
Here is a list of all the classes that have changed.
29 October 2003
- C# version now uses CsGL instead of my own OpenGL wrapper. Information about CsGL is here.
- Changed animation loop to run in a seperate thread as described here.
20 August 2003
- Java version now uses JOGL instead of Java3D. So there is now no need to download Java3D in order to run the program.
- Fix the 3 bugs reported by MUFTI.
JOGL is a thin wrapper for OpenGL, it allows OpenGL to be called from Java. Unlike Java3d it does not have code for modelling the scenegraph so mjbWorld now has to do all that itself. This means that some things, such as textures, wont be seen in the 3D window until I can implement them fully within the program. The advantage of this change is that you are not forced to do the Java3D download and install in order to run the program.
For more information about JOGL see https://jogl.dev.java.net/source/browse/jogl/doc/userguide/
5 August 2003
I am using a new domain http://www.euclideanspace.com in addition to the original domain http://www.martinb.com. It does not matter which one you use, its just for the following technical reasons: my traffic started to go beyond the 3gb per month limit and my old host was a 'legacy account' and they would not give me a smooth way to cutover to an account which allowed more traffic. I therefore found it easier to start a new account with a new web host and a new domain name, I plan to keep the two going in parallel and to split the traffic between them. If I need to change to a new host in the future this should make it easier.
19 May 2003
Version 5.16 .NET version issued.
Improvements to user interface.
10 March 2003
Version 5.15 version issued.
Java version Changes
1) now loads xml/x3d files using SAX package. I have decided not to use DOM. For more information about the issues here
.Net version changes
1) Improvements to xml/x3d loading similar to Java version.
2) now supplied as a .msi file which installs the program.
2 January 2003
Version 5.14 version issued.
Java version Changes
- Move window added - Icons to select between translate, rotate, zoom, etc. have been moved from ICON bar to here. This window not only allows you to select between these modes, but when the mouse is dragged from one of these buttons the camera will be moved. If the mouse is dragged in the 3D window than the selected object will be moved as usual.
- Fix bug with export to Java for IFS.
- Preparation for DOM interface, this is not fully implemented in this release, I hope it will be by the next release. However its partial implementation in this release means that the program will now only work with Java version 1.4 or later.
- Included Main-Class: mjbWorld/mjbWorld in MANIFEST.MF file as suggested
by Bertil.
20 August 2002
Version 5.13 version issued.Version 5.13 - bug fixes
Java version Changes
- Fix bug with exporting to C or java code
- small change to explicitly specify UTF8 character encoding when reading file
.NET version changes
- implement picking in 3D view
2 August 2002
Version 5.12 of .NET version issued.
- About box now works.
- tools view bug fixed, for instance, allows geometry to be converted to indexed face set.
- Bugs with normal generation fixed.
- Fixed bugs with entering values into sffloat, sfint32 and sfbool variables in parameter view.
- Selected node is outlined in 3D view.
- Changes to lights affect 3D view.
Still a lot of bugs in the .NET version, but I'm gradually working through them
25 July 2002
Version 5.12 of Java version issued.
- Rewrite ExampleFileFilter and rename to fileType, to ensure code is free.
- Fixed bug which corrupted coordinate values when reading OBJ files.
- Changed code which reads file to speed up file reading and harmonise with .NET version. No longer uses StringTokenizer.
.NET version to follow.
17 July 2002
I have added a .NET version of the program. This uses a similar structure and user interface to the Java version, although the source code for the two versions are not dependent on each other in any way, so you can choose one and ignore the other. The NET version is not yet fully debugged, it is written in managed C++, I have put it online in case anyone can help me develop it.
24 June 2002
I have started to change the Web pages, from being frames based, to having a navigation banner on each page. While I am changing over, some pages may have two banners, sorry about that. Hopefully, when I've finished, navigation of the site should be easier, especially for people who reach the site from a search engine rather than from the home page.
15 June 2002
Amazon links added - Until now I have resisted banner adverts, but links to relevant books and software could be useful to people and it is not too obtrusive.
22 March 2002
Version 5.11 issued.
- Rewind and Step functions now work with timeSensor
- Fix a bug in Kinematics node
- Changed way that nodes are highlighted in 3d window when selected.
- Ability to graphically edit shape nodes in 3d window
- Fix bug in NavigationInfo type field
- Fix bug when MFString is saved to X3D
5 February 2002
Version 5.10 issued.
- Change the internal format of the way that data is stored, change the way that Fields are stored.
- This improves ability to switch between data which is loaded/saved and entered to the program and dynamic data which is set by events.
- When exiting program, cancel option added.
- Image in texture bean can now be changed by editing URL or by selecting image in dialog. Image now displayed in property window.
- Fixed bugs in CoordinateInterpolator
21 November 2001
I have put the source code on SourceForge
27 October 2001
Version 5.09 issued.
General bug fix release
- Fix bug Cylinder and Cone are now displayed correctly in 2D window, also transform group now has correct effect on shapes in 2D window.
- Fix bug so that parameter definitions can be added to PROTO.
- Fix bug which causes Java3D scene graph to be initialised twice on loading.
- Fix bug which stopped animated PROTOs such as h-anim joint from working
- Fix bug which only allowed PROTO calls to be under group node
- Fix bug which caused an error if SFString started with quote (") then rest of string was on next line
- Fix bug where LOD node did not load properly
- Fix some bugs with extrusionBean
4th September 2001
Version 5.08 issued.
Fixes some of the bugs that Rolf found as follows:
>batchfile included in the downloaded zip file
I have changed the jdk1.3 batchfile as you suggested. (I find the distribution
issues with java3d very difficult, I would like to find a way to distribute
the program which is easier for users who are not familiar with java and classpaths
etc.)
>galleon.obj
I have fixed a bug in the program, previously files with normal coordinates,
but not texture coordinates, was not read correctly.
>Canvas3D: GraphicConfiguration is not compatible with Canvas3D
I have changed the program so that it does not generate this error.
>warning: setTextureCoordinates(int,float[]) in javax.media.j3d.GeometryArray
>has been deprecated
I have not changed this yet (these are only warnings and will not stop the program
running). The problem is that if I change this then it will not be backwards
compatible with Java3D 1.1.
> a blank white frame was opened
There was a bug which is now fixed where, if a 3D window is not open, when an
export to Java3d is done, then a viewplatform would not be generated. There
was also another bug with Java3d export of IndexedFaceSet which got introduced
recently and is now fixed.
25 August 2001
Version 5.07 issued.
- This fixes a bug, created in the previous version, where nodes which have been pasted or dragged may be missing when the file is saved.
- I have also made a lot of improvements to the 2D view. However there is still a lot of work still to be done on 2D views, as only indexedFaceSet and Box geometry types are displayed properly, also I want to allow 2D views to be usable to accurately position nodes, vertexes, lights and cameras
25 August 2001
Version 5.06 issued.
- Displays layout window at startup.
- Starts 3d display when file has been loaded.
- changes to DEF / USE to make sure a file which uses these is saved correctly.
- changes to ROUTE to save correctly
- changes to PROTO to fix bugs with SFNode and MFNode.
12 August 2001
Version 5.05 issued.
- Changes to user interface- now uses Sun ICONS, and changes to editing parameters.
- Changes to 2d nodes.
- Changes to blobs.
- Changes to PROTOs, improvements to how SFNode is handled.
27 July 2001
Version 5.04 issued.
- Improvements to display of Indexed face Set, now uses Java3d utility classes.
- Fixes a bug where some strings were not saved with quotes (")
- Loads files from network
- Loads compressed files (zip and gzip)
1 July 2001
Version 5.03 issued.
Here is another version, this time I have made some improvements to ImageTexture
The program now checks each string in MFString url, for each of these strings
the program tries it:
1) as an absolute file path
2) relative to the current users working directory.
3) relative to the last directory used by a load or save file dialog in mjbWorld.
In other words, it tries each of these for the first string, then for the second
string, and so on.
As soon as it finds a valid file it loads that as a texture.
In the test that I have done works OK, however there are some issues about the way that it displays, Java3D expects the width and height of the texture field to be a power of 2 (2,4,8,16,32...) so currently the program clips the dimension to the nearest power. Also I think the mapping may be different because in mjbWorld_logo the texture only appears on one side of the sphere, therefore there may be some differences between Java3D and VRML. Therefore more work is needed on the texture node.
30 June 2001
Version 5.02 issued.
I have put version 5.02 on the website with the following changes:
- I have fixed a problem where some MF... parameters including MFColor did not read single values not inside [] brackets. This is what was causing the problem when reading background node. (when writing single values these parameters always use [] brackets, do you think I should not output brackets for single values, also unnecessary trailing comma?).
- I have split the Save menu option into separate Save, SaveAs and SaveEvents menu options, so all those extra questions have now been removed.
- I have made the directory commands independent of the OS. Things like C:/ are no longer embedded in the code, instead it picks up the current working directory from the system properties.
- I have stopped the misleading error message: shape3dBean.buildRenderGraph java.lang.NullPointerException, although textures still do NOT work.
26 June 2001
Version 5.01 issued.
- Allows parameter name to be prefixed with 'set_' when events are ROUTEed
to it. - No longer allows editing of node name directly in tree window.
- Fix bug when SFNode is defined in a PROTO (previously h-anim PROTOs
generated errors)
20 June 2001
Version 5.00 issued.
- Big rewrite which changes the way that VRML parameters are stored. This is a better architecture and it allows more of the code to be shared in nodeBean rather than being distributed in all the other classes.
20 April 2001
Version 4.00 issued.
- Changed to GNU license
- allows each parameter to have multiple values..
15 Mar 2001
Version 3.33 issued. fixes bugs reported by MUFTI,
- inline node URL parameter now has quote (") symbols.
- texture node URL parameter now displayed properly
- when exporting C code, C comments are now used /* ... */ as opposed to C++ format // ...
12 Mar 2001
Version 3.32 issued. Changes are:
- 2D view added
- 2D shapes adde
- Support for extrusion
8 October 2000
Version 3.31 issued. Changes are:
- Fixed bug in duplicate command
- Fixed bug in setting parameters on shapes
3 October 2000
Version 3.30 issued. Changes are:
- Updated to allow new physics simulation nodes to export to Java Source.
19 Sept 2000
Version 3.29 issued. Changes are:
- new nodes added for physics simulation and games generation
- improvements to user interface
4 June 2000
Version 3.28 issued. Changes are:
- Improvements to C source code export
29 May 2000
Version 3.27 issued. Changes are:
- Generates C source code
21 May 2000
Version 3.26 issued. Changes are:
- Improvements to generation of Normals
7 May 2000
Version 3.25 issued. Changes are:
- Improvements to Java3D source code output
14 Apr 2000
Version 3.16 issued.
incorporating feedback from Tobin,
* 1st time go to open file dialog and select .wrl. Open a file. Now go to open
file dialog again and .wrl should be default, but it's not
- In release 3.16 I've made 'wrl' the default for open and save, in the next
release it will remember if you use something different.
* 'Export java3d source' file menu option opens file dialog bug does not default
to .java extension
- fixed in release 3.16
* Click 'export java3d source' menu option, then hit cancel, throws exception
"mjbFrame.writeJava error: java.lang.NullPointerException"
- fixed in release 3.16
* When you click on a folder, file dialog should say "open" and not
"save"--misleads user
- I dont see this with the version of JDK that I'm using, I've changed it to
explicitly request 'open' rather than relying on open to be the default - does
this fix it?
* file extension is not auto-added to filename, user must type it
- fixed in release 3.16
* Loading a file twice corrupts the existing scene graph instead of closing
previous file and opening new file
- fixed in release 3.16
* Have the filename visible somewhere on the interface--along top frame bar
- fixed in release 3.16
* Add a "close file" option to the file menu
- fixed in release 3.16
* when doing java export, need to use mjbOutput.java as filename.
- no change in this release, I am planning to make classname change to match
the filename in a future release.
* compiler warning that setTextureCoordinates and setTextureCoordinateIndices
are deprecated.
- no change in this release, I will update to follow latest java3d spec at a
future release.
* File compiled but would not run with error "Exception in thread "main"
java.lang.NoClassDefFoundError: mjbOutput (wrong name : mjbOutput/mjbOutput)
- I'll look into this.
* Keep losing my 3d view when I add new components. I Just tried removing the
background from shape.wrl and then adding a new background in its place, and
the 3D view is then shot.
- I cant reproduce this, can you give me more information on the version of
JDK and Java3d that you are using, and exactly what you did.
4 Apr 2000
Version 3.14 issued. Changes are:
- drag'n'drop of beans to and from tree view
- many bug fixes
7 Mar 2000
Version 3.13 issued. Changes are:
- some buttons moved to internal frames
28 Feb 2000
Version 3.12 issued. Changes are:
- Uses MDI interface to allow different windows to be arranged on the viewing area.
- Changes to the method of inserting new nodes into the scene (see here).
- New naming convention for classes, all bean names end in 'Bean', also 'BeanInfo' classes added (see here)
1 Jan 2000
Improved documentation, including A-Z index and theory section
30 Nov 1999
Version beta 3.11 issued. Introduced Blob which implements non-rigid shapes.
23 Nov 1999
Version beta 3.10 issued. Improvements to read faster.
26 July 1999
Version beta 3.08 issued. General improvements to behaviors, Mesh editor now works properly, try selecting mesh editor for indexed face set.
19 July 1999
Version beta 3.07 issued. A version with JPython scripting
24 June 1999
Version beta 3.06 issued. Added file menu to save to X3D format. Also fix to bug when switching to 2 pane screen.
9 June 1999
Version beta 3.05 issued. Tidy up code for mfcolor and colorBean.
8 June 1999
Animating a hand tutorial added
7 June 1999
Version beta 3.04 issued. Improved Save file - prompts when program closed and now saves timeSensor, Route properly.
1 June 1999
Version beta 3.03 issued. bug fix - draws box correct size.
28 May 1999
Version beta 3.02 issued. If numeric parameters are longer than the text field you now see the most significant digits.
26 May 1999
Version beta 3.01 issued. Bug fix with dragging node + improvements to graphics
24 May 1999
Version beta 3.00 issued. Now displays Tree pane, Properties pane and 3D canvas at the same time.
17 May 1999
Version beta 2.04 issued. Changes made for Java3D 1.1.1 - required j3dutil.jar to be in classpath
14 May 1999
Version beta 2.03 issued. Supports TimeSensor and Interpolators
5 May 1999
Version beta 2.01 issued. Improved reading of VRML2 files, It should be a lot more resilient now, There is still more work to do specially on PROTOs and behaviors, but it should now read most files, I would appreciate copies or links to any VRML2 files that don't work properly to help me fix remaining bugs.
13 April1999
Version beta 2.00 issued. I have split off the core functionality into a separate bean (mjbModel) Not many changes to mjbWorld itself but, if you don't want the full program, you have an alternative to use the bean in your own program
5 March 1999
Version beta 1.02 issued. This includes the following Improvements.
- Graphically deforming an object by dragging a corner now works properly.
- Sphere improved, uses fewer vertexes for same resolution.
- Convert to Indexed Face Set (IFS) option available on Menu
- Converted the program into two packages, mjbWorld and mjbModel. This is in preparation for future enhancements, it should not make any difference as they are both distributed in the same JAR file.
21 Feb 1999
Version beta 1.01 issued. This contains large improvements to all input/output and graphical editing.6 Feb 1999
New import/export options as follows:
| file type | extension | read / import support | write / export support |
| VRML 2 | .wrl | yes | yes |
| Wavefront | .obj | yes | yes |
| Java3d Source | .java | no | yes |
| MetaCreations | .vtx | yes | no |
To use different file types just use the normal Open or Save dialog. The filetype will depend only on the filename extension (ie the characters following the dot) that you use.
19 Jan 1999
Can now load '.OBJ' files - Just hit the Open/Load button/menu as for a VRML file. In the file dialog, if you select a file with a .OBJ extension it will be assumed to be a Wavefront OBJ file.
Improved the way that that mouse drags work, now work correctly, even when under transform groups.
Can now move the slider between the Tree and Canvas3d (Thanks to Mitch for letting me know about it and sending me the fix). Still not quite right, sometimes the east-west cursor does not disappear. We believe this is due to putting a heavyweight control (Canvas3d) inside a lightweight control.
8 Jan 1999
Fixed problems with tree control, insert, cut, paste, etc. now work properly.
Also geometry information now displayed in JTable control.
Also many other fixes and improvements.
9 Dec 1998
Tested using Java3D 1.1 (final). Works fine, no changes required.
7 Dec 1998
program modified for JDK1.2 (final). This involved a change of location for the Swing classes from
com\sun\java\swing
to
javax\swing
24 Nov 1998
fixed bugs in mouse movement.4 Nov 1998
- version 2 now available, includes, textures, ability to stretch objects, backgrounds and many new features and bug fixes.
- Source code removed because I have not received any feedback.
- Programmers Guide updated.
8 Sept 1998
- Proposal added for extensions to VRML.
21 Aug 1998
10 Aug 1998
7 Aug 1998 - Comparison of Publicly available Java/VRML editors
6 Aug 1998 - Support for Java3D beta 1
- mjbWorld modified to support Java3D beta 1, This was done to allow behaviourMouse to be manually woken up. Java3D Beta 1 now only allows wakupOn to be called from Initialise or ProcessStimulus. I have now modified it to use WakeupOnBehaviorPost instead.

