The Extremely Simple 3D Rendering Engine is just that, lightweight and simple enough for mere humans to peruse and wrap their brain around, especially if just getting started with 3D. Its core is only 700 lines of what I think of nicely documented Java source, which is inside the .jar file (treat it as a .zip file). The Ant build.xml file is in there, too, so one tiny little .jar file contains about all you need to get started. Running the .jar file as-is will produce an interactive window of what you see in the side image.
XS3D renders any combination of points, edges, and surfaces. Points are rendered (regardless of distance from the viewer) as small, gray spheres; Lines and surfaces have color; Surfaces are filled solid, and ignore their normals (they're visible from the front and the back). Depth-sorting goes by objects, not pixels: When any part of an element (a point, any point of a line, or any line of a surface) falls behind the viewer then the entire element is not rendered.
So why XS3D, isn't there better stuff out there already, like Irrlicht, JMonkeyEngine, or even the venerable Java3D?! You're right, all of these blow XS3D clear out of the water in terms of features, but they have one thing in common: They're big (by comparison) and a lot more complicated to use and understand. They're certainly not as accessible as a mere 700 lines of Java code when it comes to trying to learn what goes into 3D projection. So have a go…
Dec 25, 2012: Shows a multi-colored cube now, with one face toggling visibility. Can separately select (some) vertices and edges, as well as all faces. Selected faces are slightly transparent. Ctrl-L resets the view. Many internal improvements to make the code more a springboard for something greater.
Feb 10, 2013: The Ringlord Technologies Extremely Simple Java 3D Engine is hosted at GitHub. It is best if you get it from there!
|Description:||An extremely simple 3D rendering engine|
|License:||GNU General Public License (GPL) v3 (Free as in Speech)|
|Launch (shell):||java -jar xs3d.jar|
All content is copyright © Ringlord Technologies unless otherwise stated. We do encourage deep linking to our site's pages but forbid direct reference to images, software or other non-page resources stored here; likewise, do not embed our content in frames or other constructs that may mislead the reader about the content ownership. Play nice, yes?