No announcement yet.

Free and Opensource Robotics Simulator

  • Filter
  • Time
  • Show
Clear All
new posts

  • Free and Opensource Robotics Simulator

    Hi everyone,

    I've been working on a 3D robotics simulator in my free time. There are still a lot more features that I'll like to add in, but I think it has reached a state where it's good enough to let others try out.

    ...and github link for those interested in the source...

    Some features...

    - Write Blockly programs that auto-converts into Python or write directly in Python

    - Generated Python code can run on an actual EV3 (ev3dev or Pybricks)

    - Runs entirely in browser, no login or accounts needed

    - Upload your own image to use as a map

    - Realistic 3D physics simulation (eg. the robot won't run straight without the help of a gyro)

    - Configurable robots (...currently no GUI, but I'll get around to it eventually)

    - Free, opensource, no paid or premium content

    This simulator is targeted at intermediate to advanced kids. For beginners, VexcodeVR or some other fake physics robot simulator (...where the robot always drives perfectly straight) may be a better choice.

    All suggestions, bug reports, and help are appreciated.

  • #2
    This looks like a great tool and I plan to introduce it to my FLL team (grade 6). They are learning Python this year and with physical distancing will not be able to have as much time at the table. But they should be able to develop & test some of the code from home using your simulator. Great timing.

    Request: Add the 2020 FLL board image


    • #3
      For the past couple of years, our team has used a RobotC simulator at:

      It is good for just teaching the basics of syntax and capitalization.
      It teaches a little about how to use the language and built-in functions.

      Last year, our team used a JavaScript compiler for the competition. But the RobotC simulator was still a little useful in learning how to write text based code. Though JavaScript is much more forgiving when it comes to syntax.


      • #4
        criddle858. Sure, I'll add in the FLL 2020 image when it's out. The simulator isn't great for FLL, as the FLL missions involves a lot of physical parts which are difficult to model and even harder to simulate. But it should be good for learning general coding and robotics. I've also recently added a "Fire Rescue" world so that the kids using the simulator can have a mission to work on.

        jkandra. That's an interesting simulator! How did you get it to interpret C in the browser?


        • #5
          Since JavaScript is a superset of C, the RobotC code is actually interpreted as JavaScript in the web browser. JavaScript functions were created in the interpreter to mimic the built-in functions in RobotC. The RobotC simulator is limited in what you can do with the robot. Basically you can drive forward/backward, turn, stop, and maybe detect a line. Its' purpose is only to teach the basics of typing text based code and navigating a robot. We use the simulator at the beginning of the season (just the first 2 or 3 sessions). Kids can practice coding in the simulator and it offers more detailed explanations of syntax and spelling errors--more than they would get from the actual RobotC compiler.


          • #6
            @Cort: I understand the FLL mission models are not supported - but I think there will be a lot of value for the kids to write code to move around on the board. Getting to/from the mission models can be half the fun. Thanks again.

            BTW: The kids thought it was hysterical that the robot can fall off the board.


            • #7
              Added the FLL RePLAY board image and a lot more.

              Since my first post a month ago, there has been a huge amount of new additions. Some notable ones includes...
              • Multi-robot Arena
              • A series of challenges relating to line following, obstacle avoidance, and gyro usage
              • Sumo challenges (...both single robot training challenges and a multi-robot arena)
              • Fire rescue world (pick and place type challenges)
              • Sensor panel
              • Configuration options to add obstacles to an image world
              • Paintball launchers, Swivel actuators, laser range sensor, GPS sensor
              • Paintball challenges (...good for learning projectile motion and chart plotting)
              • Multi-page and functions imports enhancements in blockly to facilitate writing more complex programs
              • Performance enhancements and bugfixes