Spent the last few weeks parsing NYC's massive 2017 lidar dataset (almost 1TB of data) and segmenting them by building. Now you can select any of NYC's more than 1M buildings and see its point cloud.
#webgpu
Finally updated my sketches gallery to include work from the last 2 years. Many are parameterized, animated, and interactive, so the screenshots don't always do them justice.
#generative
#creativecoding
#webgl
#javascript
Figured I'd go ahead and release this little music visualization I've been working on for a bit.
Best on desktop Chrome 😬
🎵Oh, and the video has sound! 🎵
#musicvisualization
#creativecoding
Alright, now I've got every building in New York in here. That's more than 1M buildings, 35M triangles.
Next step: convert base map lat/longs to the building coord system, EPSG:2263 (or vice versa).
Then, prioritized streaming based on camera position.
NEW!! 🎉 Super happy to share a new
#dataviz
project that visualizes how Planet's satellites creates a full image of Earth's landmass in ONE day! 🌍
See how the Earth is slowly build up from each of the whopping 600,000 images taken in a single day 🛰️
Spent a few weeks working on a Rust+wgpu tool for generating per-vertex ambient occlusion values. But I'm taking a break tonight to try out some new rendering techniques. Starting here with some edge detection in the fragment shader.
#webgpu
Today we’re releasing a new bike trip data tool that shows where and when cyclists are most active in our cities to help establish safer and better bike infrastructure.
The data is available for SF, DC and Paris, with more cities coming in the future.
GPU-based culling now with
#webgpu
compute shaders. Doesn't look that different from before, but it renders much more smoothly. This is checking 52k bounding boxes on each frame.
Need to do some more profiling to see exactly where the number of bounding boxes (and draw calls)
Spent the day working on a little helper to add DOM-based text annotations to WebGL-based visualizations.
Still need to do some work to get the labels to give each other space, but I've found that constant animation makes them all separate eventually, so maybe it's okay? 🤷♂️
Now bringing the culling work back into the main project. Here's culling with the entire 1M building NYC dataset.
Using drawIndirect() already, so next step: have compute shaders do the culling and write all the draw params to a buffer before the render pass.
#webgpu
We’re excited to announce that Drifting in Space has raised funding from
@ycombinator
!
We’ll use this account to talk about what we (
@paulgb
and
@taylorbaldwin
) are building, like this post on session-lived backends and why they matter.
Combining depth-based edge detection with a new normals-based approach in a custom shader. The faces of each building are much more visible now. The plan is to tweak this a bit more over the next few days, then turn to some new experiments with adding labels.
When visualizing massive datasets, you hit the limits of WebGL. We built a way to seamlessly migrate a local visualization to a more powerful remote GPU, without leaving the browser.
Preview the docs at , and reach out if you have a use case.
More culling progress. This demo uses 300 bins and cpu-based culling. As the camera moves around, you can see which parts are actually getting rendered in the inset map in the bottom right.
#webgpu
I came out 8 years ago today, and I feel incredibly lucky to have done so at a place and a time that made it as easy as it was. I never thought I’d have the life I have today.
Realizing I'll probably need to be smarter about how I'm rendering all 1M buildings in NYC. So this is the beginning of some tests I'm doing on culling.
#webgpu
Just started playing with some SF taxi trajectory data. The traces are relatively low granularity, so there are a lot of long straight lines. But when you layer all the trajectories on top of each other, you get a pretty cool look.
A bit of personal news: today is my last day at
@datadoghq
. I've loved working on data vis with these folks for the past year and a half, and while I am sad to say goodbye, I'm excited about what's coming next. Will be sharing more very soon!
Working on an interactive visualization that combines some of the features of my previous NYC projects. This one uses WebGPU with a more detailed base map, covering more area, and hopefully with some live transit data.
So stoked we got this demo working. Pixel-streaming Blender running in the cloud.
Particularly excited about what's possible by having more graphics-intensive components of a web application pixel-streamed into the browser with other parts of the UI rendered clientside in DOM.
Trying to visualize harmony/tonality by blending colors representing the audio's predominant pitch classes. It's, uh, going just okay.
(Video has sound 🎵)
#creativecoding
#musictheory
#javascript