Should the name be an optional keyword argument then? It is very clear to me why you do:

```python
x = Symbol('x')
```

and not

```python
x = Symbol()
```

in sympy. And in the ReferenceFrame we use the name for printing purposes:

```python
a = ReferenceFrame('a')
print(1 * a.x + 2 * a.y)
1 * a.x + 2 a.y
a = ReferenceFrame('boogie')
print(1 * a.x + 2 * a.y)
1 * boogie.x + 2 * boogie.y
```

But I'm not seeing an immediate use case. But optionally displaying a text name in the visualization of the shapes that are moving around may be useful. I just don't want to add in extra stuff to type if it is never used.