The quick way (if you don’t need to look inside the cylinders) is to render a sphere located at the intersection of the vectors passing along the axes of adjacent cylinders with same radius as the cylinder - basically a ball joint. Other options
require much more work.
If you really want to render poly pipes you will need to look at something like GLE tubing and extrusion GLE Tubing and Extrusion Fact Sheet .
This is quite a big topic. The sdk only produces old OpenGL code.
There is my glhlib which has a function called glhCylinder.
It just computes the cylinder and gives you the indices and vertices. See the header file for an example. Sorry dude, it doesn’t do cylinder joining. Maybe in the future, I’ll add that.