Port of bubble packing example to Angular