Geppetto
Website | Documentation | Releases
Contribution guidelines | Development progress
Geppetto is an open-source platform to build web-based applications to visualize and simulate neuroscience data and models.
If you want to play with a demo application built with Geppetto just visit https://live.geppetto.org.
If you want to build your own Geppetto application follow these instructions and these steps to setup the source code using the Java Backend.
The demo application is available in this repository which you can fork to build your own. Every Geppetto application has an npm dependency on geppetto-client which makes all the frontend Geppetto components and infrastructure available to the application. A Geppetto application can be deployed on different backends based on Java (via Eclipse Virgo) or Python (via Jupyter Notebook or Django).
Web client
The Geppetto Client is reused in all Geppetto applications. It contains all the GUI components, the Javascript facilities to interact with the Geppetto Model and the infrastructure to communicate with the backend. The Geppetto client is available from npm.
Java backend
The Java backend is the reference backend implementation and is used in client-server deployments of Geppetto. The Java backend is modular allowing each deployment to be customised only with the relevant bundles.
- Essential
- org.geppetto.model
- org.geppetto.core
- org.geppetto.simulation
- org.geppetto.frontend (Note: the repository of the geppetto application you want to deploy in a Java Backend needs to be cloned inside this bundle)
- Optional
- Domain Specific
- Neuroscience
- Fluid mechanics (Currently in development)
Python Backend (working prototype, in development)
Python backends are being developed both on top of Django and as a Jupyter Notebook extension. The Jupyter extension allows the user to host a Geppetto application inside a Jupyter Notebook environment. The application will talk to the Python kernel of the notebook which will act as a backend. Client-server deployments based on the Jupyter Notebook extension are also possible using Jupyter Hub.
All Python backends will reuse pyGeppetto as the main library. pyGeppetto contains the code to work with a Geppetto model and to implement the REST and Websockets APIs which is independent of the specific server (e.g., Django, Jupyter, etc.).
Node.js Backend (proof of concept)
Website | Documentation | Releases
Contribution guidelines | Development progress
Geppetto is released under the MIT license.