Activities: EJSApp

Maintained by Picture of Ruben Heradio Ruben Heradio, Picture of Luis de la Torre Luis de la Torre
This plugin lets you add any Java or Javascript application (typically virtual and/or remote experiments) created with Easy Java(script) Simulations (EJS) to your Moodle course.
210 sites
12 fans

Virtual and Remote Laboratories



It is commonly accepted that digital media (such as simulations, videos, interactive screen experiments or web labs) can positively impact student knowledge, skills and attitudes. Consequently, tools such as Moodle and web-based labs have become widespread in distance education in the last decade. Moodle supports the administration, documentation, tracking, and reporting of training programs, classroom and online events. Web-based labs make possible to illustrate scientific phenomena that require costly or difficult-to-assemble equipment.


There are two complementary approaches for web-based labs:


  1. Virtual Labs or Experiments provide computer based simulations which offer similar views and ways of work to their traditional counterparts. Nowadays, simulations have evolved into interactive graphical user interfaces where students can manipulate the experiment parameters and explore its evolution.
  2. Remote Labs or Experiments use real plants and physical devices which are teleoperated in real time.



Easy Java(script) Simulations (EJS, is a tool designed for the creation of discrete computer simulations. During the last few years, EJS has grown for helping to create web-accessible labs in education of scientific and technical disciplines. With this objective in mind, recent releases of EJS support connections with external applications, such as LabView and Matlab/Simulink. Hence, EJS not only is useful to create virtual labs, but also the GUIs of their remote counterparts.

A rich repository of EJS simulations is freely available at:

EJSApp: bridging together Moodle and EJS

To support the one-click deployment of virtual and remote labs into Moodle, we have developed the EJSApp plugin, which has the following features:

  1. Deployment of labs written in EJS. 
  2. Control user access to the deployed labs and distinguish between virtual labs (or simulations) and remote labs.
  3. Allow several resizing options for displaying the embedded applets.
  4. Backup and restore. EJSApp provides maintenance facilities for labs, packaging them into Moodle course backups.

To get the feel of EJSApp, visit UNILabs, which is a moodle site that hosts a rich network of virtual and remote labs for students of the Spanish Open University (UNED) and other Spanish Universities, such as the Huelva, Complutense and Almeria Universities. All labs in UNILabs have been developed using the EJSApp and its extensions (EJSApp "private files" browserEJSApp Booking SystemEJSApp Collab Session and the Open Source Physics repository plugin).


The code repository of this plugin can be found at


Tutorial Videos

Overview of EJSApp

Guide to install and use EJSApp and EJSApp File Browser

Overview of Open Source Physics, a free repository with more than 400 freely available EJS simulations

Overview of UNEDLabs, a network of virtual and remote laboratories developed with EJSApp


This plugin is part of set EJSApp and extensions.


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5


Picture of Ruben Heradio
Ruben Heradio (Lead maintainer)
Picture of Luis de la Torre
Luis de la Torre: Author
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Luis de la Torre
    Mon, 1 Jul 2013, 1:57 PM
    Hi Aparup,

    You can open the EJS model (this is, the "source code") of the jar file included in the test directory by just double-clicking in the jar file (the simulation will load) and then right-clicking at any place of the simulation. A menu will appear with several options.

    If that menu is in english search for the "Open EJS model" option. If it is in Spanish, search for "Abrir modelo EJS".

    Then follow the instructions and EJS will open the source code of that jar file. Let me know if you have any problem.

    PS. Usually, all applets created with EJS have this option but some of them don't. Anyway, the one included in the test directory does.
  • Picture of Luis de la Torre
    Thu, 27 Feb 2014, 7:18 PM
    Hi all,

    Since EJSApp version 1.6 was released two days ago, you can also embedd into your Moodle course the javascript applications created with EJS 5.0
  • Picture of Luis de la Torre
    Mon, 21 Apr 2014, 6:09 PM
    Version 1.7 has been released.

    EJSApp can now automatically sign the EJS applets uploaded to Moodle if you have a trust certificate installed in your Moodle server.
  • Picture of Luis de la Torre
    Sun, 14 Dec 2014, 9:53 PM
    Version 1.8 is out.

    Fixes an important bug when doing a copy or a backup of ejsapp activities that use a signed applet.

    Fixes a bug with some OSP Javascript simulations.

    The 'view personalized variables' options has been moved to the 'edit settings' block.

    Several code improvements.
  • Picture of Luis de la Torre
    Tue, 24 Mar 2015, 6:20 AM
    Version 2.0 is out.

    It allows using alias to your virtual and remote laboratories .jar (Java) or .zip (Javascript) files compiled with EjsS.

    Also, it enhances the personalization of variables in virtual laboratories by allowing teachers to download the values generated for the variables of the lab that are being personalized.

    Finally, it has a cleaner and more optimized code in many aspects.
  • Picture of Andreas Schenkel
    Mon, 29 May 2017, 1:57 AM
    Does not work in firefox 53 because javaplugin is not supported. How can I use this moodle-plugin? Any hints?
  • Picture of Luis de la Torre
    Mon, 29 May 2017, 7:10 PM
    Dear Andreas,

    The latest versions of EJSApp offer a solution for this problem by:
    1. Deploying the Java applet through the Java Network Launch Protocol (JNLP) as a desktop application instead as a web browser-embedded applet.
    2. Allowing to embed Javascript simulations created with EJS.
  • Picture of Luis de la Torre
    Sun, 4 Jun 2017, 12:02 AM
    I forgot to mention, Andreas, that even if you deploy the applet through JNLP (as EJSApp does now), you need to sign your applet with a valid trust certificate. Otherwise, the applet won't be load by the JRE.
  • Picture of Luis de la Torre
    Thu, 6 Jul 2017, 9:00 PM
    A new version of EJSApp has been released. This one includes support for blockly and chart.js.

    On the one hand, blockly enables a complete new way of interacting with the simulations, virtual labs and remote labs. Combining visual programming with interactive applications is extremelly interesting and powerful.

    On the other hand, users can now define and plot their own graphs on demand thanks to the use of the javascript Chart.js library.
  • Picture of David Dunn
    Mon, 11 Sep 2017, 11:40 PM
    EJSapp 3.0 (Build: 2017062603)
    Moodle 3.3.1

    When I click on a lab, I get only a download window to download the jnlp file.

    Any suggestions to fix this?
  • Picture of Luis de la Torre
    Tue, 12 Sep 2017, 1:56 AM
    Hi, David,

    I'm afraid you can't fix that. Embedded Java applets are no longer supported by any web browser, so we decided to deploy the Java applets through the Java Netjork Launch Protocol (JNLP), as desktop applications. This allows us to launch the applets with certain parameter that may be needed for the applications to run with all their features, but you can no longer have them embedded in you browser.

    If you prefer the simulation (or remote lab) to be embedded in the browser (as we do), you should move to Javascript. EjsS allows creating Javascript applications in a very similar way as the Java applications were created, and you can add them to your Moodle course exactly the same way you do it with Java applets in an EJSApp activity.
  • Picture of David Dunn
    Sat, 16 Sep 2017, 9:40 PM
    Thank you, Luis, for your helpful response. I will follow up with our instructors.
  • Picture of David Dunn
    Fri, 6 Oct 2017, 8:41 AM
    Reporting back: The instructor says that he has tried the JavaScript solution, but only a blank page loads.
  • Picture of Dinis Medeiros
    Sun, 14 Jan 2018, 8:48 PM
    Is it 3.4 compatible?
  • Picture of Luis de la Torre
    Sun, 14 Jan 2018, 9:09 PM
    Hi Dinis,

    Yes it is. I forgot to change the info here (I will do right now), but it works perfectly fine with Moodle 3.4

    David, unfortunately, your I didn't read your message. I'm afraid I can't be of much help with your description of the problem. If you are still interested in fixing it, maybe we could have a skype meeting.
1 2
Please login to post comments