Royce  Reinger

Royce Reinger


Deep-neuroevolution: AI Labs Neuroevolution Algorithms

AI Labs Neuroevolution Algorithms

This repo contains distributed implementations of the algorithms described in:

[1] Deep Neuroevolution: Genetic Algorithms Are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning

[2] Improving Exploration in Evolution Strategies for Deep Reinforcement Learning via a Population of Novelty-Seeking Agents

Our code is based off of code from OpenAI, who we thank. The original code and related paper from OpenAI can be found here. The repo has been modified to run both ES and our algorithms, including our Deep Genetic Algorithm (DeepGA) locally and on AWS.

Note: The Humanoid experiment depends on Mujoco. Please provide your own Mujoco license and binary

The article describing these papers can be found here

Visual Inspector for NeuroEvolution (VINE)

The folder ./visual_inspector contains implementations of VINE, i.e., Visual Inspector for NeuroEvolution, an interactive data visualization tool for neuroevolution. Refer to in that folder for further instructions on running and customizing your visualization. An article describing this visualization tool can be found here.

Accelerated Deep Neurevolution

The folder ./gpu_implementation contains an implementation that uses GPU more efficiently. Refer to in that folder for further instructions.

How to run locally

clone repo

git clone

create python3 virtual env

python3 -m venv env
. env/bin/activate

install requirements

pip install -r requirements.txt

If you plan to use the mujoco env, make sure to follow mujoco-py's readme about how to install mujoco correctly

launch redis

. scripts/

launch sample ES experiment

. scripts/ es configurations/frostbite_es.json  # For the Atari game Frostbite
. scripts/ es configurations/humanoid.json  # For the MuJoCo Humanoid-v1 environment

launch sample NS-ES experiment

. scripts/ ns-es configurations/frostbite_nses.json
. scripts/ ns-es configurations/humanoid_nses.json

launch sample NSR-ES experiment

. scripts/ nsr-es configurations/frostbite_nsres.json
. scripts/ nsr-es configurations/humanoid_nsres.json

launch sample GA experiment

. scripts/ ga configurations/frostbite_ga.json  # For the Atari game Frostbite

launch sample Random Search experiment

. scripts/ rs configurations/frostbite_ga.json  # For the Atari game Frostbite

visualize results by running a policy file

python -m scripts.viz 'FrostbiteNoFrameskip-v4' <YOUR_H5_FILE>
python -m scripts.viz 'Humanoid-v1' <YOUR_H5_FILE>

extra folder

The extra folder holds the XML specification file for the Humanoid Locomotion with Deceptive Trap domain used in Use this XML file in gym to recreate the environment.

How to run in docker container

You can also run the code inside a docker container using docker and docker-compose.

See for an introduction to docker.
See also for an introduction to docker-compose.

Clone repo and enter the directory.

git clone
cd deep-neuroevolution

Start the container launching the redis instance, use sudo if required, see also this page.

sudo docker-compose up

Open up a second terminal session into the container.

sudo docker exec -it deepneuro /bin/bash

Start the experiment of your choice as stated above. E.g.

cd ~/deep-neuroevolution/
. scripts/ es configurations/frostbite_es.json

Download Details:

Author: uber-research
Source Code: 
License: View license

#machinelearning #reinforcementlearning #ai #python 

Deep-neuroevolution: AI Labs Neuroevolution Algorithms
Royce  Reinger

Royce Reinger


Bullet3: Bullet Physics SDK

Bullet Physics SDK

This is the official C++ source code repository of the Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.



The Issue tracker was flooded with support questions and is closed until it is cleaned up. Use the PyBullet forums to discuss with others.


It is highly recommended to use PyBullet Python bindings for improved support for robotics, reinforcement learning and VR. Use pip install pybullet and checkout the PyBullet Quickstart Guide.

Installation is simple:

pip3 install pybullet --upgrade --user
python3 -m pybullet_envs.examples.enjoy_TF_AntBulletEnv_v0_2017may
python3 -m pybullet_envs.examples.enjoy_TF_HumanoidFlagrunHarderBulletEnv_v1_2017jul
python3 -m pybullet_envs.deep_mimic.testrl --arg_file run_humanoid3d_backflip_args.txt

