Netherlands
Joined: Feb 13, 2025
Post Count: 3
Status:
Offline
3D part not loading anymore
I created several files to redo a room and I'm suddenly unable to see the 3D part. I've been able to get it to show up once today but after that, nothing. When I start it directly from the terminal, I see this:
Java 3D: implicit antialiasing enabled Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source) at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.access$300(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D$2.componentResized(Unknown Source) at java.desktop/java.awt.AWTEventMulticaster.componentResized(Unknown Source) at java.desktop/java.awt.Component.processComponentEvent(Unknown Source) at java.desktop/java.awt.Component.processEvent(Unknown Source) at java.desktop/java.awt.Container.processEvent(Unknown Source) at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source) at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.access$300(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D$2.componentResized(Unknown Source) at java.desktop/java.awt.AWTEventMulticaster.componentResized(Unknown Source) at java.desktop/java.awt.Component.processComponentEvent(Unknown Source) at java.desktop/java.awt.Component.processEvent(Unknown Source) at java.desktop/java.awt.Container.processEvent(Unknown Source) at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source) at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.access$300(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source) at java.desktop/javax.swing.AncestorNotifier.fireAncestorAdded(Unknown Source) at java.desktop/javax.swing.AncestorNotifier.componentShown(Unknown Source) at java.desktop/java.awt.AWTEventMulticaster.componentShown(Unknown Source) at java.desktop/java.awt.AWTEventMulticaster.componentShown(Unknown Source) at java.desktop/java.awt.AWTEventMulticaster.componentShown(Unknown Source) at java.desktop/java.awt.Component.processComponentEvent(Unknown Source) at java.desktop/java.awt.Component.processEvent(Unknown Source) at java.desktop/java.awt.Container.processEvent(Unknown Source) at java.desktop/java.awt.Window.processEvent(Unknown Source) at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source) at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.access$300(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D$2.componentResized(Unknown Source) at java.desktop/java.awt.AWTEventMulticaster.componentResized(Unknown Source) at java.desktop/java.awt.Component.processComponentEvent(Unknown Source) at java.desktop/java.awt.Component.processEvent(Unknown Source) at java.desktop/java.awt.Container.processEvent(Unknown Source) at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Joined: May 18, 2021
Post Count: 254
Status:
Offline
Re: 3D part not loading anymore
Have you rebooted? It is sometimes possible for the gfx/opengl driver stack to get into a broken unrecoverable state that can only be fixed with a full reboot.
Netherlands
Joined: Feb 13, 2025
Post Count: 3
Status:
Offline
Re: 3D part not loading anymore
I have now rebooted, but that's not working.
glxinfo | grep OpenGL
OpenGL vendor string: Intel OpenGL renderer string: Mesa Intel(R) HD Graphics 630 (KBL GT2) OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.3.4-arch1.1 OpenGL core profile shading language version string: 4.60 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.3.4-arch1.1 OpenGL shading language version string: 4.60 OpenGL context flags: (none) OpenGL profile mask: compatibility profile OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.3.4-arch1.1 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 OpenGL ES profile extensions:
journalctl -p err -b
Feb 14 10:40:58 kernel: x86/cpu: SGX disabled by BIOS. Feb 14 10:41:07 rsyslogd[878]: $WorkDirectory: /var/spool/rsyslog can not be accessed, probably does not exist - directive ign> Feb 14 10:41:08 kernel: CIFS: VFS: Error connecting to socket. Aborting operation. Feb 14 10:41:08 kernel: CIFS: VFS: cifs_mount failed w/return code = -101 Feb 14 10:41:08 kernel: CIFS: VFS: Error connecting to socket. Aborting operation. Feb 14 10:41:08 kernel: CIFS: VFS: cifs_mount failed w/return code = -101 Feb 14 10:41:11 dbus-broker-launch[1407]: Ignoring duplicate name 'org.freedesktop.Notifications' in service file '/usr/share/> Feb 14 10:41:11 dbus-broker-launch[1407]: Ignoring duplicate name 'org.freedesktop.FileManager1' in service file '/usr/share//> Feb 14 10:41:11 dbus-broker-launch[1407]: Ignoring duplicate name 'org.freedesktop.Notifications' in service file '/usr/share/> Feb 14 10:41:15 lightdm[1462]: gkr-pam: unable to locate daemon control file Feb 14 10:41:15 dbus-broker-launch[1509]: Ignoring duplicate name 'org.freedesktop.Notifications' in service file '/usr/share/> Feb 14 10:41:15 dbus-broker-launch[1509]: Ignoring duplicate name 'org.freedesktop.FileManager1' in service file '/usr/share//> Feb 14 10:41:15 dbus-broker-launch[1509]: Ignoring duplicate name 'org.freedesktop.Notifications' in service file '/usr/share/>
Joined: May 18, 2021
Post Count: 254
Status:
Offline
Re: 3D part not loading anymore
Do you know which version of java and java3d you are using?
Try both
SweetHome3D
and
SweetHome3D-Java3D-1_5_2
to launch from the command line. Does one of those work?
Check that SweetHome3D is using the included java runtime, and that it hasn't had a packager innocently trying to use the system installed version of java. (Depends on how SH3D was installed.) Examine the
SweetHome3D
script, and check the PROGRAM_DIR variable is resolving to the included runtime java executable.
Netherlands
Joined: Feb 13, 2025
Post Count: 3
Status:
Offline
Re: 3D part not loading anymore
That send me into a bit of a rabbit hole. Turns out that for a reason I don't understand, sweethome3d from the repository automatically installs jre11-openjdk 11.0.26-u4-1. After tinkering with it, I was able to fix the problem by forcing sweethome3d to use jdk-openjdk 23.0.2.u7-1 by changing the desktop entry to this:
[Desktop Entry] Version=1.0 Type=Application Name=Sweet Home 3D Comment=An interior design application Exec=env JAVA_HOME=/usr/lib/jvm/java-23-openjdk SWEETHOME3D_JAVA3D=1.6 sweethome3d Icon=sweethome3d Categories=Office;Java; StartupWMClass=com-eteks-sweethome3d-SweetHome3D MimeType=application/x-sweethome3d
Joined: May 18, 2021
Post Count: 254
Status:
Offline
Re: 3D part not loading anymore
Don't take offense if I'm dumbing this down too far, just trying to edumacate ya!
If you get SH3D direct from the Download link, it includes it's own java that is known to work pretty reliably.
If you are installing SH3D from your distribution, they will strip out things that they think are wasteful. i.e. If every application includes their own java runtime, that's a lot of bloat. So in packaging the app for the distribution they strip out software components that they already have a version of, and make the component a dependency of the app.
Most of the time, this is fine. However Java + OpenGL + Gfx drivers on Linux seems to be quite fragile. Hence why in this particular case it would be better if distro packagers didn't faff around with the packaging. This tendency is why I only use the package provided on the SH3D site.