I am wondering how to procedurally model a tree trunk with partially above ground roots. Something like this:

What I have so far, based on YouTube videos I have watched is, just for the trunk:
-A line node going updward
-Resampling it
-Attribute noise to the position
-Sweeping it

I am also wondering if there is a way to make in non-manifold but still edit the normals to make it look connected when shaded with textures.