programmable materials assembly