I gave my ElevenLabs voice agent a face (and it took less code than I expected)
For a while, my voice agent was just that: a voice. It worked, but talking to a disembodied audio stream always felt a little like talking to a smart speaker.
Then I came across Openspline, whose tagl