Tyler Morgan-Wall
@tylermw.com
4.4K followers 130 following 260 posts
R, data science, dataviz, maps, experimental design, raytracing. Developer of rayshader, rayrender, and the rayverse | PhD in Physics from Johns Hopkins | Penn
Posts Media Videos Starter Packs
Pinned
tylermw.com
Hi all! A (re)-introduction: I'm Tyler, developer of #rayshader and the #rayverse, a collection of R packages for 3D #dataviz and #mapping.

Here's one of my greatest hits (now that Bluesky supports videos!): The Earth's submarine fiber optic cable network, visualized in #RStats with #rayrender.
Reposted by Tyler Morgan-Wall
stevetornes.bsky.social
A fun map I made of the Kootenay Region
With elevation, rivers, and major roads
Zooming in, you can see all the rivers and ridges

#rstats #rayshader #britishcolumbia #bc
Map of the Kootenay Region, BC
With elevation, rivers, and major roads
Reposted by Tyler Morgan-Wall
pablo-jarrin-v.bsky.social
An interpretation of Humpback whale sightings (radio and visual sightings).
A total of 5,370 data points were rendered as light sources over the ocean, illuminating the coast of Ecuador and the Galapagos. Rendering done with #rayshader.
Reposted by Tyler Morgan-Wall
karimdouieb.bsky.social
🍩 What if climate looked like a donut? 🌍
Here’s a bunch of cities turned into a sweet dataviz experiment.

🟡 → comfy zone
🔴 → hot
🔵 → cold

Why a donut? Let me explain 👇
tylermw.com
Honestly it depends on the goals and students of the intro course! I'd say generally yes, but if you're dealing with practitioners taking a course that's more application focused (i.e. they're never going to multiply a matrix in their life but want to know how to interpret a model), then maybe not!
tylermw.com
Coursework will vary depending on the goals of the course, but for documentation I'd say anything you'd include in the details in a methods section of a paper describing the package I'd include in the docs to a similar level of detail.
tylermw.com
Writing a paper? Documentation for a package? Developing coursework? Definitely context specific for both.
Reposted by Tyler Morgan-Wall
pkgload 1.4.1 is now on CRAN, with many fixes for the generation of `compile_commands.json`. If you write C/C++ code in your packages with Positron or VS Code (or any IDE with the clangd LSP), make sure to update. Thanks a lot to all contributors! #rstats
Reposted by Tyler Morgan-Wall
Reposted by Tyler Morgan-Wall
jofrhwld.bsky.social
a gif of a sound wave made possible by combining the new stat_manual, position_nudge aesthetics, and gganimate
tylermw.com
Meshes can be built pretty easily from raw index/vertex data with construct_mesh() [https://www.rayvertex.com/reference/construct_mesh.html], and you can even write the scene to an OBJ when you're done or throw the scene into rayrender as a raymesh_model() if you want to get real fancy :)
tylermw.com
Definitely recommend rayvertex for this particular case! Headless rendering and avoiding rgl calls was rayvertex's raison d'être. Over time it's also developed some nice features with meshing (especially if you want to subdivide and smooth meshes), materials, and lighting, so try it out!
Reposted by Tyler Morgan-Wall
emilyriederer.bsky.social
Really insightful post from Julie Tibshirani (spotted in LinkedIn, can't find on Bsky) reflecting on #rstats 's unique governance structure and what can be learned for other languages

jtibs.substack.com/p/if-all-the...
If all the world were a monorepo
The R ecosystem and the case for extreme empathy in software maintenance
jtibs.substack.com
tylermw.com
You can get pretty far but that approach, but you can end up with degenerate scenarios like below with no good ordering. One thing you can do to work around that is just to subdivide meshes so they are made up of smaller triangles, which make it harder to run into such scenarios.
tylermw.com
One of my favorite things about developing rendering packages is finding real world "golden" tests: I'm finalizing a realistic sky generation package and saw the moon in a nice configuration with the sun yesterday, so I snapped a pic, compared the render, and fixed a small vector math bug! #RStats
Picture of a half moon with the sun coming from the upper left Rendering of a waning gibbous moon with the sun coming from the upper left Rendering of a half moon with the sun coming from the upper left
tylermw.com
Perspective correction will be impossible in grid—once you go down that rabbit hole, you’re going to end up writing a rasterizer :) if your ultimate goal is to play with SDFs and meshing and not rasterization, you can always use rayvertex for the rendering step
Reposted by Tyler Morgan-Wall
moreorloess.bsky.social
Some distraction: Particle size distributions down a loess core, measured with laser diffraction. Upper ~10 m is Late Pleistocene loess with a coarser mode, below that Middle Pleistocene loess units with finer mode and more of a fine "shoulder". Uses ggplot2 and #rayshader.
Three dimensional perspective plot of changing particle size distribution with depth in a core, up to 25 meters depth.
Reposted by Tyler Morgan-Wall
randy.pub
Devastating dad joke miss not referring to this as “embraces the {} notation”
Reposted by Tyler Morgan-Wall
konsta.happonen.eu
Hey #rstats and especially {targets} peeps! What are some good ways to modularise long _targets.R files? I'm generating all figures for a book in one script and it's getting a bit unwieldy. I'm thinking of breaking the script into shorter subscripts by e.g. chapter to make it more readable.
A targets script that is ~ 2000 lines long
tylermw.com
CRAN (un-officially) endorses the {bracket} notation of referencing packages! #RStats
chriskenny.bsky.social
I've never seen a CRAN email mentioning the update of another #rstats package before:

> The new errors are from yesterday's update of {ggplot2}.

I guess it makes sense for the scale of revdep checks, as nearly 20% of other packages import ggplot2!
An email saying:

Dear maintainer,

Please see the problems shown on
<https://cran.r-project.org/web/checks/check_results_ggredist.html>.

The new errors are from yesterday's update of {ggplot2}.

Please correct before 2025-10-03 to safely retain your package on CRAN.

Best wishes,
The CRAN Team
tylermw.com
Also, easier custom stats with stat_manual()? Awesome!
tylermw.com
I do appreciate when a satirical website goes all-in on the premise: there's blog posts, job announcements, and more little details that definitely provide several Hearty Chuckles worth of entertainment (such as the job posting below)
tylermw.com
The updates to discrete scales and position aesthetics are worth the price of admission, I've spent undue brainpower over the years with dumb categorical -> continuous pseudo mappings and bespoke offset functions to get aesthetic outputs: hopefully, no longer!

#RStats
thomasp85.com
I am beyond excited to announce that ggplot2 4.0.0 has just landed on CRAN.

It's not every day we have a new major #ggplot2 release but it is a fitting 18 year birthday present for the package.

Get an overview of the release in this blog post and be on the lookout for more in-depth posts #rstats
ggplot2 4.0.0
A new major version of ggplot2 has been released on CRAN. Find out what is new here.
www.tidyverse.org
Reposted by Tyler Morgan-Wall
zeileis.org
🚨 Relaunch of CRAN Task View: Clinical Trial Design, Monitoring, and Analysis
#rstats

Complete rewrite by an int'l team of experts in #clinicaltrials

Ya Wang, Thomas Jaki @thomasjaki.bsky.social, Laura Pascasio Harris, Orla Doyle, Elias Laurin Meyer, Wilmar Igl

cran.r-project.org/view=Clinica...
Screenshot of the CRAN Task View "Clinical Trial Design, Monitoring, and Analysis" at https://CRAN.R-project.org/view=ClinicalTrials