A blink atempt that taught me this...

Paperjs does not store the original Path, nor does it remember any
operations that have been applied to reach the current state, so it can
be difficult to reset to a previous state. The easiest approach is to
use the this.scale that your current code is calculating and when you
want to reset do this.circle.scale(1/this.scale); Here is a jsfiddle
that way.

FYI, here is the code path for scaling:

Item.scale()
Item.transform()
Item.apply()
Path._apply()
Segment._transformCoordinates()
So the end result is that _transformCoordinates() is called on each of
the four segments in the circle, and it simply moves the point
coordinates...nothing is remembered to "undo" the scaling later.

Alternatively to remembering the scale yourself, you can use the
Path.fitBounds() function to shrink the circles to an arbitrary
size...for instance you could save the bounding rectangle right after
creating the Circle, and then fitBounds back to that size.

share|improve this answer