I used SpeedTree to generate the roots procedurally. For the stairway roots, the main trunk was drawn with a spline. the branches and other trunks were grown using a combination of mesh and magnet forces.
Modeling
Now with nanite meshes in UE5, I used geomety bevels instead of baked normal map bevels in my trim materials.