Programming the urban surface