Can’t remember who came up with this, but it’s fairly standard… I just added my own touches to it.
Here is the node setup: