Code Monkey home page Code Monkey logo

e-builder's Introduction

  • ๐Ÿ‘‹ Iโ€™m @seppedelanghe, a developer from Belgium
  • ๐Ÿ‘€ My intrests are in Machine Learning, reverse engineering and sports
  • ๐Ÿ‘Œ I'm in my element when I can use Python ๐Ÿ, but I am fluent when using JS, PHP, C# and Swift
  • ๐Ÿ“š Currently learning Go

e-builder's People

Contributors

dependabot[bot] avatar fastskyz avatar seppedelanghe avatar

Stargazers

 avatar

Watchers

 avatar

e-builder's Issues

Replace python math and numbers with NumPy version

Details

Replace the current math actions like pow, sqrt, sin, etc. with it's NumPy equivalents.
This also means replacing all the python float and int variables with the correct numpy data types.

These changed need to be made without breaking the pygame drawing ofcourse.
PyGame could have support for using numpy data types directly since it uses them for pygame.surfarray.
Tests will be logged bellow to find the best approach for this conversion.

Summary

Change to be NumPy version:

  • Data types (int, float)
  • Math calculations (sqrt, sin, etc.)
  • Vector coรถrdinates (tuple)

NOT to be changed:

  • Tuples used for colors

Reason for enhancement

This should improve the compatibility with AI frameworks.

Option to disable drawing

Add an option to Env to disable rendering in the environment.

The environment should still execute all actions, except graphical drawing.
This would be useful for faster processing of the physics and in the getting the results and training the AI model.

Update env to support walls or teleport

Add the code from examples edge.py and bounce.py into the Env class.
Make it easy to creata a closed off environment (no exceeding of borders), instead of having to write custom code in the update callback.

Add unlimited FPS option

When the FPS param in Env is set to -1, the env should try and run at a 'as high as possible' FPS instead of a fixed FPS.
This is probable possible by just dropping the pygame.time.Clock().

Create a GPU accelerated version

PyGame (and this project) does not use the GPU for graphics rendering, this makes it not possible to have thousands of objects on the screen at a time.
A version that uses OpenGL (in the distant future) would be great for more graphical demanding use cases.
However, this should be a new repo based on this one.
Because for training AI models, the GPU is used and we don't want to take away any (or too much) of it's available resources to rendering the result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.