Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » GEF3D » Using Java3D
Using Java3D [message #1020] Mon, 25 August 2008 06:58 Go to next message
Eclipse UserFriend
Originally posted by: abheek.adarobotics.com

Greetings!

My name is Abheek and I have been working with GEF for quite some time
now. My company is into design and development of software for robotic
systems which also includes simulation and 3d modeling.

GEF3D is of significant interest to us and we would like to get involved.

However, it would be interesting for us to know if we can use Java3D as
the 3D component, since this also gives us an ability to add external
libraries like ODEJava and JRoboOp.

I see from the GEF3D website, that the Java3D version of GEF3D is no
longer in development. Are there any special reasons apart from SWING /
SWT issues?

Thanks a tonne!
Cheers!

Abheek
Re: Using Java3D [message #1055 is a reply to message #1020] Mon, 25 August 2008 13:28 Go to previous messageGo to next message
Jens von Pilgrim is currently offline Jens von PilgrimFriend
Messages: 313
Registered: July 2009
Senior Member
> However, it would be interesting for us to know if we can use Java3D as
> the 3D component, since this also gives us an ability to add external
> libraries like ODEJava and JRoboOp.
>
> I see from the GEF3D website, that the Java3D version of GEF3D is no
> longer in development. Are there any special reasons apart from SWING /
> SWT issues?

The SWING/SWT issue is a very hard one: Swing components "produce"
Swing events, which made it impossible to use the original GEF code
since GEF's mouse classes have no public constructors and thus it was
not possible to "inject" these Swing events into GEF. Also, the
SWING-SWT-bridge isn't working on Mac OS X (which is my main
development platform).

Besides these issues I had severe memory problems with Java3D: I wasn't
able to create diagrams with more than 50 3D nodes. I analyzed the
system with a profiler, and more than 90% of the memory were used by
Java3D. I don't know why Java3D needed that much memory. I mapped 3D
figures on nodes in the scene graph, and this mapping was not too
simple. So probably my programming was the reason, but on the other I
(still) don't know how I could had made it better. IMHO the problem is
that Java3D is very good for visualization and restricted interactions,
but not for a full-featured editor. In the later case, the scene graph
cannot be optimized since all nodes must be editable.

It's planed to make GEF more independent from the actual rendering
engine used, but I doubt that Java3D will be a good replacement (for
LWJGL or some other OpenGL wrapper). Java3D comes with its own data
structure (the scene graph), and since GEF/GEF3D provides its own
structure (the figure tree), there always would be some redundancy.
Besides you will still face the SWT-Swing issue (and the event class
design flaw).

On the other hand it may be possible to port ODEJava or JRoboOp to
GEF3D ;-) But I'm not sure whether this makes sense or not (I'm not a
robotic expert). GEF3D is _not_ a CAD framework, and it probably isn't
a framework for 3D modelers (like Blender)! As GEF it is specialized
for visualizing (end editing) graph like structures! There's some
overhead for each tiny thing which should be edited, and in many cases
this may be too much overhead.
But GEF3D's figures (IFigure3D extending IFigure) uses OpenGL to
actually render the image. So if you can provide an importer for your
3D modeling tool, you may be able to map some of the 3D models to
figures. You can then work with larger components, i.e. the figures,
and then GEF3D may become interesting again.

Frankly, I have no experiences with this kind of 3D tools. GEF3D was
developed with other applications in mind, so there may be some design
problems if you try to use GEF3D for that kind of stuff (and bugs I
don't know about yet since I'm not using GEF3D that way). Although I
would be curious if it works, but I have to warn you that GEF3D may not
be the best choice.

Cheers,

