NCL Resources

Nested Context Language (NCL) is an XML-based declarative language to support the development of interactive multimedia presentations. It is an ISDB-T International standard for Terrestrial Digital TV, and an ITU-T recommendation for IPTV services.

This page lists a number of resources supporting NCL.

Applications, Players and Plugins for NCL Viewing

Open Source Players:

  • Ginga-NCL Reference Implementation is the ITU-T reference NCL player mainly developed by TeleMidia Lab/PUC-Rio.
  • is a fork of Ginga-NCL Reference Implementation being developed by the Argentine Community.
  • WebNCL is a lightweight NCL presentation machine based on the Web technologies stack (HTML5/JavaScript/CSS). By using WebNCL, NCL documents can be presented in any device that has an HTML5 compatible browser, such as tablets, smartphones, smart TVs and PCs.
  • pywebncl is a Python wrapper for WebNCL which allows local reprodution of NCL documents.
  • NCL4Web is a tool for presenting NCL documents in web browsers. It translates an NCL 3.0 multimedia document into an HTM5 + JavaScript document using a XSLT Stylesheet.
  • NCLua library.

Commercial players:

Some developers trying to easy the use of the system as a whole have created Virtual Machines with everything you need already configured. It is the case of:

  • Ginga-NCL Virtual Set-top Box is a Linux-based VMWare image with including Ginga-NCL. (It looks outdated!)
  • GingaAIO FIXME is a virtual machine for execution and authoring of NCL application. Unlike Ginga-NCL Vittual Set-top Box, gingaaio also includes a graphical environment to easy the creation and execution of NCL applications.


  • ffginga is a standard compliant free software implementation of the SBTVD middleware (Ginga-NCL and Ginga-J). (It looks outdated!).
  • GingaBuild is a shell script program to install and configure a a Ginga development environment. (It looks outdated)

Authoring Support

Authoring tools

  • NCL Composer is an extensible authoring tool to support mixed (textual and visual) authoring of NCL applications.
  • NCL Eclipse is an Eclipse plugin aware of NCL syntax and elements relations.
  • ISB Designer is an authoring tool with the aim of supporting interactive storyboards. The tool can export NCL documents.
  • Cacuriá is an authoring tool suporting the creating of hypervideo-based learning objects, and that can export to NCL.
  • Berimbau iTV Author was created focused on designers and media professionals, allowing them to create interactive applications without programming knowledge. The tool is free to use (but it is not open-source).
  • Celula Authoring tool developed by INCoD focused on creating interactive content for digital TV.
  • CreaTVDigital is a tool aiming at easing the development of interactive Digital TV application by media professionals. It follows a WYSIWYG approach and does not require authors to know NCL or Lua.
  • Iris (Cpqd) is a graphical tool that allows for content producer to create interactive multimedia application without the necessity of coding.
  • Creative-NCL is a web-based tool that allows for the creation of NCL documents through visual abstractions.
  • NEXT: is an authoring tool for NCL documents using templates. It is based on plugins, where each plugin provides a different view of the document (spatial, textual and structural) or a facility for creating document parts (connector plugin). NEXT allows the author to choose a template from a template base and fill it, through a set of screens, in order to create an NCL document (available at request).
  • STEVE: is an authoring tool designed based on commercial tools for creating multimedia presentations. It allows the author to create an NCL document from its temporal view. STEVE allows creating temporal relations among media objects, including interaction relations.

Validation tools

Template-based authoring

  • LuaTPL enables Lua to be used as a template specification language in a similar way to how PHP, ASP, JSP, etc. are integrated to HTML. In special, the use of Lua as base for template specification in the scope of Ginga-NCL also allows for processing this templates in the client side, since Lua is a standard for developing iDTV applications for Ginga-NCL.
  • TAL (Template Authoring Language) is an authoring language for hypermedia document templates.
  • XTemplate: XTemplate 3.0 is a language to create composite templates for NCL. The composite templates describe, in a generic way, the behavior of an NCL context.
  • EDITEC: An authoring tool for XTemplate 3.0 templates.
  • LUAR is a framework for agile development of applications written in NCL/NCLua for Digital TV.
  • NCLForms: NCLForms aims at to provide NCL developers with a set of graphical interface widgets to easy the integration of forms into Digital TV applications.

Libraries and Frameworks

  • NCLuaHTTP: NCLua module that implements the HTTP 1.0/1.1 protocol.
  • NCLuaSOAP: NCLua module that implements the SOAP 1.1/1.2 protocol.
  • aNa (API for NCL authoring): API for representing NCL documents through Java classes. Its purpose is to help programmers creating tools that manipulate NCL code.
  • aNaa (API for NCL authoring and analysis): An extension of aNa providing methods for performing document validation.
  • NCLuaRSS-Reader: RSS feed reader for Digital TV.

Alternative syntaxes

  • JNS (JSON NCL Script): is an alternative syntax to write NCL documents. Instead of XML, JNS uses JSON. Additionally, JNS includes new features aiming at to improve reuse and easy programming. For instance, JNS allows inline declaration of descriptors, rules and regions in the document's body. (If you do not know what is descritor, rule, or region in the context of NCL language, please see the NCL Handbook).
  • sNCL (Simple NCL): is a simpler, alternative, syntax to write NCL documents.

Conversion Tools

  • Diet NCL: A tool to remove the syntactic sugar from NCL documents.
  • ppt2ncl: is a simple tool to convert PPT files into Nested Context Language (NCL) documents.
  • ncl2html: NCL Raw Profile application on your browser.
  • NCL Stereo Converter: is a lua script to convert an NCL application to its stereoscopic counterpart. The final application is ready to be shown on stereoscopic 3D displays. It allows both off-line conversion, and on-line (client-side) conversion—through an NCLua media object.
  • Lua2NCL: an Lua-based API to create NCL documents.

Books and Tutorials

NCL only:

NCLua integration:

Courses material:

Application Examples


Test suites:

Other applications:


Remote Lab - UFSC

Conheça o Brasil 4D - 12/05/14

Aplicativo Interativo Aprendiz (Rede Record)

Aplicativo Interativo Ídolos (Rede Record)

Projeto Trapezio (USP)

Minuto Digital - Ginga - 04/12/2013

Vídeo: interatividade (Ginga) na Copa do Mundo

Plataforma de TV Digital CERTI

Aplicativo Interativo Ginga: Caixa Econômica

Ciência Sem Limites - 12/05/2014 - TV Digital Interativa

Programa ao Cubo

Ginga Communities

NCL is part of the specification of Ginga middleware, the standard for terrestrial digital TV in most part of Latin America.

Here, you can find the link for some of the communities in different countries working with Ginga and NCL: