This whole method is a bit imperative... you can actually write it in as one expression like this:

    @_i-box.normalize-point v, false
      |> new paper.Point _
      |> (.multiply [1 -1]) 
      |> (.add [-0.5 0.5]) 
      |> (.multiply [@_sw, @_sh]) 
      |> (.add [@_width, @_height])

And it would be even simpler if you stored `@_sw` and `@_sh` in one list (and similarly for the width and height). (suggest `@_scale` and `@_dim`?)