I have spent countless hours playing with the R3F - adding vertex and fragment shaders, eventually giving up. The math is just tedious.
https://github.com/sparkjsdev/spark-react-r3f
https://github.com/sparkjsdev/spark-react-r3f