3D Viewer doesn't work with Java8

java-8
3d-viewer
java3d
imagej
mac-os

#1

Hello

I run Fiji on Mac OS High Sierra Version 10.13.1 with Java8. Everytime I want to use the 3D-Viewer, a plain black window opens and it seems to stop loading the picture at 1%.
Can anyone help?

Thanks


#2

Hi @Oshawott,

Welcome to the forum.

Issues with the 3d viewer and java 8 are unfortunately known and common:

It’s worth checking out those threads, but @ctrueden’s recommendation above (from May) is:

For immediate results: stick with Java 6 + Java 3D 1.5

:man_shrugging:
John


#3

Thanks @bogovicj for summarizing the situation.

Unfortunately, there is one additional point: for macOS Sierra and High Sierra, there are often fatal problems with Java 6 + Java 3D 1.5 now. It seems that the OS upgrades from earlier versions remove critical pieces of the Java framework, which do not get installed into the same places when you download and install Java 6 manually on Sierra or High Sierra systems. See this thread for details.

So if your goal is to “stick with Java 6 + Java 3D 1.5” then I would also suggest not upgrading to Sierra or High Sierra. The situation is problematic enough now that I may need to pour in more development resources (myself or one of my students) early next year to make Java 8 + Java 3D 1.6 work better on the latest macOS versions.

@Oshawott Have you tried using SciView? It is still alpha quality, but built on newer technology which may work better for you.


#4

Thanks for your help! I want to try SciView, but how do i install this plugin? I´ve tried to copy paste the “SciView-master” folder in the Fiji “plugin” folder, but unfortunately Fiji does not recognize SciView.


#5

I asked @kephale about the best way to install it, but actually, there is no update site yet. We plan to remedy that at the upcoming hackathon in early December. We’ll announce as soon as an update site is available for it.


#6

Thanks for all your good work.

I wonder if your team have been able to find time to deal with this problem.

I have also, rather complacently, upgraded to High Sierra, only to find that the much valued 3D Viewer no longer works.


#7

We just released the preview version of SciView yesterday: http://sc.iview.sc . The update site is in the default list of update sites as well.

Please let us know if you have any issues!


#8

Hi, thank you very for your prompt and helpful reply. I loaded the SciView software from the default update site list. 3d viewer if working fine now. I expected to be able to use SciView directly to view 3d images, but it will not load multiple images or virtual tif stacks. Is that a concern for you?

Thank you again.


#9

Hi kephale,

I tried to run SciView for 3d stacks but obtained the messages followed,

Started application as PID 13316
Loaded Deferred Shading (Deferred Shading, with HDR postprocessing and FXAA)
Physical devices: 
  0: Nvidia GeForce GTX 1080 Ti (DiscreteGPU, driver version 397.124.0, Vulkan API 1.1.70) (selected)
Using JavaFX-based swapchain
No custom key configuration found, using default keybindings.
No custom key configuration found, using default keybindings.
Recreating Swapchain at frame 0
Creating render framebuffer GeometryBuffer for pass Scene
 + attachment NormalsMaterial, RGBA_Float16
 + attachment DiffuseAlbedo, RGBA_UInt8
 + attachment ZBuffer, Depth32
Creating render framebuffer DSSDOTemp1 for pass DSSDO
 + attachment Occlusion, RGBA_UInt8
Creating render framebuffer DSSDOTemp2 for pass DSSDOBlurV
 + attachment Occlusion, RGBA_UInt8
Creating render framebuffer DSSDOBuffer for pass DSSDOBlurH
 + attachment Occlusion, RGBA_UInt8
Creating render framebuffer ForwardBuffer for pass DeferredLighting
 + attachment Color, RGBA_Float32
Creating render framebuffer HDRBuffer for pass ForwardShading
 + attachment Color, RGBA_Float32
 + attachment Depth, Depth32
Creating render framebuffer FXAABuffer for pass HDR
 + attachment Color, RGBA_UInt8
[WARN] Shader path shaders/DSSDO.frag.spv not found within given classes, falling back to default.
Compiling shaders/DSSDO.frag to SPIR-V...
[WARN] Shader path shaders/DeferredLighting.frag.spv not found within given classes, falling back to default.
Compiling shaders/DeferredLighting.frag to SPIR-V...
Scene initialization started.
Compiling shaders/DeferredLighting.frag to SPIR-V...
Scene initialization complete.
[ERROR] Call to endCommandBuffer failed: The logical or physical device has been lost.

Please have a look at them and give me some information.
Thanks!
ching


#10

Please be aware that the preview release of SciView is version 0.1.0, a very early first alpha version. Expect many obstacles. Please feel welcome to report bugs here or on the SciView issue tracker, but it is far from ready for stable use.

