Skip to content

gingaf: A Cross-Platform Architecture to Execute Ginga-NCL and Ginga-HTML5 Applications

Alan L. V. Guedes
University of Reading
Paulo Victor Borges
PUC-Rio
Daniel Moraes
PUC-Rio
Sergio Colcher
PUC-Rio
WebMedia 2026

Abstract

The Ginga middleware, alongside its Ginga-NCL and Ginga-HTML5 subsystems, is an international standard for interactive digital television defined by the ITU-T/SBTDVD and used TV in Brazil and several Latin American countries. It reaches over 60 million people. However, traditional Ginga development tools rely on heavy, platform-specific C++ implementations, creating a steep barrier to entry for developers. This paper presents gingaf, a Ginga architecture support running both Ginga-NCL and Ginga-HTML5 applications directly from web browser, mobile or desktop. By decoupling the headless NCL state from the user interface, gingaf allows developers to execute synchronization logic deterministically while rendering seamlessly via pure Web HTML/JS. We present the extended architecture supporting imperative subsystems, including a pure Dart Lua interpreter (lua_dardo) translating canvas instructions, and a cross-platform HTML player that intercepts network requests via fetch overloading for Ginga-CCWebservices. This architecture does not require any native browser plugins, paving the way for web-based Ginga playgrounds and interactive debugging environments.

Selected Applications


NCL with basic links (video.ncl)

NCL with videos grid (video_grid.ncl)

NCL embedded with NCL (emb_ncl.ncl)

NCL with focus navigation and selection (focus_nav.ncl)

NCL with lua canvas drawing and keys (lua_canvas.ncl)

HTML with CCWS /current-service/ (current_service.html)

NCL with embedded HTML document (emb_html.ncl)

NCL with multi-user profile switching and targeted advertising (multiuser_profile/main.ncl)

Multi-platform Demos


Windows

Android

Chrome

CLI (headless execution)

Citation

@inproceedings{webmedia,
 author = {Alan L. V. Guedes and Paulo Victor Borges and Daniel Moraes and Sergio Colcher},
 title = { gingaf: A Cross-Platform Architecture to Execute Ginga-NCL and Ginga-HTML5 Applications},
 booktitle = {Proceedings of the 32nd Brazilian Symposium on Multimedia and the Web},
 location = {Lavras/MG},
 year = {2026},
 keywords = {},
 issn = {0000-0000},
 pages = {254--261},
 publisher = {SBC},
 address = {Porto Alegre, RS, Brasil},
 doi = {10.5753/webmedia.2026.30538},
 url = {https://sol.sbc.org.br/index.php/webmedia/article/view/46098}
}