Tyler Morgan-Wall
@tylermw.com
4.4K followers 140 following 270 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
cameronjnixon.bsky.social
Actual hail swaths per MRMS MESH >= .75", colored by measured hail size. I'm not sure when the world will be ready for this kind of data but it sure is sweet
Reposted by Tyler Morgan-Wall
coolbutuseless.fosstodon.org.ap.brid.gy
#rstats Dev Diary - Glitched 3D rendering of a signed distance field

This should be a stack of spheres. But it isn't. And I love it!!!!
Glitched 3d rendering of a signed distance field
Reposted by Tyler Morgan-Wall
coolbutuseless.fosstodon.org.ap.brid.gy
#rstats Dev Diary

Oh yeah! I'm definitely loving this :)

Glitched 3d rendering
Glitched 3d rendering of a stack of cubes
tylermw.com
Smooth like butter!
Reposted by Tyler Morgan-Wall
coolbutuseless.fosstodon.org.ap.brid.gy
#rstats Dev Diary - signed distance fields can be constructed from arbitrary user-supplied functions.

* specified using signed distance field
* marching cubes to convert to mesh
* render mesh in {rayrender}
A 3d rendering of an organic (ish) shape. Function defining the signed distance field of this organic(ish) shape.
tylermw.com
Nice! Love new meshing projects. FYI, you can fairly easily install OIDN (see attached image from rayrender's GH repo) and get fast de-noised output to remove all those fireflies from the rayrender output without increasing sampling time
Reposted by Tyler Morgan-Wall
coolbutuseless.fosstodon.org.ap.brid.gy
#rstats Dev Diary - Figured out some #rayrender settings which work!
Stack of balls rendered in 3d with #rayrender Code to render a stack of balls with #rayrender
tylermw.com
Okay, I opened an issue to discuss adding hierarchical code folding to RStudio!

github.com/rstudio/rstu...

If you want to try it out yourself (and don't mind waiting walking away from your computer for a long time while boost compiles), try out the branch here:

github.com/tylermorganw...
#Rstats
Reposted by Tyler Morgan-Wall
pablohernandezb.bsky.social
📢 New Map Alert! Just finished this detailed 3D hydrologic map of Venezuela🇻🇪. See the country's rivers like never before!

It's time for another #1Week1Project📅💻, find out how you can make your own gorgeous map too!

Let's open a 🧵👇🏽

#HydrologicMap💧🗺
#DataArt🎨📊
tylermw.com
That's what I thought! I was so flabbergasted it wasn't the default (like it is when code folding a function) I needed to make it happen
tylermw.com
the amount of time to add this feature into RStudio was less than it took to compile RStudio itself (thanks boost headers!)

AI is bad at a lot of things but it sure makes interfacing with large code bases much easier ("Please tell me where all the code folding logic exists in this repo")
tylermw.com
There's almost always a point in a complex analysis (here, it was triggered by a long {targets} pipeline) where jumping around to find what I need becomes a bit of a slog (lots of CTRL-F), and in those times I find it nice to fold everything I'm not actively working on away
tylermw.com
Everything's the same as RStudio's current section headers except for respecting the hierarchy when folding, so no
tylermw.com
"Man, I really wish RStudio respected hierarchy in code-folded section headers... I wonder how easy it would be to..."

(inner voice: DON'T DO IT! IT'S NOT WORTH IT! JUST GET BACK TO WORK! THE YAK IS BEST LEFT UNSHORN!)

"... I'm gonna do it."

#RStats #RStudio
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!