Actually, before Java3D 1.5.2, as there were several renderers, Java3D couldn't depend so strongly on JOGL, that's why it hadn't been done in the past. JCanvas3D is a kind of GLJPanel poorly implemented for Java3D, you can try to understand why it doesn't work as expected but it doesn't seem to be a trivial task in my humble opinion. I remind you that Java3D is not future proof. If you succeed in making it work with JavaFX, I'll be happy but what will be the next big problem? no compatibility with any forward compatible OpenGL profile? no Java3D under Android because of the absence of NEWT Java3D canvas?