Here's a 3D programmable universal constructor -- with physical kinematic cell blocks that can slide around, rotate, attach and detach with each other, to build machines that can collect, sort, store and assemble the parts they need from the environment to reproduce themselves.
http://www.srm.org.uk/papers/CBlocks3D_programmable_construc...
https://www.youtube.com/watch?v=PBXO_6Jn1fs