I run High Sierra personally, and I have a working 3D Viewer with both Java 6 + Java3D 1.5 as well as Java 8 + Java 3D 1.6. Getting it to work with Java 6 is tricky, though—I went through it again at the recent hackathon and I plan to improve the information on the web site, but no time yet.

When you say it “no longer works”, can you be more specific?


#11

That is very reassuring to know (about High Sierra).

At present, 3D Viewer will not load more than one image. I am not sure what particular upgrade has caused this, but I will run through what I have done. Knowing that it should work is a big help. Thank you.


#12

@chin I have replicated this in Scenery and filed an issue: https://github.com/scenerygraphics/scenery/issues/169

I believe the temporary answer to this is setting the system property scenery.Renderer to OpenGLRenderer but we don’t have an easy way to do that through the interface in the preview release.


#13

Dear @ctrueden, I apologise for taking up more of your time.

I reloaded the Java8 / Java 3D 1.6 software into a new directory. I can open 3D Viewer, but it seems unable to load more than single images. If I have previously loaded an image sequence into Fiji, it recognises that it is there, but will only load the first image. If I try to open files directly with 3D Viewer, it will only open one file.

Is this a recognised problem? Many thanks

Winslow


#14

What do you mean by “more than single images”? Multiple Z positions? Multiple time points? Something else?

If you mean time points: I tested by opening the Mitosis sample image (File :arrow_forward: Open Samples menu) and then running 3D Viewer. The 51 time points are recognized, and you can animate by pressing space bar, but the animation control panel is not painted correctly upon initial load. Furthermore, on my system there is a bug where resizing the window often causes an exception (see fiji/3D_Viewer#15). The following Groovy script will kick all currently open 3D Viewer windows to redraw the animation controls:

viewers = java.awt.Window.getWindows().findAll{w -> w.getTitle().contains("3D Viewer")}
viewers.each{w -> w.setSize(new java.awt.Dimension((int) w.getWidth(), (int) (w.getHeight() - 1)))}

I am sorry I cannot fix this more properly right now.


#15

Dear @ctrueden

Thank you once again for helping.

I repeated your Mitosis example and that worked just as you described.

I am trying to view a skull bone, and so I am trying to load multiple CT slices; so its multiple Z positions that 3D Viewer is not loading.

I appreciate your time and help

Winslow


#16

@Winslow I am able to run File :arrow_forward: Open Samples :arrow_forward: T1 Head and then run Plugins :arrow_forward: 3D Viewer to visualize it as a volume in 3D.

Are you able to open the skull bone including all Z slices, into the normal 2D ImageJ viewer? You get a Z slider? If not, the issue is not with 3D Viewer, but with how the data is being imported into ImageJ.


#17

Thanks again @ctrueden.

2D imageJ viewer works fine fine, Z slider and all.

I am running OS 10.13.4 with Java8
The ImageJ version I reloaded recently is the latest Fiji version.

Kind regards

Winslow


#18

@Winslow Two more questions:

  1. Does the T1 Head sample work for you in 3D in the 3D Viewer?
  2. Are you able to share a non-working data file?

#19

Sadly, the T1 Head sample only works in the 2D Viewer. Opening 3D Viewer gets as far as the file opening options window and then loads only the first image in the file. This is what happens with the other files.

I have now found that if I save my series as a single tiff file, like the T1 Head, it does seems to load into 3D Viewer if I use the File Open command within 3D Viewer and then identify the file, but the view is so zoomed, that I can’t look at it. Using the 3D Viewer view reset commands doesn’t change this.

Even this way, I can’t load T1 Head because it is not a file that I can identify in my browser.

I can send you a data file but, given the above, I don’t think that it is a problem specific to my files.

As ever, many thanks for your interest.

Winslow


#20

Dear @ctrueden,

I have been lucky and I am pleased that the 3D Viewer is now working!!!

I am not able to program and I admit I don’t have any structured ideas about problems like these, but I placed the Java 3D jars in the Fiji jars directory and in the Java>Lib>Ext directory. I wouldn’t be surprised if you were to tell that wouldn’t make any difference, but, regardless, something woke up and 3D Viewer now loads my files.

The “hugely magnified view” I mentioned, was due to the preferences being set to ‘parallel’ view. When I changed this to ‘perspective’, I could see the 3D view of my skull bone.

I also found what you warned about; that 3D Viewer won’t tolerate a change in scale at present. It freezes Fiji altogether, the console reports a list of dislikes and I have to Force-Quit to move on.

I have really appreciated your support over the tough period when I couldn’t sort this out.

Kind regards

Winslow