Original author(s) | Roberto González DomĂnguez |
---|---|
Initial release | February 3, 2011 |
Written in | JavaScript |
Type | JavaScript library |
License | MIT License |
Website | stormcolour |
StormEngineC is a free and open-source 3D graphics library written in JavaScript that uses various HTML5 features such as WebGL, WebCL, and WebSockets. The library provides a way to load objects in the OBJ or Collada format and adds them to physical simulations.
Examples of Use
- Ball game machine
- WebGL Cornell Box
- 3D urbanization
- Reservoir machines
- 3D edification
- Sibenik cathedral
- Rocket turbine
Features
The library provides several features to support the creation of physical simulations. These include:
- Real-time visualization of 3D scenes through WebGL
- Sun and spot lights
- Shadow mapping
- SSAO
- Load of objects on .obj format or Collada (.DAE)
- Physical system integrated through JigLib2
- Keyframe animation
- Option for enable edit menus
- Multiplayer utilities using Node.js
- Path Tracing render using the WebCL Nokia Extension
- Render farm option for path tracing render using Node.js
Usage
The basic source code for initializing a small scene in StormEngineC:
<script src="js/StormEngineC/StormEngineC.class.js"></script>
<canvas id="example" width="1024" height="512"></canvas>
<script>
stormEngineC.createWebGL({'target': 'example',
'editMode': true});
var node = stormEngineC.createNode();
node.loadObj({'objUrl': 'resources/obj/cornellbox.obj'});
</script>
History
StormEngineC was developed to display 3D scenes in the web browser and to enable a physical system with gravity and collisions for objects.
It appeared in the first public specification of WebGL, written in Java and called StormEngineJ. It was later ported to JavaScript which benefitted other 3D visualization methods in a web browser. For example, JavaScript does not require extra plug-ins for viewing.
The first version of the library was published on Google Code in February 2011. At the moment, there has not been offered a stable version of this.
Version 1.2 introduced a rendering system based on path tracing and optionally can be used as render farm, as well as some facilities for starting up a game server using Node.js.