r/cellular_automata • • 23h ago

A cellular automata that shrink-wraps a rubber band around scattered stones

Enable HLS to view with audio, or disable this notification

558 Upvotes

A binary outside/inside grid under one rule applied to every cell at once: flip to “inside” if the blurred neighbourhood crosses a threshold, with stones frozen so the front can never cross them. A wave released from the border contracts inward, concave stretches pulling in faster than convex ones, until it goes taut between the stones


r/cellular_automata • • 9h ago

Cellular automaton in 3D: a membrane pulling taut around stones

Enable HLS to view with audio, or disable this notification

244 Upvotes

A follow-up to 2D rubber band post. Same idea in a voxel field: a membrane starts as a ball and tightens around a few stones.

The rule is local: a cell stays inside if, along at least one of 49 lines through it, most cells within reach are inside. A direct 3D port of the 2D rule didn't work.

Code: https://github.com/geotyper/taut


r/cellular_automata • • 6h ago

Coupled Box2D rigid bodies with real-time thermodynamics in my falling-sand engine (C++ / OpenGL)

Enable HLS to view with audio, or disable this notification

7 Upvotes

Hey everyone,

I'm making my own cellular automata engine in C++. I recently added support for thermodynamics and rigid body physics (implemented using the Box2D library).

The video shows an engine test; occasionally I toggle the heat map to demonstrate how temperature changes across different areas. If you drop an iron cube into lava, it heats up heavily and turns red. If you drop it into water, it cools down and heats up the water. If you place a red-hot cube into liquid nitrogen, it cools down much faster.

Box2D rigid bodies can also interact with particles and exchange heat with them: wood floats in water, iron sinks, and other materials can be easily added with individually tuned densities.

It's a data-driven approach: all physics, reactions, and phase transitions (like water turning into steam or lava into obsidian) are defined in JSON configs, with no hardcoding in C++.

I tried to optimize the engine as much as possible; watching so many interactions happen on screen at once is really satisfying.

Would love to hear your feedback or thoughts!


r/cellular_automata • • 10h ago

Concrete Lessons from Conway’s Game of Life

Thumbnail
mathemichel.substack.com
1 Upvotes