Butterfly subdivision

Hi, I’m a new comer learning to know the logic behind butterfly subdivision. And I’m trying to create a program to subdivide 3D surface meshes using butterfly subdivision, unfortunately, I could not find any on the web.

Thus, I’m curious if anyone has worked algorithms or any good resources to share.

I tried searching up and down on the web, but nothing seem to be there.

I’m appreciate your help! Thank you!