Simplex3d Engine has been uploaded to the SVN.
Today Simplex3d project is celebrating its’ second birthday. The project has starter as a simple math library and now it has become an engine. The engine sub-project has been under development for about six month. All the bases have been covered but there are many features that need to be added.
The engine is specifically designed around working with GLSL shaders and will not work with fixed-functionality hardware. The initial release of the engine will be targeting OpenGL 2.1.
Completed Engine Features
Core
- Modular design to allow custom components
- Change tracking to propagate updates automatically
- Multithreading to speed up some tasks
- Easy to use input framework
Scene-graph
- Pluggable transformations
- Controllers and animators
- Hierarchical environment propagation (for lights and other effects)
- Auto-computed or custom bounding volumes
- Frustum culling
- Geometry instancing
Renderer
- Flexible VBOs and textures based on Data Binding API
- Updates to VBOs and textures are propagated to the OpengGL automatically
- Mapping between Scala objects and GLSL structs
- Support for nested structs and arrays
Upcoming Features
- Automated GLSL program selection based on defined material properties
- Pluggable effect architecture to allow 3rd party shader effects
- Pass manager to allow multipass rendering
- 1D, 3D, and cube textures
- Support for more texture data formats
- LOD Nodes and Portals
- Resource loading framework to allow pluggable model and texture loaders
There are few examples at the moment. As the engine gets closer to the release I will start adding examples and demos to the Webstart Scala Console.
Hi, just wanted to let you know that i really appreciate your work. I follow it silently since i read about your experiments with javafx and jogl. It was the place where i first heard about scala by the way. I am not an experienced programmer, but a graphics enthusiast, and also attracted by the intelligent design of the scala language. I am very glad that with your work there is a shader based graphics engine available for scala and really look forward to digg deeper into the language by playing and experimenting with your code. So, thank you, and hopefully i get experienced enough some day to contribute back.
Hi!
Thanks for all your work on this project, which looks very promising! I’m writing a discrete-event simulation library in Scala and I’m looking for a 3D library to provide the animation. Java3D seems to be dead and Jogl is a little too low-level for what I’m looking for, so Simplex3D could fit the bill perfectly!
I haven’t looked into your code in too much detail right now (although I plan to), but I wonder whether you could answer the following questions:
1. What 3D libraries and other technologies does Simplex3D depend upon? Just curious…
2. Do you have any plans to provide access to Simplex3D through Maven repositories?
Best Regards,
Mike
Hi Mike,
Thank you for considering Simplex3D. To answer your questions:
1. Simplex3D uses LWJGL (http://lwjgl.org/) for OpenGL, window handling and input, and OpenAL.
Simplex3D relies on two core libraries that are well polished, fully tested and can be used independently of the 3D engine. These are vector math library and data binding library. They have no dependencies.
2. I will eventually put the project into Maven repositories, but due to the time constraints this will not happen for a very long time.
Hi Lex,
Thanks for your quick reply! I’ll spend the weekend playing around with Simplex3D. Do you have a quick-start guide available, or can you point me to a a simple animation I can use as a reference? In any case, I’ll check your test programs…
As for releasing the code to a Maven repository, I could volunteer to do that for you. It seems that LWJPL is in the central Maven repository, so that should be straightforward enough. When you mention “vectory math library” is that the Java3D vecmath library? If so, that’s available in Maven too – but only the ancient 1.3.1 release. Which version are you using?
Best Regards,
Mike
Hi Lex,
I guess I misunderstood – the vector math and data binding libraries you referred to are both an integral part of Simplex3D, right? Sorry for the confusion! That should make it even easier to implement Simplex3D in Maven…
Best Regards,
Mike
Hi Mike,
Yes, the core libraries are the part of the Simplex3D project.
I am still working out module boundaries and packaging layout for the 3D engine and the supporting libraries. There can be no maven integration until those issues are resolved.