Jens
Re: Using Java3D [message #1083 is a reply to message #1055] Mon, 25 August 2008 14:11 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: abheek.adarobotics.com

Dear Jens,

Thanks for the detailed insights on using Java3D. There seems to be a
significant issue on using Java3D then.

I would still like to get involved with the project and see if I can
contribute some valuable additions

I have signed up for this newsletter and hope to be in touch!

Cheers!
Abheek
Re: Using Java3D [message #1218 is a reply to message #1083] Tue, 26 August 2008 08:26 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: regenmacher.online.de

Besides technical notes discussed - there are some licensing problems for
Java3D to become a "valid" third party code contribution to an
eclipse-project under eclipse.org umbrella.

Java3D is "mixed"-licensed. j3d-core-utils and j3d-examples are
BSD-licensed, but j3d-core and vecmath are GPL-licensed. So Java3D will not
become an official third party code in an official eclipse-project on
eclipse.org

michael
Re: Using Java3D [message #560743 is a reply to message #1020] Mon, 25 August 2008 13:28 Go to previous messageGo to next message
Jens von Pilgrim is currently offline Jens von PilgrimFriend
Messages: 313
Registered: July 2009
Senior Member
> However, it would be interesting for us to know if we can use Java3D as
> the 3D component, since this also gives us an ability to add external
> libraries like ODEJava and JRoboOp.
>
> I see from the GEF3D website, that the Java3D version of GEF3D is no
> longer in development. Are there any special reasons apart from SWING /
> SWT issues?

The SWING/SWT issue is a very hard one: Swing components "produce"
Swing events, which made it impossible to use the original GEF code
since GEF's mouse classes have no public constructors and thus it was
not possible to "inject" these Swing events into GEF. Also, the
SWING-SWT-bridge isn't working on Mac OS X (which is my main
development platform).

Besides these issues I had severe memory problems with Java3D: I wasn't
able to create diagrams with more than 50 3D nodes. I analyzed the
system with a profiler, and more than 90% of the memory were used by
Java3D. I don't know why Java3D needed that much memory. I mapped 3D
figures on nodes in the scene graph, and this mapping was not too
simple. So probably my programming was the reason, but on the other I
(still) don't know how I could had made it better. IMHO the problem is
that Java3D is very good for visualization and restricted interactions,
but not for a full-featured editor. In the later case, the scene graph
cannot be optimized since all nodes must be editable.

It's planed to make GEF more independent from the actual rendering
engine used, but I doubt that Java3D will be a good replacement (for
LWJGL or some other OpenGL wrapper). Java3D comes with its own data
structure (the scene graph), and since GEF/GEF3D provides its own
structure (the figure tree), there always would be some redundancy.
Besides you will still face the SWT-Swing issue (and the event class
design flaw).

On the other hand it may be possible to port ODEJava or JRoboOp to
GEF3D ;-) But I'm not sure whether this makes sense or not (I'm not a
robotic expert). GEF3D is _not_ a CAD framework, and it probably isn't
a framework for 3D modelers (like Blender)! As GEF it is specialized
for visualizing (end editing) graph like structures! There's some
overhead for each tiny thing which should be edited, and in many cases
this may be too much overhead.
But GEF3D's figures (IFigure3D extending IFigure) uses OpenGL to
actually render the image. So if you can provide an importer for your
3D modeling tool, you may be able to map some of the 3D models to
figures. You can then work with larger components, i.e. the figures,
and then GEF3D may become interesting again.

Frankly, I have no experiences with this kind of 3D tools. GEF3D was
developed with other applications in mind, so there may be some design
problems if you try to use GEF3D for that kind of stuff (and bugs I
don't know about yet since I'm not using GEF3D that way). Although I
would be curious if it works, but I have to warn you that GEF3D may not
be the best choice.

Cheers,

Jens
Re: Using Java3D [message #560750 is a reply to message #1055] Mon, 25 August 2008 14:11 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: abheek.adarobotics.com

Dear Jens,

Thanks for the detailed insights on using Java3D. There seems to be a
significant issue on using Java3D then.

I would still like to get involved with the project and see if I can
contribute some valuable additions

I have signed up for this newsletter and hope to be in touch!

Cheers!
Abheek
Re: Using Java3D [message #560799 is a reply to message #1083] Tue, 26 August 2008 08:26 Go to previous messageGo to next message
Michael Strothjohann is currently offline Michael StrothjohannFriend
Messages: 52
Registered: July 2009
Member
Besides technical notes discussed - there are some licensing problems for
Java3D to become a "valid" third party code contribution to an
eclipse-project under eclipse.org umbrella.

Java3D is "mixed"-licensed. j3d-core-utils and j3d-examples are
BSD-licensed, but j3d-core and vecmath are GPL-licensed. So Java3D will not
become an official third party code in an official eclipse-project on
eclipse.org

michael
Re: In AGR While Creating Datapool, "Link to Datapool" is not visible [message #1788160] Wed, 30 May 2018 16:06 Go to previous message
Eclipse UserFriend
1
Previous Topic:news.eclipse.org is shutting down.
Next Topic:This Forum has ben ARCHIVED
Goto Forum:
  


Current Time: Sat Apr 20 04:02:03 GMT 2024

Powered by FUDForum. Page generated in 0.04000 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top