What a year.

In my adult life, I can look back and classify my years into two categories: “cultivating” years, and “fruit-bearing” years. Cultivating years were those spent learning and laying the groundwork for future things to come: doing research and learning (or, in the modern forehead slapping vernacular, “upskilling” 🤦‍♂️), getting into the deep and dirty details of building R packages, or writing for the sake of improving my writing. Fruit-bearing years were functionally the same, but punctuated by significant accomplishments: finishing my PhD, getting a job, publishing papers, or building something cool.

Figure 1: One package, one year, many features.

2018 has been a fruit-bearing year.

(Hashtag rayshader hashtag rstats, basically my signature on twitter now)

Although I first started developing rayshader in February, the seed for rayshader’s formation began slightly earlier: in San Diego during RStudio::conf(2018). When I say “began” I don’t mean in the sense of “lines of code written,” but rather in a subtle internal transformation I experienced during the conference. At the conference, I was lucky enough to present a poster on a package I had developed for work (skpr) and take the “intermediate Shiny” course. Up until that point, I had been developing and working in R in a vacuum–no real interaction with the larger R and open source community. And at the conference, I had the opportunity to ask some of the foremost developers in R about questions and problems I was working through. And almost universally, each person I asked would answer with some variation of:

“That’s a good question! Let me know if you figure out a solution.”

2018 has been a fruit-bearing year.

The conference brought me to the realization that I was there alongside them on the edge of the R development world . This realization was at once both intimidating as well as freeing: if I had a problem no one else had solved, there was nothing stopping me from tackling it myself, and my solution would likely be as good as anyone else’s. So in February, when I realized that no one had built a user-friendly mapping package focusing on aesthetics and producing beautiful topographic maps, I thought:

“Okay. I’ll do it myself.”

And when I released rayshader in May , I was pretty happy with where it stood–but interactions with the R community made me realize how much potential it had as a mapping package. So I starting learning more about mapping (as I would in any “cultivating” year!) and adding on features, which brought more community interest and kickstarted a virtuous cycle of feedback and development. Some features were requested by the community, and some began with the thought “You know, it would be cool if rayshader could < insert cool feature here > ,” usually followed by a week or two of “Oh god what did I just get myself into” which then transitioned into “Okay, this is doable.” Going from idea to implementation to release and then seeing other people start using the feature has been incredibly satisfying.

Figure 2: A small sampling of some of the fantastic creations and stories people used rayshader to help create. Twitter handles: @ClausWilke @davidawaldron @TimSalabim3 @DashWieland @JoachimGassen @iarynam @silentcarto @Reyfenberg @kestert @KaranKanishk @mdsumner @ozjimbob @thomasp85 @emilbp

What’s also been fun is interacting with new communities around the web with each additional feature in rayshader. I had no former interaction with the GIS world, but seeing GIS practitioners respond positively to a complete outsider’s mapping tool made me realize I was on the right track. Similarly, I posted it on the 3D printing subreddit /r/3Dprinting when I introduced the 3D printing functionality. Having multiple people in a completely R-agnostic community say “Wow! That looks really cool! I need to learn R now!” told me I had developed something special in the R ecosystem.

“That’s a good question! Let me know if you figure out a solution.”

And finally, it has been a joy interacting with people in the real world who are discovering rayshader. I gave a talk in December at the satRday DC conference, and seeing people’s reactions and interest in the package was incredibly exciting. I’m really looking forward to RStudio::conf(2019) this year in Austin, where I will be privileged to give a talk on rayshader and show what you can do with the package (and maybe reveal some upcoming features as well 😃). And hopefully get a few good questions that I don’t know the answer to–so someone else can be inspired to start their own journey.

So here’s to 2019! 🍾🍾