JavaScript HTML GLSL CSS
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
assets
builds
docs
lib
src
tests
.gitattributes
.gitignore
.hgignore
LICENSE
README.md
build.js
dependencies.json
index.html
package.json
viewer.html

README.md

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

http://cg.urusai.net/frak/

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/