GithubHelp home page GithubHelp logo

tom-mohr / particle-life-app Goto Github PK

View Code? Open in Web Editor NEW
757.0 16.0 63.0 484 KB

🦠 A GUI for Particle Life, a particle system showing life-like behaviour

Home Page: http://particle-life.com

License: GNU General Public License v3.0

Java 97.81% GLSL 2.14% Shell 0.05%
artificial-life multiagent-systems particle-system java particle-life

particle-life-app's Introduction

🦠 Particle Life App

A GUI for the Particle Life Framework.

Join the Discord server!

Screenshot of the App

How to build this app from source

If you just want to try out this application, simply download the executables from particle-life.com. However, if you want to contribute to this repository or just mess with the code, you need to build the application from source.

For this, you need to have Git and Java with version 16 or higher installed on your computer. Confirm your Java version with java -version.

Then, execute these lines in the terminal:

git clone https://github.com/tom-mohr/particle-life-app.git
cd particle-life-app
./gradlew run

You should now see many particles on your screen. If you encounter any problems, ask for help in the #tech-support channel on the Discord server.

How to make a release

  • Confirm that everything is working correctly and check in with others that the current state of the main branch is ready for release.
  • Run ./gradlew zipApp from the project root. This generates the zip file particle-life-app.zip in ./build/zipApp/. It includes the Windows executable (.exe) along with other files.
  • Go to the Releases section of this GitHub repo and click Draft a new release.
  • Click Choose a tag and type the new version name:
    • Prefix the version name with the letter v. Some good tag names might be v1.0.0 or v2.3.4.
    • The version name should comply with semantic versioning. Talk to others if you are unsure about what to choose here.
  • Click Create a new tag.
  • Set the release title to match the tag name.
  • Use the description to summarize the changes of all commits since the last release.
  • Add the generated particle-life-app.zip as an asset to the release.
  • Click Publish release.

particle-life-app's People

Contributors

altruios avatar angular-angel avatar emilstekcor avatar jroscoe5 avatar karolstawowski avatar mlochen avatar tom-mohr 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

particle-life-app's Issues

Add max zoom limit

As said in the title it would be a nice addition to add a max zoom limit.
Maybe the limit could be when the entire map is the size of the cursor.

Isn't it useless to have so much zoom?
(It's there somewhere)
image

Interacting force ranges and exploring the simulation space using the WSAD keys or arrow keys.

Hi! I have a request. I noticed that navigating through the simulation space is only done by zooming in and using the mouse wheel. This is extremely annoying when you want to explore the space closely, navigating at a certain zoom level. If you want to make a movie of what's there, it's difficult and annoying to keep pressing the Z key to go back to an overview so you know where to go next. Then, I noticed that there is a matrix of interaction force intensities, but not a matrix of action radii. Each color should interact at different distances with the other colors not just at different intensities. For example, red with blue should interact with a force "x" over a distance "y", and red with green with a force "z" over a distance "w", with x≠y≠z≠w. More interesting would be if each color emitted both an attractive and a repelling force to each other color, not just one kind of force. Thus, red would emit an attractive force of intensity "f1" over a distance "r1" from green, but also a repulsive force "f2" over a distance "r2" also from green. If f1 = f2 and r1 = r2, then the two colours do not interact at all. But if f1 = f2 and r1 < r2, then the two colours do not interact over distance r1, but repel each other over distance r2 - r1.
What do you think about all this? Could you modify your application to implement them?

Cap number of types at 256

The GUI should prevent the user from using more than 256 types, because the app will crash when more types are set.

Linux: FAILURE: Build failed with an exception.

I cloned the library into a folder and ran the command:

Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'particle-life-app'.
> Could not open cp_proj generic class cache for build file '/home/momiro/gits/particle-life-app/build.gradle' (/home/momiro/.gradle/caches/7.6/scripts/8m1lzv7px2uuz7ljcpsiy2mck).
   > BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org```

I've tried clearing the gradle cache, uninstalling gradle, reinstalling, etc, installed jdk, not sure what I'm doing wrong.

More Exciting Shaders 🌠

Like the glow effect in Toms video, or other spicy effects that can either be used for better visualization of concepts or just to make awesome visuals.

macos support

Hi, thank you for making this awesome program!

I would like to know if there is a way to run this program on macos.

Cheers

Please add '=' key for zooming in

I really love this awesome implementation! Nice job!
Please add '=' key for zooming in, since a keyboard without a numpad doesn't have a seperate '+' key.
Or please tell me any other way to zoom in...

Responsive GUI Scaling

The GUI is too small on large screens and should scale depending on screen resolution.
There should also be an option in the "graphics settings" menu to change this.

Fading traces for "clear screen"/tracing mode.

Make an option to have the trace "die off" or fade to the background over time.
This allows for the visual effect of the particles leaving traces without the screen becoming a complete mess/smear over time.

Set Icon in GLFW

The application doesn't have an icon when running (only the .exe). Use GLFW to load the existing "favicon.ico" file as application icon.

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.