summaryrefslogtreecommitdiff
path: root/doc/tb.rst
blob: 706cf3f3557db332dcc0599349206915d1192b27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
============
Tangible Bit
============


What is Tangible Bit?
~~~~~~~~~~~~~~~~~~~~~

Tangible Bit is a project intending to link together all aspects of digitial manufacturing through a series of 
datasets. The aim is to create a database of sites hosting manufacturing equipment or inventory, objects, materials, 
manufacturing processes and so on.

Manufacturing processes are defined in terms of inputs and outputs, which can in each case be either materials, 
objects or intangibles (such as "electricity" or "pressure"...). By constructing such a database it is possible to 
use graph search methods to find paths from inventories to finished products, and optimize said paths in terms of 
envionmental impact (unwanted outputs), distance materials or objects must travel, number of manufacturing steps, and 
so on.

Materials are defined in terms of physical properties, and objects are simply detailed descriptions of their mechanical
and physical properties, often in the form of CAD files, photographs, documentation, etc.

Sites host equipment and inventories, equipment provides capabilities, capabilities map to manufacturing processes.

Sites can also, optionally, take orders for the construction of objects and can choose whether to accept orders based 
on a number of variables. Users can then make orders for particular objects or materials, either from specific sites 
or from whichever site processes the order first.

Tangible Bit defines three user interfaces for understanding and interacting with all of this: a website, an XMLPRC 
interface, and a text mode client inspired by skdb and apt-get. Other user interfaces might become sensible and 
available in the future, but for now we make do with these.

All of this works together to create a platform for handling the long-tail of manufacturing by crowdsourcing 
production capacity, organizing the supply and demand chains in a peer-to-peer fashion, and provide an open access 
database of materials, objects and fabrication methods which can be used for practical or research purposes.

For the time being this is designed as a monolithic system with one central database, but this is only for simplicity 
in the first iteration. It is both possible and desired for future development that the Tangible Bit software be 
operable on a host of different locations, and that these locations can choose to network together using some 
protocol.


Industry 2.0
~~~~~~~~~~~~

The Industrial Revolution failed to create the right environment for human development: instead of decreasing our 
requisite workload, improve our physical and mental health, increasing our overall happiness and allowing us to 
better ourselves indefinitely, it managed to alienate humans towards each other in increasingly polluted urbanized 
environments where a substantial amount of time is used to commute to jobs that people don't like, to generate wealth 
for owners of the means of manufacturing for a fragment of the proceeds, in order to conduct more business in an 
artificially scarcified market.

Industry 2.0 is the movement to redo the industrial revolution with humankind at its core and not the ownership of 
ideas. This provides an implicit promise for the reduction and demarketization of required work - the golden age of 
unemployment - and the elimination of artificial scarcity, which has for decades dithered and confused priorities 
regarding the manufacture of all products worldwide. Food scarcity, for example, is a shared illusion perpetuated by 
the need of food manufacturers to sustain themselves in a scarcity-based economy, and as a result millions starve while
2/3 of all food produced worldwide is thrown away at various stages in the materials economy.

Tangible Bit is a direct attack on this system. The materials economy can do better. Humanity can do better. Tangible 
Bit is an Industry 2.0 application in that it is built around the understanding that the current industrial model is 
unsustainable, and that only with a deep understanding of the world's supply chains, materials economy and 
manufacturing methodology can we avert the demise of humanity. The goal of Tangible Bit is to make the world's 
first global scale indstrial information system. No less.

Freedom
~~~~~~~

Tangible Bit is free software. It is developed and distributed under the terms of the GNU General Public License 
v3.0. The datasets made available through Tangible Bit are distributed under the terms of the Creative Commons 
Attribution-ShareAlike license.

The reason for this is simple: We believe that the stated goals cannot be acheived with competition for maximizing 
profit, but only with cooperation to minimize profit. In the current legal model it is all but impossible to 
encourage any form of cooperation within the production sector, but we believe that by adopting a copyright policy 
that allows for free sharing of information and code with the requisite demand that others contribute to the commons 
we can achieve our goals faster.

Some people would claim downsides to this, that by making all information available it somehow diminishes the market 
status of corporate entities, that it denies them the capability to control prices and ensure profit, that it levels 
the playing field in a way unfavorable to large entities, and that it disincentivizes people.

Well, good. That's the plan. We don't want people to profit, we want them to prosper. We want the playing field to be 
level, we want all people to be equal. We think that people shouldn't have a market-driven incentive to be bad to 
each other.

We believe in the freedom of the individual, and we believe that the individual cannot be free while enslaved in the
current industrial paradigm. Liberation from this is what we strive for.


Industrial Information System
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Inspired by Stafford Beer's CyberSyn project and subsequent thoughts on Business Intelligence, the core functionality of
Tangible Bit is that it is an Industrial Information System (IIS). 

Product catalogue, inventory, process mapper, and so on. It is also a supply chain management tool. Throughout the 
world supply chain management is a highly complex problem requiring intricate knowledge of a very diverse set of 
parameters. Oversight is expensive. The ability to trace paths from suppliers to consumers at the industrial level 
and compare suppliers by any number of metrics is highly valuable, and as such Tangible Bit stands to offer a very 
useful tool.


Project organization
~~~~~~~~~~~~~~~~~~~~

The directories are structured like so:

* clients		- Standalone clients
	- tb-get	- apt-get like shell client (uses XMLRPC)
* server		- Django server implementation
	- sites		- Site management
	- inventory	- Inventory management
	- materials	- Materials database
	- orders	- Order and shipping
	- objects	- Object design and cataloguing
	- xmlrpc	- XMLRPC interface
	- templates	- Output templates
	- basesite	- User management, other housekeeping.
* media			- Contains media files pertaining to the server
* unittests		- Unit tests common to all.
* doc			- Documentation

Within each of the server modules (sites, inventory, materials, etc) each relevant
type of database object is handled. All objects should be handleable on the server
side both through the web interface and through the XMLRPC interface, as well as
being exportable as XML and JSON objects.

The database model for Tangiblebit is somewhat simpler. 

* **Location** - a geographic location
* **Object** - a physically representable object design
* **Material** - a simple material. Materials have many physical properties that don't readily apply to compound objects, and it would not make sense to generalize materials to objects, as
* **Inventory** - a list of physical objects available at a site. A site can have more than one inventory.
* **Users** - people who exist and can be at sites
* **Orders** - requests from users for objects or materials. Can be filled through a variety of patterns.


Materials Science Database
~~~~~~~~~~~~~~~~~~~~~~~~~~

Current database layout:

.. code-block:: python
	:include: ../server/materials/model.py
	:start-at: class Material(models.Model):
	:end-before: class Process(models.Model):

Here we need input regarding the design, structure, and contents of the materials science database.

Object System
~~~~~~~~~~~~~

See ``objects.rst``.

Industrial Capacity Mapping
~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: python
	:include: ../server/locations/model.py
	:start-at: class EquipmentCapability(models.Model):

Here we need input regarding the design of the industrial capacity mapping tool.


Inventory Manager
~~~~~~~~~~~~~~~~~

Inventory Management tool info.

Formats and Languages
~~~~~~~~~~~~~~~~~~~~~

See ``formats.rst``.

Coding Style & Development Notes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

See ``dev.rst``.