Programming 2D/3D shape-shifting with hobbyist 3D printers