aagrawal05 / aiballpitswimmer Goto Github PK
View Code? Open in Web Editor NEWAn exploration into 2D swimming with AI, using the matter.js physics engine.
An exploration into 2D swimming with AI, using the matter.js physics engine.
Play around with attributes like ball size, player size, river (current flow of balls towards player), to see changes in behaviour from the agent.
Make it able to run faster in order to train faster and allow for new options to be implemented
Basic UI self-explanatory. See evolution simulator on youtube for reference on GUI between generations and development. For GUI for NEAT see the neataptic.js NEAT playground here for more information. Implement toggles and options, and restart buttons, using CSS
Bug with transparency.
Add dynamic scaling to ballCols and ballRows derived from chunkSize to ensure no gaps are created.
Connect up all the brain input layers and output layers w/ neataptic.js.
make best variable set to the correct best player - fix line 201, and fix transparency bug
All the agents interact with the shared balls, causing each individual's simulations to be to distorted, grid?
Find a working library for NEAT or implement it yourself. Good library is neataptic js --> https://wagenaartje.github.io/neataptic/
same problem of shared resources with the load new render bounds being shared by all agents - when to do so? highest max.x? avg?
Solutions:
They should be derived form x position and do not collide (UI)
Add fluid dynamics instead of ball pit in a different branch, extra after finished with project
Try and fix choppy movements when balls teleport to the other sides on the edges of screen
Make agents not able to collide with each other but able to collide with everything else
See the ragdoll example in matter.js/examples/ragdoll.js
Take average of coords of all agent's "limbs" and see x difference from where he began, to calculate fitness provided. Function should tie in with the core update loop, in order to see how far the render frame is to the right.
Follow furthest player
Optimisation: check prevbest to not have to do n time
Remove walls and make a short platform for agent to "dive off of". Make ball pit "flow" (loop around to the front, see examples, implement with camera to center agent while balls flow from right and teleport to the left).
Make physics loop more efficient for a higher FPS, algorithmic improvements to increase overall efficiency.
Add the output functions to the agent definition, to allow the agent to access these functions as apart of the output matrix, when the AI is up and running.
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.