If you use PyBullet in your research, please cite it like this:

author =   {Erwin Coumans and Yunfei Bai},
title =    {PyBullet, a Python module for physics simulation for games, robotics and machine learning},
howpublished = {\url{}},
year = {2016--2021}

Requirements for Bullet Physics C++

A C++ compiler for C++ 2003. The library is tested on Windows, Linux, Mac OSX, iOS, Android, but should likely work on any platform with C++ compiler. Some optional demos require OpenGL 2 or OpenGL 3, there are some non-graphical demos and unit tests too.

Contributors and Coding Style information

Requirements for experimental OpenCL GPGPU support

The entire collision detection and rigid body dynamics can be executed on the GPU.

A high-end desktop GPU, such as an AMD Radeon 7970 or NVIDIA GTX 680 or better. We succesfully tested the software under Windows, Linux and Mac OSX. The software currently doesn't work on OpenCL CPU devices. It might run on a laptop GPU but performance will not likely be very good. Note that often an OpenCL drivers fails to compile a kernel. Some unit tests exist to track down the issue, but more work is required to cover all OpenCL kernels.


All source code files are licensed under the permissive zlib license ( unless marked differently in a particular folder/file.

Build instructions for Bullet using vcpkg

You can download and install Bullet using the vcpkg dependency manager:

git clone
cd vcpkg
./vcpkg integrate install
./vcpkg install bullet3

The Bullet port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

Build instructions for Bullet using premake. You can also use cmake instead.


Click on build_visual_studio_vr_pybullet_double.bat and open build3/vs2010/0_Bullet3Solution.sln When asked, convert the projects to a newer version of Visual Studio. If you installed Python in the C:\ root directory, the batch file should find it automatically. Otherwise, edit this batch file to choose where Python include/lib directories are located.

Windows Virtual Reality sandbox for HTC Vive and Oculus Rift

Build and run the App_SharedMemoryPhysics_VR project, preferably in Release/optimized build. You can connect from Python pybullet to the sandbox using:

import pybullet as p
p.connect(p.SHARED_MEMORY) #or (p.TCP, "localhost", 6667) or (p.UDP, "",1234)

Linux and Mac OSX gnu make

Make sure gcc and cmake is installed (sudo apt-get install build-essential and sudo apt-get install cmake for Linux, brew install cmake for Mac, or

In a terminal type:


This script will invoke cmake and build in the build_cmake directory. You can find pybullet in Bullet/examples/pybullet. The BulletExampleBrowser binary will be in Bullet/examples/ExampleBrowser.

You can also build Bullet using premake. There are premake executables in the build3 folder. Depending on your system (Linux 32bit, 64bit or Mac OSX) use one of the following lines Using premake:

cd build3
./premake4_linux --double gmake
./premake4_linux64 --double gmake
./premake4_osx --double --enable_pybullet gmake


cd gmake

Note that on Linux, you need to use cmake to build pybullet, since the compiler has issues of mixing shared and static libraries.

Mac OSX Xcode

Click on build3/xcode4.command or in a terminal window execute

./premake_osx xcode4


The App_ExampleBrowser executables will be located in the bin folder. You can just run it though a terminal/command prompt, or by clicking it.

[--start_demo_name="Demo Name"]     Start with a selected demo  
[--mp4=moviename.mp4]               Create a mp4 movie of the window, requires ffmpeg installed
[--mouse_move_multiplier=0.400000]  Set the mouse move sensitivity
[--mouse_wheel_multiplier=0.01]     Set the mouse wheel sensitivity
[--background_color_red= 0.9]       Set the red component for background color. Same for green and blue
[--fixed_timestep= 0.0]             Use either a real-time delta time (0.0) or a fixed step size (0.016666)

You can use mouse picking to grab objects. When holding the ALT or CONTROL key, you have Maya style camera mouse controls. Press F1 to create a series of screenshots. Hit ESCAPE to exit the demo app.

Check out the docs folder and the Bullet physics forums for further information.

Download Details:

Author: Bulletphysics
Source Code: 
License: View license

#machinelearning #cpluplus #reinforcementlearning #robots #computer #animation 

Bullet3: Bullet Physics SDK
Royce  Reinger

Royce Reinger


Simulator: A ROS/ROS2 Multi-robot Simulator for Autonomous Vehicles

SVL Simulator: An Autonomous Vehicle Simulator

Sunsetting SVL Simulator

LG has made the difficult decision to suspend active development of SVL Simulator, as of January 1, 2022.

There are no plans for any new or bugfix releases of SVL Simulator in 2022. There will be no new source code changes pushed to GitHub, and there will be no reviews or merging of Pull Requests submitted on GitHub for SVL Simulator or any of its related plug-ins. There will be no new simulator assets built and shared nor updates made to existing assets by the SVL Simulator team.

We will make a reasonable effort to keep the website up and running through at least Thursday, June 30, 2022, and will also maintain the web site including the simulator documentation pages through at least Thursday, June 30, 2022.

At this time we do not plan to remove the SVL Simulator source code (and related plug-in) projects from GitHub. The open source project and source code will remain available for anyone who wants to build (or modify) SVL Simulator.

We apologize for any inconvenience this may cause and appreciate your understanding.


The SVL Simulator team


Q: Will SVL Simulator run locally without the web site?

A: The latest released version of SVL (2021.3) requires the use of the WISE (web user interface) cloud service to download assets, configure simulation clusters, and create and launch simulations. It may be possible to remove this dependency (e.g. in a fork; see below) and then build and launch a local simulator instance.

Q: Will LG release the source code for the WISE (web user interface) cloud service?

A: There are no plans at this time to release the source code for WISE.

Q: Would LG be interested in transferring the SVL Simulator project to someone interested in taking over the project?

A: There are no plans at this time to transfer the SVL Simulator project (or the WISE cloud service).

Q: Will the Simulator Software License Agreement be changed?

A: There are no plans at this time to change the Simulator Software License Agreement.

Q: Can users share source code changes and forks of SVL Simulator?

A: As a GitHub project, anyone is able to create their own fork; in fact, there are already over 500 such forks of the SVL Simulator project. Users can then make changes and even submit pull requests back to the original (parent) project. While we have no plans to review or merge such changes into the main project, users are free to review open PRs and create their own local build from their own or any other public fork.

Q: Can users share new builds of SVL Simulator?

A: The Simulator Software License Agreement allows you to “modify or create derivative works of the Licensed Materials” and only restricts their commercial use. Therefore, it is ok for users to share new builds of SVL Simulator as long as such builds are not sold or otherwise used for commercial purposes.

Q: What about the SVL Simulator Premium product and/or cloud simulation service?

A: There are no plans at this time to offer a SVL Simulator Premium product or cloud service.

Q: Can users still post technical questions on GitHub?

A: Technical questions may be posted to the SVL Simulator Issues page on GitHub but may not be answered by the SVL Simulator team. We encourage users to help each other with questions or issues that are posted.

Q: What if there are other questions not addressed in this document?

A: Other questions may be posted to the SVL Simulator Issues page on GitHub.

Project README

Stay Informed

Check out our latest news and subscribe to our mailing list to get the latest updates.


LG Electronics America R&D Lab has developed an HDRP Unity-based multi-robot simulator for autonomous vehicle developers. We provide an out-of-the-box solution which can meet the needs of developers wishing to focus on testing their autonomous vehicle algorithms. It currently has integration with The Autoware Foundation's and Baidu's Apollo platforms, can generate HD maps, and can be immediately used for testing and validation of a whole system with little need for custom integrations. We hope to build a collaborative community among robotics and autonomous vehicle developers by open sourcing our efforts.

To use the simulator with Apollo 6.0 or master, first download the simulator binary, then follow our Running with latest Apollo docs.

To use the simulator with, first download the simulator binary, then follow the guide on our

For users in China, you can view our latest videos here and download our simulator releases here (code: 6k91). 对于中国的用户,您也可在哔哩哔哩上观看我们最新发布的视频,从百度网盘(提取码: 6k91)上下载使用我们的仿真器。


If you are using SVL Simulator for your research paper, please cite our ITSC 2020 paper: LGSVL Simulator: A High Fidelity Simulator for Autonomous Driving

  title={LGSVL Simulator: A High Fidelity Simulator for Autonomous Driving},
  author={Rong, Guodong and Shin, Byung Hyun and Tabatabaee, Hadi and Lu, Qiang and Lemke, Steve and Mo{\v{z}}eiko, M{\=a}rti{\c{n}}{\v{s}} and Boise, Eric and Uhm, Geehoon and Gerow, Mark and Mehta, Shalin and others},
  journal={arXiv preprint arXiv:2005.03778},

Getting Started

You can find complete and the most up-to-date guides on our documentation website.

Running the simulator with reasonable performance and frame rate (for perception related tasks) requires a high performance desktop. Below is the recommended system for running the simulator at high quality. We are currently working on performance improvements for a better experience.

Recommended system:

  • 4 GHz Quad Core CPU
  • Nvidia GTX 1080, 8GB GPU memory
  • Windows 10 64 Bit

The easiest way to get started with running the simulator is to download our latest release and run as a standalone executable.

Currently, running the simulator in Windows yields better performance than running on Linux.

Downloading and starting simulator

  1. Download the latest release of the SVL Simulator for your supported operating system (Windows or Linux) here:
  2. Unzip the downloaded folder and run the executable.

See the full installation guide here.

Building and running from source

If you would like to customize the simulator, build simulation content, or access specific features available in Developer Mode, you can clone the project with Unity Editor, and build the project from source.

Check out our instructions for getting started with building from source here. Note: Please checkout the "release-*" branches or release tags for stable (ready features) and "master" branch for unstable (preview of work in progress).

Simulator Instructions (from 2021.1 release onwards)

  1. After starting the simulator, you should see a button to "Link to Cloud".
  2. Use this button to link your local simulator instance to a cluster on our web user interface.
  3. Now create a random traffic simulation. For a standard setup, select "BorregasAve" for map and "Jaguar2015XE with Apollo 5.0 sensor configuration" for vehicle. Click "Run" to begin.
  4. The vehicle should spawn inside the map environment that was selected.
  5. Read here for an explanation of all current keyboard shortcuts and controls.
  6. Follow the guides on our respective Autoware and Apollo 5.0 repositories for instructions on running the platforms with the simulator.

NOTE: If using a release older than "2021.1", please follow the instructions on our documentation archives.

Guide to simulator functionality

Look here for a guide to currently available functionality and features.


Please feel free to provide feedback or ask questions by creating a Github issue. For inquiries about collaboration, please email us at

Website | Documentation | Download

Download Details:

Author: lgsvl
Source Code: 
License: View license

#machinelearning #api #reinforcementlearning #computervision 

Simulator: A ROS/ROS2 Multi-robot Simulator for Autonomous Vehicles
Royce  Reinger

Royce Reinger


Implementations Of Basic RL Algorithms with Minimal Lines Of Codes!


Implementations of basic RL algorithms with minimal lines of codes! (PyTorch based)

Each algorithm is complete within a single file.

Length of each file is up to 100~150 lines of codes.

Every algorithm can be trained within 30 seconds, even without GPU.

Envs are fixed to "CartPole-v1". You can just focus on the implementations.


  1. REINFORCE (67 lines)
  2. Vanilla Actor-Critic (98 lines)
  3. DQN (112 lines, including replay memory and target network)
  4. PPO (119 lines, including GAE)
  5. DDPG (145 lines, including OU noise and soft target update)
  6. A3C (129 lines)
  7. ACER (149 lines)
  8. A2C (188 lines)
  9. SAC (171 lines) added!!
  10. PPO-Continuous (161 lines) added!!
  11. Vtrace (137 lines) added!!
  12. Any suggestion ...?


  1. PyTorch
  2. OpenAI GYM


# Works only with Python 3.
# e.g.

Download Details:

Author: Seungeunrho
Source Code: 
License: MIT license

#machinelearning #reinforcementlearning #deeplearning #simple 

Implementations Of Basic RL Algorithms with Minimal Lines Of Codes!
Royce  Reinger

Royce Reinger


Easy-tensorflow: Simple and comprehensive tutorials in TensorFlow


The goal of this repository is to provide comprehensive tutorials for TensorFlow while maintaining the simplicity of the code.

Each tutorial includes a detailed explanation (written in .ipynb) format, as well as the source code (in .py format).


There is a necessity to address the motivations for this project. TensorFlow is one of the deep learning frameworks available with the largest community. This repository is dedicated to suggesting a simple path to learn TensorFlow.

Why use TensorFlow?


We can summarize the pros as below:

  • It’s developed and maintained by Google. As such, a continued support and development is ensured
  • Very large and active community
  • Low-level and high-level interfaces to network training
  • Tensorboard is the powerful visualization suite which is developed to track both the network topology and performance, making debugging even simpler.
  • Written in Python (even though some parts crucial for performance is implemented in C++) which is a very attractive language to read and develop in
  • Multiple GPUs support. So you can freely run the code on different machines without having to stop or restart the program
  • Faster model compilation than Theano-based options
  • Faster compile times than Theano
  • Is about more than deep learning. TensorFlow actually has tools to support reinforcement learning and other algorithms.

In addition to the aforementioned points, the large community of TensorFlow enrich the developers with the answer to almost all the questions one may encounter. Furthermore, since most of the developers are using TensorFlow for code development, having a hands-on on TensorFlow is a necessity these days.

Why this repository?

In most of the available projects on the web, one of the below issues exists:

  • There is no or very limited explanation of what is happening in the code.
  • Different parts are not connected in a meaningful way.
  • The code implementation is too vague or complicated.
  • The focus is on either advanced or elementary level of Tensorflow implementation.

In this project, we tried to connect parts from easy to advanced with detailed tutorials while keeping the code implementation as simple as possible.

TensorFlow Installation and Setup the Environment

The aim here is to explain how to install TensorFlow library "step by step" and on different operating systems. TensorFlow is a python library. Similar to many others, we tried installing many side packages and libraries and experienced lots of problems and errors.

In order to install TensorFlow please refer to the following link:

TensorFlow Tutorials


The tutorials in this repository are partitioned into relevant categories.


Some Useful Tutorials


When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. For typos, please do not create a pull request. Instead, declare them in issues or email the repository owner.

Please note we have a code of conduct, please follow it in all your interactions with the project.

Pull Request Process

Please consider the following criterions in order to help us in a better way:

  • The pull request is mainly expected to be a code script suggestion or improvement.
  • A pull request related to non-code-script sections is expected to make a significant difference in the documentation. Otherwise, it is expected to be announced in the issues section.
  • Ensure any install or build dependencies are removed before the end of the layer when doing a build and creating a pull request.
  • Add comments with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
  • You may merge the Pull Request in once you have the sign-off of at least one other developer, or if you do not have permission to do that, you may request the owner to merge it for you if you believe all checks are passed.

Final Note

We are looking forward to your kind feedback. Please help us to improve this open source project and make our work better. For contribution, please create a pull request and we will investigate it promptly. Once again, we appreciate your kind feedback and elaborate code inspections.

Download Details:

Author: Easy-tensorflow
Source Code: 
License: MIT license

#python #machinelearning #reinforcementlearning #deeplearning #tensorflow 

Easy-tensorflow: Simple and comprehensive tutorials in TensorFlow
Royce  Reinger

Royce Reinger


Neurojs: A JavaScript Deep Learning and Reinforcement Learning Library


neurojs is a JavaScript framework for deep learning in the browser. It mainly focuses on reinforcement learning, but can be used for any neural network based task. It contains neat demos to visualise these capabilities, for instance a 2D self-driving car.

Feel free to contribute. I appreciate any support, because frankly this is a big project to maintain!

Note: this repo is no longer maintained since more general frameworks such as TensorFlow-JS emerged, which I recommend you to use.


  • Implements a full-stack neural-network based machine learning framework
  • Extended reinforcement-learning support
    • Uniform and prioritised replay buffers
    • Advantage-learning (increasing the action-gap)
    • Support for deep-q-networks and actor-critic models (via deep-deterministic-policy-gradients)
  • Binary import and export of network configurations (weights etc.)
  • High-performance


Running the examples

npm install
npm start

Open http://localhost:8080/examples/ in your browser and select the demo you want to run.


  • More examples (pong, improved cars, etc.)
  • Support for web workers
  • LSTM and backpropagation through time

Download Details:

Author: janhuenermann
Source Code: 
License: MIT license

#machinelearning #javascript #reinforcementlearning #deeplearning 

Neurojs: A JavaScript Deep Learning and Reinforcement Learning Library

Exploring Panda Gym: A Multi-Goal Reinforcement Learning Environment

The gym is an open-source toolkit for developing and comparing reinforcement learning algorithms.

#reinforcementlearning #opensource


Read more:

Exploring Panda Gym: A Multi-Goal Reinforcement Learning Environment

Comprehensive Guide To Deep Q-Learning For Data Science Enthusiasts

This article will talk about reinforcement learning (RL) and Deep Q-Learning using openAI’s Gym environment and TensorFlow 2, and we will implement a case study using python. I assume that readers have a good understanding of reinforcement learning and deep learning. For the very beginners, I recommend this article before going further.

Read more:

#reinforcementlearning #tensorflow #python

Comprehensive Guide To Deep Q-Learning For Data Science Enthusiasts

DeepMind Has A Solution For AGI. Not Many Agree

The objective of reinforcement learning, a sub-domain of AI, is to provide the underlying infrastructure for intelligence that arises as a result of seeking goals through rewards. These rewards are mathematical expressions in their most rudimentary form and nudge the algorithms towards the target. Rewards are sufficient to express a wide variety of goals but are they enough for creating artificial general intelligence(AGI)?
Read more:

#reinforcementlearning #deepmind

DeepMind Has A Solution For AGI. Not Many Agree

What Are DQN Reinforcement Learning Models

DQN or Deep-Q Networks were first proposed by DeepMind back in 2015 in an attempt to bring the advantages of deep learning to reinforcement learning(RL), Reinforcement learning focuses on training agents to take any action at a particular stage in an environment to maximise rewards. Reinforcement learning then tries to train the model to improve itself and its choices by observing rewards through interactions with the environment. A simple demonstration of such learning is seen in the figure below.
Read more:


What Are DQN Reinforcement Learning Models

Reinforcement Learning Comes To Android Phones

Alphabet Inc.’s DeepMind has recently introduced AndroidEnv, an open-source platform for Reinforcement Learning (RL) built on top of the Android ecosystem. According to the team, AndroidEnv facilitates RL agents to interact with a wide variety of apps and services commonly used by humans on a widely used touchscreen interface.

Read more:

#deepmind #reinforcementlearning

Reinforcement Learning Comes To Android Phones

What Is Model-Free Reinforcement Learning?

In the context of reinforcement learning (RL), the model allows inferences to be made about the environment. For example, the model might predict the resultant next state and next reward, given a state and action.

Read more:\


What Is Model-Free Reinforcement Learning?

An “EPIC” Way To Evaluate Reward Functions In Reinforcement Learning

At the heart of a successful reinforcement learning algorithm sits a well-coded reward function. Reward functions for most real-world tasks are difficult to specify procedurally. Most real-world tasks have complex reward functions. In particular, tasks involving human interaction depend on complex and user-dependent preferences. A popular belief within the RL community is that it is usually easier and more robust to specify a reward function, rather than a policy maximising that reward function.

Read more:


An “EPIC” Way To Evaluate Reward Functions In Reinforcement Learning

The Societal Implications of Deep Reinforcement Learning

Machine learning (ML) can handle many complex tasks than just output singular decisions based on a labelled training dataset. Reinforcement learning (RL), a subset of ML, can train an agent to learn through interaction with the environment and use trial and error methods to alter its behaviour based on feedback. While the RL model can make decisions using a large table, modern RL applications are far too complex for the tabular approach to suffice. Deep Learning (DL), another subset of ML, can come in handy here: It uses a large matrix of numerical values to produce an output through the repeated application of mathematical operati

Read more:

#machine-learning #deep-learning #reinforcementlearning

The Societal Implications of Deep Reinforcement Learning

The Promise Of Maximum Entropy Reinforcement Learning

Last year, Walmart scrapped its ambitious plan to deploy inventory tracking robots. The retail giant has ended its contract with Bossa Nova Robotics citing “different and simpler solutions” could be as effective. This certainly indicates that the much anticipated AI takeover is still a distant dream. Scaling introduces new challenges in robotics or in any domain that tries to automate.

Read more:

#algorithms #reinforcementlearning

The Promise Of Maximum Entropy Reinforcement Learning