All Projects → HactarCE → NDCell

HactarCE / NDCell

Licence: other
A fast, flexible, and feature-rich interactive multidimensional cellular automaton simulator written in Rust

Programming Languages

rust
11053 projects
GLSL
2045 projects

Projects that are alternatives of or similar to NDCell

FLAMEGPU2
FLAME GPU 2 is a GPU accelerated agent based modelling framework for C++ and Python
Stars: ✭ 25 (+25%)
Mutual labels:  simulation
VENTOS Public
VEhicular NeTwork Open Simulator (VENTOS)
Stars: ✭ 46 (+130%)
Mutual labels:  simulation
hoomd-examples
HOOMD-blue example scripts.
Stars: ✭ 15 (-25%)
Mutual labels:  simulation
photontorch
Highly parallel simulation and optimization of photonic circuits in time and frequency domain based on the deep-learning framework PyTorch
Stars: ✭ 29 (+45%)
Mutual labels:  simulation
MoveSim
Codes for paper in KDD 2020 (AI for COVID-19): Learning to Simulate Human Mobility
Stars: ✭ 16 (-20%)
Mutual labels:  simulation
Vehicle-Dynamics-Lateral
OpenVD: Vehicle Dynamics - Lateral
Stars: ✭ 50 (+150%)
Mutual labels:  simulation
mbsim
A multi-body simulation software
Stars: ✭ 22 (+10%)
Mutual labels:  simulation
logic-life-search
Cellular automata search program
Stars: ✭ 23 (+15%)
Mutual labels:  cellular-automaton
DeepLocNet
WiFi based Radio-Inertial Localization
Stars: ✭ 25 (+25%)
Mutual labels:  simulation
toy code
No description or website provided.
Stars: ✭ 78 (+290%)
Mutual labels:  simulation
PVSystems
A Modelica library for photovoltaic system and power converter design
Stars: ✭ 20 (+0%)
Mutual labels:  simulation
bht-ams-playerstage
Player/Stage SLAM
Stars: ✭ 35 (+75%)
Mutual labels:  simulation
MD-11
A high-quality McDonnell Douglas MD-11 simulation for the open source simulator, FlightGear
Stars: ✭ 21 (+5%)
Mutual labels:  simulation
nseindia lob
National Stock Exchange of India Limit Order Book Simulation
Stars: ✭ 25 (+25%)
Mutual labels:  simulation
TaichiGAME
GPU Accelerated Motion Engine based on Taichi Lang.
Stars: ✭ 35 (+75%)
Mutual labels:  simulation
keeperfx
Open source remake and Fan Expansion of Dungeon Keeper.
Stars: ✭ 128 (+540%)
Mutual labels:  simulation
libROM
Model reduction library with an emphasis on large scale parallelism and linear subspace methods
Stars: ✭ 66 (+230%)
Mutual labels:  simulation
TriangleMeshDistance
Header only, single file, simple and efficient C++11 library to compute the signed distance function (SDF) to a triangle mesh
Stars: ✭ 55 (+175%)
Mutual labels:  simulation
HSTPNSim
Using for petri nets simulations
Stars: ✭ 37 (+85%)
Mutual labels:  simulation
virl2-client
Client library for the Cisco VIRL 2 Network Simulation Platform
Stars: ✭ 39 (+95%)
Mutual labels:  simulation

NDCell Release badge Tests badge Discord badge

NDCell logo

Any number of dimensions
Any neighborhood range
Any computable transition function

Simulate any deterministic cellular automaton

A fast, flexible, and feature-rich interactive multidimensional cellular automaton simulator written in Rust.

Downloads

Download the latest release.

To build NDCell yourself, see BUILDING.md.

Screenshots

Click to view full resolution / play video.

Gosper's Glider Gun simulated for 57 generations Catacryst simulated for 7.9 million generations WireWorld primes calculator simulated for 2.9 million generations, displaying the number 23 3D WireWorld XOR gate supporting 3-micron signals

What works right now

  • 2D and 3D rendering, simulation, and editing
  • Copy/paste
  • Save/load files

See the Changelog for the latest list of features.

What's planned for the future

In roughly descending order of priority/likelihood:

  • Everything on the short-term to-do list
  • Arbitrary range and neighborhood within a reasonable limit.
  • Custom symmetries with different cell states for each orientation. Any symmetry can be used in part or all of the transition function.
  • Custom colors and icons with several built-in presets and primitives.
  • Custom 3D models with several built-in presets and primitives.
  • Lua scripting for custom rule generators and other plugins.
  • Command-line interface for use in scripts and other automated tools.
  • Anywhere from 4 to 6 spatial dimensions supported via CLI.
  • 2D and 3D spacetime for 1D and 2D rules respectively.
  • Spacetime residue - Rules will be able to define several arbitrary "spacetime residues" (linear combination of spatial and temporal positions, modulo some value) available for use in the transition function, within some reasonable limit. This means a rule like Busy Boxes would only need 2 states instead of 7.
  • Block CA such as Margolus - This would be possible anyway with the spacetime residues above (using x + time mod 2 and y + time mod 2), but native support would improve ergonomics.
  • Custom regular tilings including hexagonal and triangular neighborhoods.
  • Reversible CA - "Go back in time" in a reversible CA, if an inverse transition function is defined.
  • Grid topology - Each axis will be able to be infinite, half-infinite, finite, looped (torus), looped with an offset (twisted torus), or flipped (Möbius loop),
  • Infinite agars and native support for "B0" rules

What's NOT planned for the future

These are things that NDCell will probably never support, in rough order from least likely to most likely:

  • More than 256 states - Original plans for NDCell included up to 2^64 states, but this particular generalization has proved much harder to support than arbitrary range or number of dimensions without significantly harming memory usage and speed for automata with 256 states or fewer, which comprise the vast majority of CA. Hopefully other features like spacetime residue will be able to curb the number of states required for most automata.
  • LtL and other "continuous" CA - Although NDCell can simulate LargerThanLife with smaller neighborhoods, continuous CA are better simulated using GPGPU. Ready is a fantastic simulator for such automata written by the Golly Gang.
  • Nondeterministic CA - Nondeterministic CA are incompatible with HashLife, which NDCell relies on for efficient simulation. It's possible that NDCell will support non-hashing simulation in the future, but nondeterministic CA would still require significant work to make usable.

Contributing

NDCell is currently under very rapid development, and a lot of things are in flux. Bug reports/fixes and minor feature requests are welcome, either via Discord or the issues tracker, but the project is currently not in a position to accept larger contributions. Ideas and feedback are always welcome on the Discord server.

License

Licensed under either of

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].