Code Monkey home page Code Monkey logo

hashlife-rust's Introduction

Simulation remains a considerable challenge for computers, and a very active area of reaserch (if you are not already familar with it, check out the youtube channel Two minute papers). One key trick that complex physics engines, such as fluid dynamics engines use is to model groups of particles as a single higher level abstractions such as vorticies. Another key trick is to partition particles into sectors where only low level interactions within a sector matter, so interactions between sectors can be ignored.

While physicists and computational scientists have developed some fabulous abstractions and partitioning strategies and deployed them effieciently on hardware, us computer scientists wonder if there is some principle that would allow these higher level abstractions to be automatically determined, perhaps through some sort of machine learning model.

With real physics, its really hard to develop a concrete training regime that we can have confidence will work. But we computer scientists are not limited to real physics, and can work with simpler physics models that are more approachable.

Today, we will look at Conway's Game of Life as an example physics regime. If you are not familiar with this system, you can play around with it here.

There are three properties of this system which are very useful for efficient simulation:

  1. The particles are laid out on a grid. This makes for easy and efficient partitioning.
  2. The particles values are discrete. This means we can used a hard hash to memoize the results, essentially a trivial machine learning method.
  3. The "speed of light", i.e. the fastest that information can travel, is known and quite slow. This means we do not need to make any assumptions when partioning or building abstractions, out results will be exact.

hashlife-rust's People

Contributors

ben-black-tec avatar benblack769 avatar

Watchers

 avatar

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.