Let SourceAtom = Atom * BlendWeight Rotation is accumulated multiplicatively (Rotation = SourceAtom.Rotation * Rotation). Translation is accumulated additively (Translation += SourceAtom.Translation) Scale3D is accumulated assuming incoming scale is additive scale (Scale3D *= (1 + SourceAtom.Scale3D))