Code Monkey home page Code Monkey logo

webots-cloud's Introduction

webots.cloud

This repository holds the contents of https://webots.cloud

For more information, refer to the webots.cloud documentation page.

webots.cloud is implemented as a Single Page Application (SPA), including the following URL model:

In addition, specific URLs correspond to different Webots materials.

Scenes and animantions are hosted directly on webots.cloud:

type data host sample URL
scene webots.cloud https://webots.cloud/S0_2Q8O (the URI starts with /S)
animation webots.cloud https://webots.cloud/AQnPNle (the URI starts with /A)

Demos and competitions are hosted on GitHub repositories:

type data host sample URL
demo github.com https://webots.cloud/run?url=https://github.com/user/my-repo/blob/master/worlds/example.wbt
competition github.com https://webots.cloud/run?url=https://github.com/user/my-repo/blob/master/worlds/example.wbt

Scene

A scene is a simple 3D model corresponding to a Webots world file. Scenes are static, that is nothing is moving. However, the users can change the viewpoint and zoom in to observe details in a scene.

Animation

An animation is an animated model. It is usually the recording of a simulation that can be played back by the users.

Simulaton

Demo

A demo is a complete Webots simulation project including a world file and one or several robot controllers. It may demonstrate some research achievement: a robot solving a problem or demonstrating some interesting capabilities. It may include some robot window displaying sensor data or other data representing the internal state of the robot. The robot window may also include the possibility for the user to interact with the simulation while it is running. For example there could be some buttons to ask the robot to perform some speficic actions, or a slider to apply a force to the robot, or a checkbox to open or close a door, etc. To setup a Webots repository that contains a demo, you should create it from the https://github.com/cyberbotics/webots-demo-template template repository. Then, you should commit your specific files: worlds, controllers, protos, robot windows, etc. Finally, you should add a new demo from the https://webots.cloud/demo page and indicate the GitHub URL of your Webots world file, including the tag (or branch) name, e.g., https://github.com/cyberbotics/webots/blob/R2021b/projects/languages/python/worlds/example.wbt.

Competition

A competition is a simulation scenario which proposes a challenge involving one or two participants. A robot has to address a problem and its behavior is evaluated against a performance metric.

Technical Details

Database

webots.cloud holds a database of GitHub repositories containing a Webots simulation:

id type url title stars
1 competition https://github.com/me/my_competition Obstacle Avoidance Competition 94
3 demo https://github.com/me/my_demo My Webots demo 12

Dockerfile

The version information specified in the Dockerfile at the root of the repository indicates which version of Webots is required to run the simulation.

For example:

FROM cyberbotics/webots:R2020b-rev1-ubuntu20.04
ARG PROJECT_PATH
RUN mkdir -p $PROJECT_PATH
COPY . $PROJECT_PATH

webots.yaml

webots.cloud parses the webots.yaml file at the root level of a repository to determine the type of Webots repository, publishing permission, etc. allowing to run the simulation in the cloud.

Type

Currently, we support 2 different types of repositories:

Demo

This is a simple simulation that can be run interactively. The webots.yaml file should contain a reference to the demo type and a publish setting, for example:

type: demo
publish: true

By default, publish is set to true. All worlds found in the same directory as the specified world will be be used by webots.cloud and listed as interactive run sessions. When publish is set to false the simulation will not be uploaded and can be removed from webots.cloud on resynchronization.

Competition

This type of repository should contain the scenario of a competition, including a supervisor process performing the evalution of the controller(s) and a publish setting.

type: competition
publish: true

Setup of a Simulation Server Infrastructure

Follow the instructions here.

webots-cloud's People

Contributors

thomasoliverkimble avatar omichel avatar jean-eudes-le-retour avatar stefaniapedrazzi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.