C++ Framework for embodied cognition / robot simulation / reinforcement learning
C++ Protocol Buffer Jupyter Notebook QMake Python C Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
include
protobuf
scripts/tests
src
test
.gitignore
README.md
boxbot.pro
compile_protobuf

README.md

BoxBot Simulator

BoxBot is a C++ framework for embodied robot physics simulation in 2D environments, built on top of the LiquidFun library.

BoxBot screenshot 1 BoxBot screenshot 2 BoxBot screenshot 3

Features

  • The Agent class represents a robot that can interact with a simulated world. It owns a Policy object that takes in observations of the world state and returns controls that the Agent will apply.
  • Physics simulation and agent embodiment handled via the LiquidFun simulator (the Agent is just a set of bodies and joints).
  • RPCPolicy is a Policy subclass that computes controls via gRPC. Agent observations are serialized into a Protobuf and sent to a Policy Server. The policy server computes controls and sends them back to the agent. This allows us to implement policies in any environment that supports Google protobufs & gPRC : Python + TensorFlow, LuaJIT + Torch, etc.
  • Python Interface for LiquidFun worlds
  • Simulator can run in real-time with OpenGL debug visualization, or headless mode
  • Cross platform: runs on Windows, Mac OSX, Linux

Installation

Prerequisites:

  • Google Protobufs
  • gRPC
git clone https://github.com/ericjang/boxbot
qmake && make

License

Copyright (c) 2016, Eric Jang

Open-source under Apache 2.0