Skip to content
Web based NCL presentation machine
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


WebNCL is a NCL (Nested Context Language) presentation machine developed on top of Web technologies stack (HTML5/JavaScript/CSS). It allows the execution of NCL Documents in any device which has a HTML5-compatible browser, such as PC, Tablets, Smartphones and Smart TVs.

You can download a pre-compiled version of the WebNCL code here.



To build the minified version of the code, you will need the closure compiler and a java-vm.

After you get the closure, just do (Linux/Mac):

$ make CLOSURE_COMPILER=/path/to/closure/compiler.jar


Embedding NCL documents

To embed the NCL document into a web-page, see the sample.html, sample-dev.html or sample-min.html. To use the virtual remove control, see the sample-control.html.

See the WebNCL API page for more details.

Running Examples

Because of the Same Origin Policy present in many modern browsers, it may be necessary to have a local web-server to execute NCL documents locally.

Any web server will work; for instance, you can run Python's built-in server:

$ python -m SimpleHTTPServer 8888 &

Once the server is running, go to http://localhost:8888/ and select sample.html (or other samples)

Compatibility Issues


Given that the different browsers can support different audio/video formats, WebNCL implements a alternative media source format mechanism. If your NCL uses a video file named "video1.mp4", the WebNCL will try to use "video1".webm and "video1".ogg if the browser does not support h264 videos. The same goes for audio ('mp3' and 'ogg' formats).

It is a good practice to add a version of audio/video files for each different format if you wish your NCL can be present in all compatible browsers.

Support NCL Documents

Not all the NCL tags are implemented. Also, there is some functionalities that works only for some browsers. For a discussion of compatibility with NCL documents, see the Compatibily Issues page.

Running Lua Scripts

To run lua scripts it may necessary to preload images used by the canvas API. Also, some Lua constructions are not fully supported by the WebNCL. For a discussion about running Lua Scripts and NCLua API. see the Lua Compatibily page.


v0.3 - Outlandish

  • Support for player property and other player selection mechanisms
  • Added textual anchors support
  • Added spacial anchors support for images
  • Temporal anchors now support hh:mm:ss format
  • Media synchronization mechanism enhanced
  • Contexts now detect natural ends, resumes and pauses
  • NCL settings node management enhanced
  • Lua API (event, canvas, persistent) fully implemented
  • Remove Control now is integrated with the project
  • Images now are defined in the CSS for a better integration with dynamic pages
  • New examples added
  • Several bugs related to media management fixed

For older versions see the changelog page.


You can use the issues to report bugs or to ask questions to the developers.

To develop new players, see the Media Page Interface page.

You can’t perform that action at this time.