One area of SMIL Animation that seems to be unclear is the underlying value to be used when animating scale, especially for by‑animations.
SMILANIM 3.2.2 says that by‑animation is:
simple animation in which the animation function is defined to offset the underlying value for the attribute, using a delta that varies over the course of the simple duration, starting from a delta of 0 and ending with the delta specified with the by attribute.
I’m pretty sure that the underlying value of scale when it’s not otherwise defined is 1. I think this fits with the discussion on www-svg (but just to be sure I’ve posted my query). It certainly makes sense if you assume that an element without a transform specified can be considered to have a transform that corresponds to the identitfy matrix where the scale is 1 (for both x and y).
by represents a delta then
by="1" means to ADD to the scale
So a by‑animation of
by="1" operating on an element without any
transform specified should animate from scale=“1” to scale=“2”.
Here is a test case based on this understanding:
UPDATE: See Dr. Hoffmann’s explanation below. A different understanding to mine has been adopted for the SVG Tiny 1.2 Test Suite. This understanding adopts an underlying value of scale(0 0). Here is an updated test case applying this understanding: