See also:
https://arxiv.org/pdf/1203.3602.pdf
You can also encode any monotone boolean function by hanging a picture on the wall on N nails (one nail per variable).
e.g. a "normal" hanging of a picture on two nails would encode an AND gate (it only falls if both nails are removed). But by twisting the string the right way, you can make it encode an OR gate (so it falls if either nail is removed).