Giter Site home page Giter Site logo

keiwando / evolution Goto Github PK

View Code? Open in Web Editor NEW
364.0 364.0 58.0 161.55 MB

A sandbox game/simulator that demonstrates machine learning with evolutionary algorithms.

Home Page: https://keiwan.itch.io/evolution

C# 68.05% ShaderLab 25.00% HLSL 1.43% HTML 0.67% GLSL 4.82% JavaScript 0.03%

evolution's People

Contributors

imgbotapp avatar keiwando avatar vocalfan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

evolution's Issues

[Feature request] Automatic builds using GitHub Actions

Every time a new release is published, trigger an Actions workflow that'll build the source and include it as a release artifact. I do not know if this will fit into your liking, but if done, would extremely save so much time for people that are incapable of building the source themselves.

Also, permission to clone the repository for the purposes of testing the viability of automatic builds

Support faster than realtime / skip frame evolution

Multiple ways for battery optimizations/ convinence for impatient users:

  1. allow evolution faster than realtime
  2. allow to skip frames (consumes less CPU too)
  3. allow to run evolution in a low priority cpu limited background task. - Users coukd go about checking social network, take calls, etc, whike evolution creeps forward in the background

Memory Leak

Love this simulation! had to buy it, nice work.

Myself and others are getting an out of memory error in WebGL after X amount of generations.
When running locally on Windows 10, I notice that memory usage starts around 250MB and increases about 6MB per generation when simulating 40 entities for 10 seconds. This increase continues indefinitely.

When I save the simulation, exit it, and load it again, the simulation continues without issue and the memory resets back to around 250MB.

Measure fitness from bones average

Hey @keiwando ,
first thanks for your project.
I have build a creature that can jump two loops.
Unfortunately, after generation 90, the creature makes no progress in fitness anymore.
As i observe the mutated creatures, the farthest traveled joint measures the fitness.

That motivates the creature, developing to stretch all its muscles, at the end of the evolution time-window, which is counter-productive as it is not evolving to successfully completing two loop jump, but to stretch its muscles.

So, could you measure the fitness from the average of all the bones, so the farthest average of the joints and not the farthest moved joint -creature becomes parent for mutation?
That would be great. Thanks in advance for your input on this topic.

Simulation camera speed is too slow

Hi, thanks for a great game. I found so fast moving creature so the camera is too slow. Check the picture:

D8B1D5A0-000C-4C73-8A09-918119611B7E

The feature will go completely of the screen...

iPhone xs

Question

Hey,

I was wondering if you would be ok if I use your game so I can host it on replit for school, they blocked itch.io so I cant lay it there, and also what would be the start command? May I specify, a npm command, I'm thinking about using bash. but if you know this works in Node then do you know the start command?

Have A Great Day!!!

JSON-related errors while trying to build the project in Unity.

Hi,

I was trying to build the project in Unity, hoping to mess around it a bit, however was met with compilation errors while trying to do so. Unity displays 48 errors total, but they all boil down to "Assets\Scripts[Data\x.cs(x, y)]/[Scenes\Structures\x.cs(x, y): error CS0246: The type or namespace name 'JObject'/'IJsonConvertible' could not be found (are you missing a using directive or an assembly reference?)". I'm using the Unity version specified in the repo, and I believe I should have all necessary dependencies installed as well. How would I go about fixing this? Any help would be appreciated, thanks.

Camera Movment

Im currently playing on the IOS app version V3.1.0 and this is kind of feature request/bug report in one. Do I tried to create an nord. that flys, successfully.. but the camera dependent move up or down and so the bird always escaped into the sky.
i would love to see the camera move up and down as well as left and right, in the future.

[Feature Request] Move the platform alongside the creatures

The Problem: Creatures more than often fall off the platform.
Proposed Solution: Make the platform move alongside the creatures.
Reason: By making the platform move with the creatures, we suddenly make the platform seemingly infinite. Of course this isn't the best solution possible, one better solution would be to set a ground Y and simply push up the nodes if they get below that Y, or something similar, hence only needing a single box for the camera.

I hope this request makes it into the game, i'd love to open a PR with it, but i sadly do not have Unity installed right now, due to preference, plus that Unity takes up too much space for somewhere around 20 lines of code, depending on.

Muscle Question

Is it possible to manually set the position of a muscle on the bone length?

Consider Freeing Your program

Hello @keiwando, My younger brother and I have some interest in using your game, and potentially use it to teach my brother programming, but unfortunately your program is under a proprietary license, which will be generally problematic, even for use case's.

I am also thinking of how this might impact other users with different use cases, as well as us.

Free As In Freedom

To clarify when i say 'free', i am not talking about cost. free/libre software can be commercially sold as shown here:
Selling Free Software

And a FOSDEM video on free/libre business models which are successful and used by (Canonical, Red Hat, Nextcloud, etc).
Why the GPL is great for business Debunking the current business licensing discussion

Regarding your article

I have read your explanation of the design of your license, and respect you took the time to explain your reasoning, while i agree with the issues facing software development; I do disagree with the way this was meant to be mitigated by the license.
https://keiwando.com/evolution/faq/open-source

Reason being, you cite the issue of breaking backwards compatibility.
However, there are many free/libre software projects which are restrictive of what contributions they accept on their repo. And this is perfectly fine, even if it is free/libre software, you are under no obligation to accept contributions into your repository. Because, users can fork their own version in these cases for any purposes. It will not impact the stability or compatibility of your copy of the software.

That's the beauty of it, users are in control of the program, so you can maintain the things how you like it, and someone else if they want to do something different, they can make a separate version. You may find things people have done in their version you want in yours, and can always merge this into your repository if you decided to.
If users can use the version which they like to use, its their choice to have the software they want to use. So the users control the program in this case.

Current Restriction's of the license

Although the source code is public(source available), the current license prevents users from having control over the program.

Your program seems to restrict users freedom to use the program for any purpose (freedom 0),
"[...] download, modify and play around with the code for personal and educational purposes"
I am assuming this restricts commercial use of the software, and any category which is not personal or educational use. The license is also quite vague, as what is considered personal or educational use is subjective.

Either way, this unfortunately means users do not have individual control over the program(as the first 2 freedoms are not completely satisfied).
See this article for why this can be problematic.

Secondly, Freedom 2 is also restricted.
"[...] as long as you don't relicense the code or sell or otherwise redistribute a build of the software (outside an educational environment)".
I interpret this to mean, Only for educational purposes, can identical copies of the software be distributed.

I find this problematic, because there are many cases where your software would want to be distributed outside an educational environment, and it's also vague as to what is considered an educational environment.

Also People need to share software to help others as part of a cooperative society for many purposes, ones you may not think of in your license which are important.
For example, some users may live in a place where the internet is not reliable internet, and in some cases no internet at all. It's easy for us to decide on a limited set of use cases.

But people around the world or even in your country. Use software for many purposes, purposes which are legitimate and benefit society. And many of the issues you cite can be avoided if the program is under a free license.

See here for why free software is important:
https://www.gnu.org/philosophy/free-software-even-more-important.html

Another major issue, is the vagueness of this license in general, may have the opposite effect. There is not even a warranty disclaimer, or patent disclaimer (to protect from software patent trolls).

Empirical Study on How patent's impact innovation:
Software Patents and Firm Value: A Real Options Perspective on the Role of Innovation Orientation and Environmental Uncertainty

Conclusion

So, having argued this. Would you consider freeing your program?
And if not, could you explain why?

Thank you for reading my long article.

Looking forward to hearing from you,
Happy Hacking (;

Best creatures are not being kept.

As I understand it, the option to keep the best creatures is supposed to make sure the two creatures that make it the furthest in each run automatically go on to the next run. And unless I really misunderstand how the game works, that is not happening. I may have a run where a number of creatures make it past the 9 unit mark on the climbing course. So when I do the next run, I should see at least two creatures passing that mark. Instead, I often see none.

The system is supposed to keep the best creatures, and select the rest according to their proportional rank. Why isn't it doing that?

inport

I can not inport creatures

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.