Git Product home page Git Product logo

particle-life's Introduction

Particle Light

Particle Life

A game of life using particles, instead of cells.

A JavaScript conversion, based on Particle-Life by HackerPoet.

See it in the browser

Todo

  • Optimize rendering
    • Perhaps switch from canvas-sketch to a more stable and performant library (or home-grown)
  • Further optimize the algorithm.
    • Use fixed-size data structures instead of arrays?
    • Allocate as much during initialization, before rendering.
    • Measure and optimize Universe.step() function.
    • Measure random-js and prob.js performance to ensure it is not a huge bottleneck.
  • Add camera logic with zoom and tracking.

Known Bugs

  • Rendering performance is currently pretty poor (18-20 fps).
  • There's no keymapping for zooming / reset, yet.

Development

Scripts

  • start — Start development. Opens browser and enables Hot reloading.
  • build — Build distrobution-friendly files.
  • format — Format files with prettier.

Contributing

Contributions are very welcome. If you've found a bug create an issue or even better, a pull request.

Credits

HackerPoet better known as CodeParade, for the original implementation. Check out his YouTube channel.

particle-life's People

Contributors

fnky 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

particle-life's Issues

Win 10 issue

When Universe first starts, the console is spammed with the message "Failed to set DirectInput device axis mode: 1"

`npm start` won't run

It seems like there is a dependency missing—canvas-sketch-cli. I guess you have that installed that globally. I think you either should say that the user has to download that globally in the README or add "canvas-sketch-cli"as a dependency in package.json. I am not completely sure what's best, but I think the latter is the best practice 😄

Compiling in Linux, not really an issue just info

Without a massive overkill of autoconf or cmake just find and install the ENTIRE
SMFL library. In Fedora it's capital sensitive so look for SMFL and SMFL-devel. Once those are installed and your SURE they are installed then for 64bit Fedora try this as a shell script
Since I don't have a 32bit system handy you may be able to run this as is or remove the 64 bit reference. SFML is butt sniffing slow and while it seems easy to use it is highly meh.

`#!/bin/bash
g++ -I/usr/include -I/usr/include/SFML -L/usr/lib -L/usr/lib64  Main.cpp Universe.cpp -o particlelife  -lsfml-graphics -lsfml-audio -lsfml-window -lsfml-network -lsfml-system`

Try the javascript version perhaps? It allows on the fly settings and it runs in a browser from the below link, go one up to get the code so you can use it elsewhere. It is very much faster or seems to be.

https://fnky.github.io/particle-life

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.