taxonomy tree of industrial processes

SKDB overview diagram

SKDB: apt-get for hardware

the social knowledge database of specifications for open source hardware packages.

git clone git://
web repo:
irc: ##hplusroadmap (logs; webchat)
mailing list:
mailing list archives:

SKDB is incomplete and in hibernation mode for the indefinite future


SKDB is a method for sharing hardware over the internet. By “hardware” we mean not just designs for circuit boards, but also biological constructs, scientific instruments, machine tools, nuts and bolts, raw materials, and how to make them.

You don't need to reinvent the wheel every time you begin a new project. Someone out there has probably already done most or all of the work for whatever you are trying to do, and then released the plans on the internet. There are many common tools and parts involved in making things. If only we could just “get” everything automatically from the web, DIY manufacturing would be much easier. Essentially we want to do something like “apt-get” for Debian or “emerge” for Gentoo, the Linux software package managers. SKDB simplifies the process of searching for free designs, comparing part compatibility, and building lists of materials and components and where to get them. You could even say SKDB is “apt-get but for real stuff”.

In SKDB, hardware is organized into packages. Packages are a standard and consistent way for programs to find data. Packages may contain CAD files, CAM parameters, computer-readable descriptions of product specifications, product-specific code, and bill of materials. For each part in a package there are a number of interface definitions, which describe how the part can connect with other parts, even parts from other packages. Each package also lists dependencies which have to be bought or built in order to successfully carry out a project. For example a drill press is required to make holes with a certain level of accuracy. SKDB downloads all of the dependencies automatically and compares them to your existing inventory, and generates instructions for your CNC machinery if you have any.

Quick document links


Lego mechanical interfaces demo

lego brick simple connection graph demo lego brick simple connection graph demo lego brick simple connection graph demo lego brick simple connection graph demo

Lego mechanical interfaces specification

screenshot of simple program in a bpython terminal showing a list of mechanical interfaces screenshot of a simple program in a bpython terminal showing a yaml representation of a mechanical interface a graph diagram showing a network of connected lego bricks


H+ Summit 2009

part 1:

part 2:

part 3: