Close

Project description clarified and updated

A project log for Reactron Overdrive

A small but critical number of minimally complex machines interact with each other, providing machine augmentation of human activity.

kenji-larsenKenji Larsen 06/09/2014 at 21:030 Comments

I have updated the project description.

The original description, preserved below, described what the system is, and the paradigms behind its structure. But it seemed maybe too high-level and perhaps did not convey everything I wanted, so I decided to write a new description focused instead on what the system does. And a bit on why I built the system.

I was concerned that the original description could have conveyed the sense that the system was some sort of parallel-processing scheme, basically a complex computer built from many simple ones. While that is in some ways true, that is really not the thrust nor the purpose of the system. Additionally, the system is not trying to outperform any benchmarks - it will work with slow hardware or fast hardware. The main standard is human response time, and even old machines are very fast by comparison. I have ten year old machines running on the system that work quite well. They may not be able to load a bloaty modern web app, but I don’t use them for that. It will be 2038 before they are obsolete - they will probably cease functioning for other reasons before then (I can’t tell you how many CPU cooling fans and electrolytic capacitors I have replaced...)


Original description:

DESCRIPTION

We view our tools as extensions of ourselves. This paradigm results in very complex machines as technology progresses. Complex things tend to be expensive, hard to maintain, and prone to failure or instability. The result has been less-than-optimal machine interfaces that waste our time and resources, and create unwanted dependencies.

Small computers are now sufficiently inexpensive to be ubiquitous, and sufficiently powerful to provide the minimum complexity to build a system using a different paradigm: very simple machines can be building blocks that form extremely complex and capable systems.

This project seeks to demonstrate a small system of machine units, that can produce a few concrete results in the physical human world. This requires a new machine dedicated to the communication with the user. All other system capabilities are provided by other individual units. Natural integration means minimal training, less frustration, and more time for humans to do human stuff.


DETAILS:

Human culture has produced a lot of amazingly complex things, from literature and art to science and technology. Humans are built of complex chemical structures with specialized behaviors. Enzymes and proteins flex and twist, react and interact to create each individual human, each a part of human culture. These complex chemicals are in turn made of atoms, relatively simple units with relatively few and simple rules of engagement and interaction.

The highest achievements of human culture may then be considered a consequence of the minimal essential complexity of atoms - things that obey a few rules, with a relatively simple and standardized interface. It is of note that the largest atoms, with the most electron shells, the largest number of possible isotopes, and the largest number of potential states, tend toward instability.

As a builder of machines, I am striving to leverage these natural laws. I have found that it is possible to build a large number of small and simple machines to produce quite complex results. I view the tools I build not as an extension of me, but rather as a “culture” of machine units, where each individual has a certain small set of capabilities. They can communicate very fast by human standards, and can assemble and provide me with a complex result that no single one of them could synthesize on its own. I call my reactive machine units "Reactrons". Overdrive is a condition philosophically related to critical mass, expressed in terms of gear ratio - here, it is meant to evoke the idea that we have enough units to produce wonderful results without pushing any single unit to its limit (and system instability).

People require two things to facilitate communications between two cultures: an ambassador and an interpreter. An ambassador provides an expression of intent and capabilities. An interpreter provides a communications protocol to successfully transmit these expressions. Efficient interaction and understanding between cultures can result. I will build a simple version of a machine ambassador/interpreter and a small culture of machines to support that interaction.

As new units are added, the entire system’s capabilities increase, and so does its utility, without having to reinvent the whole system at each step. Old machines are not discarded - as long as they can still do their small set of tasks, they are not rendered obsolete by the newest do-everything machine. The system as a whole is fault tolerant, it maintains continuity of data despite failure of individual units. But most importantly, the machines are built to understand people, and allow people to be themselves.

This is not simply a voice-controlled computer with speech synthesis. Many others have done this, and better than can I. Indeed, while those are components of the system, they are not required, and they are both replaceable and augmentable. This system uses inputs including voice and gesture, as well as passive data acquisition like collection of vital statistics, in order to promote a machine understanding of the humans involved with the system. There are other aspects as well, such as the persistence and ownership of data. I hope others improve on it and expand its capabilities - and for that, yes, it will all be open source.

There is a lot more detail behind this, including a mathematical system I refer to as interface wave function harmonics, and I will document those details for those that want to dig deeper into the founding principles of the design.

What is being built:

1) Multiple ATMega328P-based controllers that comprise the bulk of the Reactron system. These controllers will control things in the physical world, such as control points and power for a variety of existing appliances. Most of these controllers will have the ability to communicate via RF transceiver (currently using Hope RFM69W). I have used Roving Networks RN-171 in the past for direct TCP/IP connection, however I now find it more efficient to transmit via RF to other controllers that are bridged to an SBC Linux board that manages TCP/IP traffic. However, use of RN-171 is not mutually exclusive and may be included eventually.

2) Multiple human-integration points (Integrons) that will support speech recognition and speech synthesis. These points will be SBC Linux boards such as BBB and RPi. They will have a connected ATMega328P with RF transceiver, to connect and coordinate with the "physical world nodes" mentioned above. Integrons are designed to integrate and interface with humans, and humans have other senses than hearing and other capabilities than speech. For this project the integrons will be in the form of annunciator lights to give humans a quick visual status; speech recognition and synthesis and limited gesture recognition for medium-complexity interaction, and a small screen for (relatively) high-complexity one-way interaction. A keyboard would give high-complexity two way interaction, however we already have other machines for this, and the Integron is not designed to do everything, just a few things. (There will be a separate biometric input device to replace a keyboard, anyway.) The intent is to provide an unobtrusive and ubiquitous device that delivers 80% machine integration utility for 80% of the things one needs. If, however, you want to consume complex content, you can stare at a screen. If you want to produce content, you can work at a keyboard. Those things, we already have. Problem is, we use them for everything, leading to people swiping and staring into their smartphones for long periods of time while all the potential for beautiful human activity passes by.

The items in the first category can do things that are important to us in the physical world, without our interference, or in response to our commands. The items in the second category can render to us important information about the things that are occurring in the machine world, as well as deliver commands to that world. The two together can connect our electronic lives with our physical lives, and let our philosophical lives be free to be concerned with self-realization instead of machine maintenance.

Could you use this for home automation? Sure - but it is not a home automation system. Thermostats, lights, and door locks are just simple machines with control points. A sufficiently complex system can optimize simple rules for certain desired outputs like energy savings, or going the other way, maximum illumination to avoid seasonal affective disorder, or any of an infinite number of output variables humans can dream up. The Reactron system is more like "life automation", where home automation has a partial role. Additionally, since no single subsystem is considered permanent, units can come and go, either physically, or in and out of service, dynamically. This means the system follows the human, not the home, which is just another machine, and one that is becoming overly complex (but complex enough now, to be a part of a larger system of the future). This comment is no slight on home automation and its builders - it is a hard enough task, and necessary. I hope those systems ultimately expose small and simple APIs to integrate into the human world, without forcing us to be constantly at the smartphone helm. I hope to help. For now, I am just making a system that is friendly to "whatever you want". I will build some stuff I want, to demonstrate.

Discussions