Visual programming of customizable building components: review of three academic experiences