Try adjusting variables to get ferns of different shapes. It's fractal, meaning self-similar in shape across scales, large and small (no matter how you reshape with variables a through d).
Standard Barnsley Fern, except I added sliders for some key variables (which allows your to make multiple ferns, of different shapes), made them horizontal (to allow more detail), and added weird coloration. The default values I saved are close to that of the standard Barnsley fern. Experimenting with the variables and studying the code helps understand how this fern is constructed.