A lightweight simulation environment for robots
RoboThree aims to be a very simple 3D simulation environment for robots.
It is JavaScript-based. The client side (the simulation environment) is implemented using jQuery, Three.js and other useful libraries (see Credits, below). The server side (robots' behaviors) is implemented using node.js and emulating an Espruino board. Nothing prevents from implementing the server side in other programming languages, as long as they can read and write data in JSON format and manage a very simple HTTP server.
Simulated robots can have virtual devices (like onboard cameras, a compass, etc.) and can be programmed at low or high level.
Info on the wiki page.
Documentation about classes and functions is available in the pages generated from source code comments, thanks to JSdoc.
Libraries:
- DOM manipulation: jQuery
- 3D graphics: Three.js, ThreeBSP
- Physics engine: Physijs, ammo.js, Bullet Physics
- Server-side work: Node.js
- User Interface: dat.GUI
- Utilities: stats.js, parseUri
Node modules:
- Jos Dirksen, Learning Three.js – the JavaScript 3D Library for WebGL - Second Edition
- Stemkoski's Examples
- LearningThreejs.com
- dat.GUI Tutorial
- Espruino distance sensing robot
RoboThree aims to be lightweight and very simple in its implementation. If you are interested in something more realistic (and more complex) you might try:
Some of these are available online at The Construct.
-
Release 0.01 (December 2nd, 2015): little more than a proof-of-concept.
-
Release 0.10 (December 20th, 2015): first big refactoring, with more structured object oriented patterns.
-
Release 0.20 (December 31th, 2015): some enhancements of different kinds: added sonars and leds.
-
Release 0.21 (January 1st, 2016): bug fix (sonars' vertical variants).
-
Release 0.30 (January 11th, 2016): second big refactoring.
-
Release 0.31 (January 12th, 2016): added some documentation.
-
Release 0.40 (January 12th, 2016): fixed some bugs in documentation, renamed some files, added comments in the code.
-
Release 0.41 (January 13th, 2016): added wiki pages to the web site.
-
Release 0.50 (January 21st, 2016): added RobotCommander
-
Release 0.51 (January 24th, 2016): fixed some little UI problems
-
Release 0.60 (February 3rd, 2016): added buzzer and some enhacements
-
Release 0.61 (February 6th, 2016): minor code enhancements
-
Release 0.70 (February 7th, 2016): added jsdoc comments to source code; renamed a file
-
Release 0.71 (February 22nd, 2016): renamed class *Behavior to *Controller; updated documentation