This is an old revision of the document!
Blue Sky Project Ideas
Radiation-hardened 2D Pong
Name shamelessly derived from this monstrosity.
This idea is described in a series of successive approximations of the final goal.
First Approximation - A Bouncing Ball
The first approximation of this idea is simple, zero-player (zero-AI) Pong, with
a single Ball
atom, and immovable Paddle
atoms along all edges of the
MFM universe. The Ball
would move in a consistent direction (if not at a
constant rate) and rebound off the Paddle
atoms.
Second Approximation - Message-passing Board Substrate
The next step would be a large one, implementing a message-passing substrate
Board
type that could broadcast information about the state of the Ball
that Paddle
s can (eventually) respond to. Taking a page from
joaquin's Ant model, the Ball
would likely be the
(movable) center of the universe, and Paddle
s would receive relative offsets
and maybe a movement vector.
Third Approximation - Robust, Multi-cellular Ball
With robustness being a primary goal of the MFM architecture and the
accompanying philosophy, simply creating a Pong-like “game” does not make for a
very interesting project. This phase would add robustness to the Ball
,
hopefully taking on some multi-cellular form. Ideally it would retain some
ball-like shape, and be tolerant to bit-flips and partial population-loss. The
board may play an integral role in achieving this, being a source of data
redundancy.
Final Approximation - Autonomous Paddles
At this stage, the Paddle
walls will be reduced in size to make the model
looks something like real Pong. Ideally, they will also be fault-tolerant
(self-replicating, in some way) but also resource-bounded (Res
?) to
discourage overgrowth into impermeable walls.
Stretch Goal: Human Input
I have no idea how feasible it would be to bind keyboard events into the MFM. If this would involve significant C++ hackery, I suspect it's beyond my abilities. I need to do research here.
Bignum Arithmetic
After Sridivya's comments about the viability of the MFM for correctness-sensitive applications (e.g. a calculator), I thought it might be interesting to try to construct a system for arbitrary precision arithmetic with extremely high probability of correctness, roughly on par with the expectation of correctness in traditional computing paradigms.
This idea feels at odds with the robust-first philosphy, but it seems like it would be worthwhile to show that robustness and correctness aren't mutually exclusive (or, in the event of failure, make no strong claims).