FRAK WebGL Engine
FRAK engine is a JavaScript library/API for creating interactive 3D applications using WebGL. The purpose of the library is to provide a framework for simplifying the creation of complex interactive 3D applications.
FRAK engine was developed by 3D Technologies R&D for 3D Wayfinder. 3D Wayfinder is a floor plan visualization and content management platform, mainly used for wayfinding applications.
Features
- Deferred renderer
- requires WEBGL_draw_buffers
- Order-independent transparency (paper)
- Real-time shadows
- Dynamic textures
- Post-processing pipeline
- includes FXAA and SSAO implementations
- Unicode fonts
- Collision detection
- Currently supports ray-intersection tests only
- Collision trees need to be pre-generated by an external tool
- Input: supports both keyboard+mouse and touch configurations
- Automatic resource caching
- Automatic loading of related resources
- Supported assets:
- Shaders: GLSL
- Textures: JPEG, PNG
- Models: Custom binary data format, JSON
- Fonts: Canvas text API
Examples
Architecture
The scene graph is a tree made up of instances of Node (or EmptyNode, if no spacial positioning is desired). Each node can contain any number of Component instances. The function of a Component class is not limited. For example it can act as an input controller (Controller) or as a billboard (Billboard) or simply as each node's relative transformation in the scene hierarchy (Transform).
More examples of component implementations can be seen under src/scene/components/