feat (visual): Add shape function