3.3 - New Ideas
In the course of developing the current seed factory concept, we incorporated several ideas more recent than the 1980 AASM study described in section 2.0. We also developed a few new or significantly expanded ideas in our work since 2013. The ones not described in previous sections are collected below.
A Resource is any kind of item which enters or leaves a system, or moves from one part of a system to another. It includes materials, energy, information, human labor, and hardware. From the conservation of flows concept in section 3.2 we can apply a simple accounting method to all the types of resources within the system. The method is that (1) the sum of all resource inputs and outputs to any part of the system must equal the internal change in that part, and (2) the totals at the start and end points of flows between parts of the system must be equal. For example, if a ton of raw material is an input to a processing unit, then a ton of raw material must be supplied from somewhere else to balance the total. That could be a mining unit, or as an input from outside the factory. Either way, raw materials don't appear from nothing, they need a source.
The convention is inputs to the system as a whole, or individual functional elements, are positive values (you are supplying a resource), and outputs are negative values (you are delivering or removing a resource). By tracking all the resources and making sure the quantities balance, you can ensure the design is complete. In particular, all outputs, including waste products, must be accounted for to balance the flows. Wastes don't conveniently vanish, and by accounting for them we can optimize the design to minimize them, use them as inputs to other processes, or make sure they are properly disposed of. Functionally this accounting method is similar to the double-entry method of bookkeeping, where debits and credits must balance. The main differences are applying it to every type of resource, not just money, and intangible or subjective resources, like the Goodwill used in accounting, are not allowed.
We expect to use conventional engineering and office software to design and manage seed factories, but we have identified some new software items that likely need custom development. The following items should ideally be designed to work together and to integrate with existing software
- Process Compiler
The purpose of a factory is to produce some kind of desired outputs. This is accomplished by individual steps or operations, called Manufacturing Processes, which are combined into a Process Flow. The flow as a whole transforms the inputs, like raw materials and energy, into the outputs, like finished products and wastes. A set of design drawings which only describe the physical shapes of the parts do not tell you how to make it. More particularly, for an automated factory, it does not include the detailed operations that each machine needs to do. More complete design files would include information on the materials to use, assembly instructions, and so forth. A Process Compiler would take that kind of information and convert them to detailed operations for a given factory, and the people and machines who do the work. This is similar to a software compiler that converts higher level statements in a given programming language to the machine language a computer processor actually executes.
We are not aware of such a factory process compiler, but it would be very useful for a general purpose automated factory, especially one that grows and changes constantly. Instead of having to plan a manufacturing process for each new product, or change it each time the factory is modified, that task can be largely automated. Just like with software, automated compilation may not produce an ideal result. Some manual coding and optimization may still be needed for particular processes. But to the extent an automated process compiler works, it would be an efficiency improvement.
To make such a compiler, you would need a collection of low level operations which the factory can perform individually. They would be put in order by the compiler, based on the higher level design, and scheduled for execution. Inventory supply levels will vary, and other scheduled items may use up the supplies. The compiler would therefore need to check these levels, and add steps to increase inventory if needed. So a given production order might cascade through the factory or generate purchase orders for items that cannot be made internally. If a given part of the factory is over-used and becomes a bottleneck, the scheduler can also signal a need for expansion. The decision to expand may be manual by a human factory operator, or even automated, where the scheduler inserts an order for new factory equipment into the flow.
Production planning is not an entirely new topic. Some existing methods from Industrial and Manufacturing Engineering that may be relevant, such as various manufacturing planning methods and software. Of particular interest is the Process Specification Language, developed by the US National Institute of Standards and Technology since the early 2000's. More work is needed to see what existing methods, software, and languages can be used to implement the process compiler idea.
- Tool Drivers
Hardware drivers for an operating system are not a new idea, but suitable control software for automated factory elements will be needed. This will require custom drivers if the elements are treated as peripherals, or local software at each element if they are treated as network nodes with their own processing units.
- Augmented Reality Simulation
Unlike software bugs, mistakes in building and operating the factory would be relatively expensive and wasteful. A good simulation tool can help avoid such problems. Augmented Reality combines real world views with computer generated elements. An example would be a 3D headset that overlays simulated future factory elements over real life views of the existing factory. This allows observing new and modified factory layouts and operations before doing them in real life. Ideally the display can be used both while designing the new items, and while walking around the actual factory space. It can also be used for training operators. The display should be able to use outputs from the Computer-Aided design/engineering/manufacturing software group, and outputs of the process compiler software. Preferably it would use stereo 3D displays with force feedback for realism. As of 2016, portable headsets with good displays and mobility are just becoming available. A recent idea is the Backpack Computer, which packages an active computer of sufficient power to drive the displays and wearable interfaces into a wearable backpack. It also includes a large enough battery to run for extended times, and wireless connection to a fixed network. The mobile unit would be augmented by cameras an other sensors distributed across the factory or design space.
- Remote Operations Software
This would use the same core as the augmented reality simulations, except it interfaces with real hardware and sensors for remote operations. It would be used to control robots, and other factory equipment in an immersive fashion, when remote control is needed. Local operators in the factory, and automated operation are alternatives to this method, so which method is best will depend on the detailed situation. Remote operations have the most advantage when the local environment is difficult to reach, conditions are hostile, or operations are hazardous. They can also be an advantage when personal presence is only needed intermittently. It then saves the time and cost of travel in person.
- Project Scaling and Phases
By its nature, a seed factory will continuously evolve from a starter set to a larger and more complex production capacity. It would be difficult to design the entire evolution of such a factory and all its parts as a single project. This is especially true if the factory growth is open-ended. Conventional factory design includes breaking it down into component machines and processes. These are easier to design individually, but the factory layout is normally considered at a single point in time. For an evolving system, like the ones in this book, we also introduce the idea of breaking the design into smaller steps by size, called Scaling, and by time and location, called Phases. Scaling steps represent increase in output capacity by duplicating existing equipment or adding larger versions of the equipment. Phases represent steps which add new types of equipment, products, or locations. Scaling and phases do not have to be entirely separate. A growth stage of the factory can include some of each. The important idea is breaking up the evolution of the factory into smaller and easier to design steps.
The initial design work can then be reduced to the original size and equipment list for the starter set. The set of new equipment and modifications for each of the later growth steps we can call Expansion Sets. Expansion sets can build on experience developed in the earlier steps, plus new technology developed in parallel with using the existing factory. From an economic standpoint, deferring some of the design work till later allows making an earlier return on the first part of the work.
Division of the design into smaller chunks is a mental construct to simplify what is actually a continuous growth process. There is no requirement that a seed factory starter set or later expansion sets be installed all at once. The design may call for, say, installing 8 automated machines in the starter set. But these machines can be added one by one to an original conventional workshop, and the parts for these machines made incrementally. The capability to produce things would then grow as each new machine gets completed. So scaling and phase steps define an interval over which the capacity grows by a set amount. Within the interval, there can be many smaller increments.
- Starter Sets and Growth Sequences
When trying to determine what should be part of the starter set vs expansion sets, we can identify guidelines, but the exact sequence will be affected by the requirements and circumstances of the particular project. Early elements should be Flexible, meaning they can produce a wide range of outputs and tasks, especially if custom attachments are added to the basic element. This not only enables making diverse items for expanding the factory, but widens the market for selling items to pay for things it cannot yet make. Early elements should also provide Leverage, in terms of the percentage of mass or cost of later items they can contribute to making. Preferably they should function in small and simple versions, which reduces initial cost, and in turn the number of parts and materials they themselves require to reproduce. Later stages of factory growth can employ larger and more optimized units with more features.
Later starter sets, to be used after the first sets and locations are installed, can take advantage of the outputs of the earlier ones to supply parts and materials. They can also take advantage of operating experience from the earlier ones. So we expect multiple Generations of designs to evolve over time. Both experience and local conditions at new locations will likely drive the growth sequence and contents of expansion sets of equipment. A single standardized growth sequence and equipment set is not likely to be the right answer for all times and places. Instead, a Design Catalog of sorts would evolve, from which particular items are selected for a location or project. This is similar to how construction equipment is selected as needed for a conventional building project.
In computer science, we have the idea of a Universal Turing Machine, which can process any computable sequence. In the field of Nanotechnology, a Universal Molecular Assembler could in theory assemble any physical object by individually positioning reactive molecules. We introduce the idea of a Universal Factory, which can produce any known kind of product, when given suitable design files as input. As an existence proof, the total industrial capacity on Earth produces all known products, including itself, and so is a universal factory. It is just a very large one which we think of as "a civilization" rather than "a factory". The world's industrial capacity was built entirely from raw materials and energy starting from nothing but human labor. So humans can also be thought of as universal factories, because we made all the artifacts of our civilization including all the tools and machines. It just takes a very long time for humans to go from nothing to being able to produce all known products.
- Relation to Seed Factories
We can now consider the question of universality in relation seed factories. If we allow sufficient time to build all the necessary equipment, can a Seed Factory grow to become universal, able to make any product? Can we prove a given starter set has or does not have that capability? What are the minimum necessary processes or equipment to reach universality?
An approach to answering these questions is to recognize that every known product is made of a finite number of parts, each of which are made by a finite series of production steps, using a finite set of processes. If we list every known process, we can then identify the equipment needed to carry each of them out. This set of equipment is a subset of all possible products. We can then categorize the parts of each equipment item by the processes needed to make that part. That second list of processes is likely to be a subset of all known processes. In turn we look at the parts for the equipment for this lesser subset, and again make a list of processes. This cycle is repeated until the list of processes and equipment is no longer getting smaller. We have now defined a set which can make all its own equipment to perform all the processes to make itself, plus all other equipment and process types, and is thus a universal factory.
This universal factory can then be carefully examined to see if design changes or material substitution can further simplify the set. Ultimately you can reach an optimized set which has the fewest number of processes and types of equipment. Such a set may not be the fastest growing, however. A different set of starter machines, which may not be universal at first, and take inputs of added parts and equipment, may grow more quickly to a desired capacity. The idea of universal factories is very new, and more work is needed to understand it and how to apply it. The idea of universal Turing machines has proven very useful in computer science. We think it is worth exploring universality in factory production on the chance it proves equally useful.