===== Blue Sky Project Ideas ===== === Radiation-hardened 2D Pong === //Name shamelessly derived from [[https://github.com/mame/radiation-hardened-quine|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 [[people:joaquin|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 [[people:divs115|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). === Wall-less Garden === The "Wall-less"-ness here refers to the fact that the MFM is indefinitely scalable in theory. This idea was born during the makeshift class exercise on Monday, Sept 18, where we tried to create a ''Leaf'' Element that would grow in response to ''Ray''s projected by a ''Sun''. This idea could be expanded to produce several different plant types (perhaps encoding some notion of inter-species germination) that depend on a finite set of resources (energy from the sun, water, nutrients from the soil). It could be fun to try to grow a garden, of sorts. There's lots of room for growth here, in the form of variety of plants each potentially composed of smaller elements, and in the environment necessary to encourage "organic" behavior. Something that would need to be answered soon is: "Is this a side-on or top-down view?" I'm tempted to have something top-down, since that permits growth of tall, sun-hogging plants, and shorter plants that thrive without the sun's energy. This project idea seems to fall more in the "Art" side of things, serving no practical purpose that I can think of other than to watch something pretty (or not) emerge.