DICOM 3d display - Java 3D vs VTK - java

I'm going to work on implementing 3d display of dicom files and I'm wondering which technologies is easier to use: Java 3D or VTK?
I'm not very experienced programmer,but I've already created a DICOM viewer based on dcm4che open source library.
Any hints or experiences to share?

Most of my 3D modeling is Optical Coherence Tomography data that tends to be rather large. My experience has been a little backwards. The project started as a C++ project using x64 VTK and Qt. Folks in the lab weren't C++ people, so it got converted to Java which is used through Matlab, which the lab post-docs know.
Java VTK is really easy to use and has a lot of features, but I'm having some trouble with registering callback events for buttons and such with will be a deal breaker if it can't get resolved. This problem might dramatically effect how the UI is done, so keep that in mind.
Most of the C++ examples tend to convert to Java really quickly (except callbacks >.< ) so there is a plethora of examples. If you are going to use VTK, I highly recommend "The VTK User's Guide" by Kitware, Inc (ISBN: 978-1-930934-23-8), as it is an excellent overview of the API.
Good luck!

Related

Plotting dense 3D point clouds ( or mesh) in java

I am gonna be writing java code to plot 3D point clouds. Someone suggested me to go for java 3D libraries however it is apparently dead (this reference) and not apparently good idea go to with JMonkey either (same reference).
That link was posted in 2009 and we are in 2012.
All I want to do is to plot a dense 3D point cloud, say 5 million points, and to be able to rotate it / or zoom in real-time. I know the algorithms for rendering and stuff however I need a set of 3D java library with active community and support ( if any).
Please consider Desktop and also Web applications while suggesting me the solution.
Thanks a lot
and not apparently good idea go to with JMonkey either (same reference)
What you reference there is more than three years old, ancient in terms of technology.
jME has come back in a big way since then. jME3 is it an extraordinarily stable beta with Android support, improved physics support (both JBullet as well as a native wrapper), an SDK with scene editor, lots of user-contributed plugins, and an extremely active community.
There are a number of successful games making use of it as well, most notably Mythruna and 3079.
What you're looking to do is easily accomplished in jME and we'd invite you to come on over and try it out. http://jmonkeyengine.org
Not a scenegraph, but LWJGL offers an easy wrapper around OpenGL, so you could quite easily construct a list of quads to represent your points and setup/modify a view to display and rotate them depending on user input.
This should work in applets also to cover your web targets.
jzy3d
is what you are looking for.
Jzy3d is an open source (BSD) java library that allows a rapid display
of 3d scientific data, either surfaces, scatter plots, bar charts, and
lot of other 3d primitives. The API provides support for rich
interactive charts, with colorbars, tooltips and overlays. Axis and
chart layout can be fully customized and enhanced.
I would use JavaFX for this. It is already included in JDK 8 and the project is well alive.
Contrary to LWJGL, there is more and better documentation. Also LWJGL being a thin wrapper, will force you to learn OpenGL as soon as you need to do any transformation, and that will take you some time.
Jzy3d is a higher level API but the tutorial is not free.
JME3 is overkill and, as long as my limited experience with it taught me, you'll need to use Blender to create the model (I might be wrong).
There is a lot of documentation for JavaFX online. If you don't mind buying a book, "JavaFX for Dummies" is quite good, although basic.

2d Multimedia Library on the JVM

I'm searching for a rich 2d multimedia framework that's meant to be used with the JVM
There's SDL and SFML for C and C++.
I've used Pygame with Python. It's very productive.
XNA is great, too.
What about the JVM ? I know that there's a wrapper around SDL http://sdljava.sourceforge.net/ but since the last entry on the homepages newsfeed dates back to 2005 it doesn't feel particularly alive.
Basically what I'm looking for is a hardware accelerated 2d canvas for the JVM that is backed with a neat framework.
I know that C, C++ and even Python (to some extent) can be considered low-level languages. Java on the other hand abstracts over the hardware. Therefore what I'm searching for is not it's "natural territory". Nevertheless http://lwjgl.org/ is a great example of what is possible in Java.
Googling brought up this interesting project http://libgdx.badlogicgames.com/ . Have you used it ? Do you know alternatives ? Please note: I'd like to use Scala, not Java. Therefore the stress on JVM and not just Java.
Have you already looked at JavaFX 2.0?
Rendering engine is based on prism, which supports hardware and software rendering (this means it will use either DirectX or OpenGL or Java 2D depending on what's available). You can find more information about it's architecture here:
JavaFX Architecture and Framework
It uses Scene Graph in order to define things you want to render. Here you can find small introduction:
Working with the JavaFX Scene Graph
Scalafx project provides Scala bindings for JavaFX 2.0.
If you want something that works use http://lwjgl.org/ from scala.

starting Java 3D

i wanna know what is the best way to start coding a simple 3D ... (with java)
like a man walking around ... i know it's not so easy , but i believe it's not impossible :D
so .. is there a recommended tutorial or something???
Two suggestions:
Start with something like jMonkeyEngine. Lots of great tutorials on their site using their scenegraph API. It's where you want to end up eventually anyway, IMHO.
NeHe Productions: OpenGL Tutorials. These are great because they give you a lot of OpenGL info and instructions. Note that all the code in the tutorial is C however, at the bottom of the tutorials are links to ports of the code to various platforms and languages, including Java.
You could start with Java 3D API or Java OpenGL (JOGL).
I think, if you want something like OpenGL then you should consider about JOGL
The best way to start is to find out a good and free 3d game engine. You should know something about 3d graphics: basic transformation, how to work with matrices (specially multiply order), etc.
I can recommend you Lightweight Java Game Library, Ogre3D for Java or even jMonkeyEngine. Later you can try to use OpenGL directly - its easy to learn, multiplatform 3D graphics library.
For better understanding of the scene graph-based and Java3D programming I recommend you to read this tutorial. It helps me very much

Java (2D) animation library

I'm creating (for a semester project) a Java desktop application. The aim is to provide a rich and intuitive user interface. I'm now looking for Java cross-platform library that works with Swing and provides animations (moving, resizing, rotation, color/alpha change and other 2D stuff).
Basically, I'm looking for an equivalent of CoreAnimation in the JavaWorld.
I found Trident, but have no experience with it and no development seems to have taken place since mid-2010.
Does anyone of you have experience with Trident or can recommend a library that fits what I need?
Hi
I have no deep knowledge of this but I had a look at trident a year ago and it looked well designed, feature complete and stable.
I would go with that one if you find nothing better. You have to browse the blog of Kiril at pushingpixels.org to get some additional good examples.
Have fun,
- Rossi
Use libgdx awesome library!!

Tool to create 3d programs

As we know that we can use NetBeans for creating Swing programs (with drag and drop the code for each part of Swing will be written automatically)
Is there any software that help us write Java 3d code without writing code manually?
I don't think there's anything out there like that for almost any languages. The problem is... what exactly are you creating? With swing you know you are making a GUI for a certain set of applications but with 3D, the applications are endless. The only thing out there are APIs to help with your job. If you are an animator or game maker there are plenty of game engines to help you out.
Widening your question slightly if what you're looking for is a more productive 3D java environment (rather than Java 3D itself) then Demicron's WireFusion is worth a look. It's Java based and the higher-end versions allow pretty comprehensive access to the underlying engine so you can effectively extend it to do nearly anything.
I've used it for a project or two and I highly recommend it, the only issue is it's ridiculously expensive - in fact jaw-drop'ingly so.

Categories

Resources