lukeharwood11 / pysimulate Goto Github PK
View Code? Open in Web Editor NEW๐๏ธ AI racecar simulator for testing multiple types of agents
Home Page: https://www.lukeharwood.dev
License: GNU General Public License v3.0
๐๏ธ AI racecar simulator for testing multiple types of agents
Home Page: https://www.lukeharwood.dev
License: GNU General Public License v3.0
After the simulator interface is 'fully functional', the readme should reflect all major changes and instructions for use.
SensorBuilder
class should contain an attribute holding how many sensors exist.SensorBuilder
allows for multiple cars to access the same 'sensors' without concurrent issuesCreate a visual using icons/drawings to show what arrow keys the driver is hitting
As objects are changed throughout the main loop, only the objects that are changed should be rendered using the update()
method as opposed to the flip()
method.
When displaying circles that represent an intersection with the track, the circles are placed (technically) in the wrong location.
Instead of being displayed by their upper left "placement point", they should be displayed by their center accounting for their radius.
SensorBuilder
class to generate sensorsget_sensors()
set_sensors()
with the input being a list of angles (ints)def __init__(self, depth, color=(0, 0, 0), width=2, pointer=True)
As the vehicle moves throughout the track, print tire tracks that follow the cars path and fade over time.
The current calculated FPS shouldn't be displayed every frame. Instead a custom component should be created that only refreshes once per second using the calculated fps.
With the current implementation of the sensors, if the sensor overlaps two points of the map, the sensor will choose the furthest point.
Create a timed one time message that can pop up on the simulation to notify the observer (of the simulation) that an event has occurred (such as a reward collision).
Build a class that can manage the timed fade along with a simplistic post method to the simulation.
The loading of the vehicle images should be optimized and user friendly. Currently the user of the framework is responsible for calling convert()
on the images, this should be fixed.
The vehicle class should check to see if it has collided with a reward.
Current implementation doesn't allow for AI to do nothing as an action.
Current state implementation:
0 - Turn Left
1 - Accelerate
2 - Turn Right
3 - Break
Change to:
0 - Turn Left
1 - Accelerate
2 - Turn Right
3 - Break
Default - Nothing
FIXME
vector2d.py
Implement sensor feature
Add a property to the Simulation
class that will allow the current simulation to quit if the car hasn't moved x
distance within y
amount of time.
This feature is needed for most machine learning algorithms such as Q-Learning or Genetic Algorithm.
Add a label to the top of the simulation that displays the number of iterations that the simulation has been through.
Allow for the following logging levels/types:
Lower levels log anything (including itself) higher that itself. (e.g. if debug mode is set, all 4 levels are displayed, whereas if Error is set then only Errors and Fatal messages will appear in the logs).
The current implementation has all inputs being normalized simultaneously. Research normalization techniques to improve performance.
got below error while trying to run example.py
from keras.optimizer_v2.adam import Adam
ModuleNotFoundError: No module named 'keras.optimizer_v2'
installed keras version
Name: keras
Version: 2.10.0
Summary: Deep learning for humans.
Home-page: https://keras.io/
Author: Keras team
Author-email: [email protected]
License: Apache 2.0
Location: /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
Requires:
Required-by: tensorflow
With the current state of the project convert()
cannot be called until Simulation
has been initialized. This is because convert()
cannot be called until pygame.init()
has been called.
Design/build a simulation that is customized for running batches of cars.
Unimplemented feature: the simulation should keep track of whether or not the car has collided with the track. This should be checked by the car and the simulation should hold the information.
note: the vehicle class should keep track of how many times the entity has collided and the simulation should reset when this event has occurred.
Masks take up a lot of time to generate, so cache all the possible masks and place them in the correct location.
Implement GitHub Workflow for automated deployment.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.