i.distributed_among(number, 1.0..smallest) { |amount|
                with_scale(amount) {
                    with_translation(0,0,(i.to_f/number) * height) {
                        yield :child_index => i, :total_children => number
                    }