============ 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``.