FluxML / Gym.jl

Gym environments in Julia
MIT License
54 stars 19 forks source link

Added the algorithmic environments and performed restructuring #30

Closed kraftpunk97-zz closed 4 years ago

kraftpunk97-zz commented 5 years ago

I've added the algorithmic environments with this PR. A lot of time was devoted trying to make the step! function differentiable. Feedback on that is highly appreciated.

In addition to that, a little restructuring was also performed, specially in the rendering function. Since different categories of environments are going to have different render options, I felt it was better for the definition of the render Contexts to be placed in a vis/utils.jl, that should be provided for every category of environment. A :no_render mode was also added and made the default value for the render_mode argument, for when the rendering is not required and to enable faster prototyping. This has two additional benefits-1) Faster loading time for the package, 2) The rendering dependencies for an environment category are only loaded when a user loads an environment from that category. If a rendering option is not supported by a system, the user can still work with the package, if he wants to load an environment from a different category.

Commits up till 0d8467e are covered in #29 , so please ignore them.

kraftpunk97-zz commented 5 years ago

@tejank10 Can you please review the step!() to make sure that it's differentiable? The step!() is common for all the environments so I'm not sure, so it should be easy.

kraftpunk97-zz commented 4 years ago

These few PRs have become a mess. Going to purge them all and create a new single PR with the latest code and work my way from there