VEB.js (Virtual Environment based on Babylon.js) is a reconfigurable model-driven virtual environment application based on Babylon.js, a complete JavaScript framework and graphics engine for building 3D applications with HTML5 and WebGL (Web Graphics Library). Babylon.js enables to load and draw 3D objects, manage these 3D objects, create and manage special effects, play and manage spatialized sounds, create gameplays and more. Babylon.js library is free to use, thus enabling also didactic use.

Babylon.js was exploited to develop VEB.js as a reconfigurable model-driven virtual environment application.

Contact person: Walter Terkaj (CNR-STIIMA)

Hardware, OS, browser compatibility

VEB.js works on any Operating System (OS) and browser that supports WebGL. However, the use of Chrome is recommended, in particular to run animations.

No specific configuration of the hardware is needed, but it must be noted that depending on the complexity of the scene, problems (e.g. lag) might arise if using a low potential graphic processing unit (GPU); indeed, even a smartphone can be used to load basic scenes, but if the complexity of the scene increases a more powerful GPU will be needed in order to obtain optimal rendering.

How to run VEB.js remotely

It is possible to remotely access the VEB.js application if it is installed on a server. If the server is active at the address $ServerAddress, then the application can be accessed via browser at $ServerAddress/vebjs.html?inputscene=.

A demo of VEB.js is available.

Getting started

At startup the browser shows an empty scene that contains the main application functionalities.

A scene consists of a set of assets (e.g. selected from a catalog of resources) that are organized in a layout; in addition, lights and cameras (i.e. navigation point of view) are attached to a scene. After opening the empty scene page, there are two options to load an already existing scene:

  • import a scene .json file, clicking on the Import button and browsing your local file system.

  • modify the URL writing the address of scene after parameter inputscene=. The scene must be available as a .json file on a server (example) or as a graph on a RDF store.

URL Parameters

Several parameters can be set in the URL of VEB.js application.



Scene to be loaded that is defined as a .json file available on a server.


Scene to be loaded that is defined as a URI that is a graph available on a RDF store.


App configuration defined as a URI available on a server.


Environment defined as a URI available on a server. The environment specifies cameras, lights, shadow, background options.


Animation defined as a URI available on a server.


Path of the repository where the 3D models can be found. The file path of 3D models is defined relatively to repoMod3d


Path of the repository where the animation sequences can be found. The file path of animation sequences is defined relatively to repoAnim


Addess of a SPARQL endpoint of a RDF store.


Database/Dataset available on the RDF store.


Last updated