3.3 - New Concepts< Seed Factories
This section lists miscellaneous new or significantly expanded concepts which relate to Seed Factories.
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. 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 are negative values (you are consuming a resource), and outputs are positive values (you are supplying a resource). By tracking all the resources and making sure the quantities balance, you can ensure the design is complete. Functionally, this accounting method is similar to the double-entry method of bookkeeping, where debits and credits must balance. The main difference is applying it to every type of resource, and not just money.
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 also be designed to work together:
- 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. 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. This is similar to a programming language compiler that converts higher level statements in a given language to machine language.
We are not aware of such a 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 automated. 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 equipment into the flow.
Production planning is not an entirely new topic. Some existing methods from Industrial and Manufacturing Engineering that may be relevant include Process Specification Language, and various manufacturing planning methods and software.
- Tool Drivers
Hardware drivers for an operating system are not a new idea, but suitable control software for the 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.
- Augmented Reality Simulation
Mistakes in building and operating the factory would be 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.
- Remote Operations Software
This would use the same core as the augmented reality simulations, except it interfaces with real hardware 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.
Project Scaling and PhasesEdit
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 task. 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.
- Growth Sequence
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.
In computer science, we have the idea of a Universal Turing Machine, which can compute any computable sequence. In the field of nanotechnology, a Universal Molecular Assembler could in theory assembly 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.