# Web-based simulation

Web-based simulation (WBS) is the invocation of computer simulation services over the World Wide Web, specifically through a web browser. Increasingly, the web is being looked upon as an environment for providing modeling and simulation applications, and as such, is an emerging area of investigation within the simulation community.

## Application

Web-based simulation is used in several contexts:
* In e-learning, various principles can quickly be illustrated to students by means of interactive computer animations, for example during lecture demonstrations and computer exercises.
* In distance learning, web-based simulation may provide an alternative to installing expensive simulation software on the student computer, or an alternative to expensive laboratory equipment.
* In software engineering, web-based emulation allows application development and testing on one platform for other target platforms, for example for various mobile operating systems or mobile web browsers, without the need of target hardware or locally installed emulation software.
* In online computer games, 3D environments can be simulated, and old home computers and video game consoles can be emulated, allowing the user to play old computer games in the web browser.
* In medical education, nurse education and allied health education (like sonographer training), web-based simulations can be used for learning and practicing clinical healthcare procedures. Web-based procedural simulations emphasize the cognitive elements such as the steps of the procedure, the decisions, the tools/devices to be used, and the correct anatomical location.

## Client-side vs server-side approaches

Web-based simulation can take place either on the server side or on the client side. In server-side simulation, the numerical calculations and visualization (generation of plots and other computer graphics) is carried out on the web server, while the interactive graphical user interface (GUI) often partly is provided by the client-side, for example using server-side scripting such as PHP or CGI scripts, interactive services based on Ajax or a conventional application software remotely accessed through a VNC Java applet.
In client-side simulation, the simulation program is downloaded from the server side but completely executed on the client side, for example using Java applets, Flash animations, JavaScript, or some mathematical software viewer plug-in. Server-side simulation is not scalable for many simultaneous users, but places fewer demands on the user computer performance and web-browser plug-ins than client-side simulation.
The term on-line simulation sometimes refers to server-side web-based simulation, sometimes to symbiotic simulation, i.e. a simulation that interacts in real-time with a physical system.
The upcoming cloud-computing technologies can be used for new server-side simulation approaches. For instance, there are multi-agent-simulation applications which are deployed on cloud-computing instances and act independently. This allows simulations to be highly scalable.

## Existing tools

* AgentSheets – graphically programmed tool for creating web-based The Sims-like simulation games, and for teaching beginner students programming.
* AnyLogic – a graphically programmed tool that generates Java code for discrete-event simulation, system dynamics and agent-based models
* Easy Java Simulations – a tool for modelling and visualization of physical phenomenons, that automatically generates Java code from mathematical expressions.
* ExploreLearning Gizmos – a large library of interactive online simulations for math and science education in grades 3–12.
* FreeFem++ Javascript Version – FreeFem++ is a free and open source PDE solver using the finite element method.
* GNU Octave web interfaces – MATLAB compatible open-source software
* Lanner Group Ltd L-SIM Server – Java-based discrete-event simulation engine which supports model standards such as BPMN 2.0
* Nanohub – web 2.0 in-browser interactive simulation of nanotechnology
* NetLogo – a multi-agent programming language and integrated modeling environment that runs on the Java Virtual Machine
* OpenPlaG – PHP-based function graph plotter for the use on websites
* OpenEpi – web-based packet of tools for biostatistics
* Recursive Porous Agent Simulation Toolkit (Repast) – agent-based modeling and simulation toolkit implemented in Java and many other languages
* SageMath – open-source numerical-analysis software with web interface, based on the Python programming language
* SimScale – web-based simulation platform supporting computational fluid dynamics, solid mechanics, and thermodynamics
* StarLogo – agent-based simulation language written in Java.
* VisSim viewer – graphically programmed data-flow diagrams for simulation of dynamical systems
* webMathematica and Mathematica Player – a computer algebra system and programming language.
* VisualSim Architect – VisualSim Explorer enables system-level models to be embedded in documents for viewing, simulation and analysis from within a web browser without any local software installation.