I chose to learn WebGL and programmed a small library inspired from Java 3D (see scene3d.js and This is one of the reasons why I didn't use an existing 3D library like Three.js when I ported Sweet Home 3D to JavaScript. LWJGL is a Java library that provides access to native APIs used in the development of graphics (OpenGL), audio (OpenAL) and parallel computing (OpenCL). In other words, one of the most basic things a 3D engine has to do is, given the (x, y, z) coordinates of a point in space, find the 2D coordinates (x, y) where that point should be on your screen. This access is direct and high-performance, yet also wrapped in a type-safe and user-friendly layer, appropriate for the Java ecosystem. was inspired by the scene graph engine described in 3D Game Engine Design. LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio and parallel computing applications. keeping a 3D API very similar to Java 3D API, but changing its implementation with more direct calls to OpenGL through JOGL and keeping only parts needed by Sweet Home 3D. It includes links to JOGL, LWJGL, Java 3D, GL4Java, and a few older projects. It would require a lot of time, and even once you reached a working solution, you might have some bugs difficult to fix.Īnother solution could be to program a half replacement, i.e. Jz圓d - An easy to use Java API for 3d charts (surfaces, scatters, bar charts, etc). Replacing Java 3D by an other library is similar to the quest of finding a better rendering engine than SunFlow. Unity is a multi-platform game engine that allows you to create interactive 3D content with ease. High Level (Not designed for gaming) Processing - Doesnt seem suited for gaming but for graphics visualizations and demos.