
Robust-First Computing: Distributed City Generation (2015) [video] - DonHopkins
https://www.youtube.com/watch?v=XkSXERxucPc
======
DonHopkins
A Movable Feast Machine [1] is a "Robust First" asynchronous distributed fault
tolerant cellular-automata-like computer architecture.

The video "Distributed City Generation" [2] demonstrates how you can program a
set of Movable Feast Machine rules that build a self-healing city that fills
all available space with urban sprawl, and even repairs itself after
disasters!

The paper "Local Routing in a new Indefinitely Scalable Architecture" [2] by
Trent Small explains how those rules work, how the city streets adaptively
learn how to route the cars to nearby buildings they desire to find, and
illustrated the advantages of "Robust First" computing:

Abstract: Local routing is a problem which most of us face on a daily basis as
we move around the cities we live in. This study proposes several routing
methods based on road signs in a procedurally generated city which does not
assume knowledge of global city structure and shows its overall efficiency in
a variety of dense city environments. We show that techniques such as
Intersection-Canalization allow for this method to be feasible for routing
information arbitrarily on an architecture with limited resources.

This talk "Robust-first computing: Demon Horde Sort" [4] by Dave Ackley
describes an inherently robust sorting machine, like "sorting gas",
implemented with the open source Movable Feast Machine simulator, available on
github [5].

A Movable Feast Machine is similar in many ways to traditional cellular
automata, except for a few important differences that are necessary for
infinitely scalable, robust first computing.

First, the rules are applied to cells in random order, instead of all at once
sequentially (which requires double buffering). Many rule application events
may execute in parallel, as long as their "light cones" or cells visible to
the executing rules do not overlap.

Second, the "light cone" of a rules, aka the "neighborhood" in cellular
automata terms, is larger than typical cellular automata, so the rule can see
other cells several steps away.

Third, the rules have write access to all of the cells in the light cone, not
just the one in the center like cellular automata rules. So they can swap
cells around to enable mobile machines, which is quite difficult in cellular
automata rules like John von Neumann's classic 29 state CA. [6] [7]

Forth, diffusion is built in. A rule may move the particle to another empty
cell, or swap it with another particle in a different cell. And most rules
automatically move the particle into a randomly chosen adjacent cell, by
default. So the particles behave like gas moving with brownian motion, unless
biased by "smart" rules like Maxwell's Demon, like the "sorting gas" described
in the Demon Hoard Sort video.

In this video "Robust-first computing: Announcing ULAM at ECAL 2015" [8],
David Ackley explains why "Robust First" computing and computing architectures
like Movable Feast Machines are so incredibly important for scaling up
incredibly parallel hardware.

I think this is incredibly important stuff in the long term, because we've hit
the wall with determinism, and the demos are so mind blowing and visually
breathtaking, that I want to try programming some of my own Movable Feast
Machine systems!

[1] [http://movablefeastmachine.org/](http://movablefeastmachine.org/)

[2]
[https://www.youtube.com/watch?v=XkSXERxucPc](https://www.youtube.com/watch?v=XkSXERxucPc)

[3]
[http://www.cs.unm.edu/~ackley/papers/paper_tsmall1_11_24.pdf](http://www.cs.unm.edu/~ackley/papers/paper_tsmall1_11_24.pdf)

[4]
[https://www.youtube.com/watch?v=helScS3coAE](https://www.youtube.com/watch?v=helScS3coAE)

[5] [https://github.com/DaveAckley/MFM](https://github.com/DaveAckley/MFM)

[6]
[https://en.wikipedia.org/wiki/Von_Neumann_cellular_automaton](https://en.wikipedia.org/wiki/Von_Neumann_cellular_automaton)

[7]
[https://en.wikipedia.org/wiki/Von_Neumann_universal_construc...](https://en.wikipedia.org/wiki/Von_Neumann_universal_constructor)

[8]
[https://www.youtube.com/watch?v=aR7o8GPgSLk](https://www.youtube.com/watch?v=aR7o8GPgSLk)

