Sign in

David Kouřil

@dvdkouril.xyz
147 followers 81 following 67 posts

Data visualization in biology and beyond. Postdoc @ Harvard Medical School. Previously: PhD at TU Wien. davidkouril.com

PostsRepliesMedia
Reposted by David Kouřil
Kari Lavikka @karilavikka.fi · 28/07/2026
I recently added a parameterizable arrow mark to GenomeSpy, my open-source toolkit for interactive genomic data visualization, and implemented a couple of fancy examples to showcase it. (1/3)
251
Reposted by David Kouřil
Cult.Repo @cultrepo.bsky.social · 18/06/2026
Is there such a thing as the Vienna School of Agentic Coding? Find out in our latest mini-doc, featuring Mario Zechner @mariozechner.at and Armin Ronacher @mitsuhiko.at Watch it in full here: youtu.be/5mgde2Br4ik
0154
David Kouřil @dvdkouril.xyz · 13/06/2026
“But if every ambitious person treats Europe as a lost cause, then Europe becomes one. If everyone with agency leaves, the only people left to shape the system are the people most comfortable with the system as it is.”
000
Reposted by David Kouřil
Daniel Jalkut @danielpunkass.punkitup.com · 26/05/2026
My take on AI is, essentially, everybody who’s against is too against it and everybody who’s for it is too for it.
2127173
Reposted by David Kouřil
Jakob Troidl @jakobtroidl.bsky.social · 27/05/2026
📢 We're recruiting AI Scientists at HHMI Janelia. I'm biased, but these are exceptional opportunities. You'd join as an independent scientist with access to excellent computational infrastructure, some of the best biological data in the world, and a vibrant collaborative environment.
163
David Kouřil @dvdkouril.xyz · 23/04/2026
work in progress: made uchimata (github.com/hms-dbmi/uch...) into a Mosaic client, so that I can hook it up with quak (github.com/manzt/quak) for some nice brushing action
030
David Kouřil @dvdkouril.xyz · 09/04/2026
a slide from a remote talk, black screen with white text that says: "Do you need to make things? Or are you happy thinking about them?"
100
David Kouřil @dvdkouril.xyz · 04/04/2026
If you've ever been confused about what's the difference between multiple coordinated views, linked views, brushing and linking....you're not alone, there's two of us! I wrote up my notes from researching the terminology around this key visualization concept.
vismarginalia.leaflet.pub
What should we actually call linked views in data visualization? - Marginal notes on visualization
130
David Kouřil @dvdkouril.xyz · 29/03/2026
this is what peak productivity in 2026 looks like.
sourdough bread straight from the ovensourdough cinnamon roll focaccia
020
Reposted by David Kouřil
trevor manz @manzt.sh · 25/03/2026
Introducing quiver: a (type-safe) place to keep your arrows @arrow.apache.org quiver is a small schema library for Arrow, built on @idl.uw.edu flechette - Define table schemas in TS - Validate schemas at IPC parse time - Get back fully typed Tables (no type-casting) github.com/manzt/quiver
Code snippet showing quiver's API: import quiver, define a table schema with int32, nullable utf8, and float64 columns, then call parseIPC on bytes. Accessing row values returns fully typed results — name is string | null, score is number.
151
David Kouřil @dvdkouril.xyz · 13/03/2026
my wife **really** wants one of these trader joe’s tote bags. that’s what vibe coding is for.
screenshot of a website that summarizes web search results to see whether trader joe’s tote bags are out in stores or not
010
David Kouřil @dvdkouril.xyz · 12/03/2026
it’s a start
100
David Kouřil @dvdkouril.xyz · 08/03/2026
Released an initial version of scattered (github.com/dvdkouril/sc...), a 3D scatterplot library for the web and computational notebooks. Core ideas: - webgpu-based rendering - arrow/dataframe as input - minimal dependencies and small bundle size - available as a JS package and a Python widget
github.com
GitHub - dvdkouril/scattered: 3D scatterplots in notebooks and on web
3D scatterplots in notebooks and on web. Contribute to dvdkouril/scattered development by creating an account on GitHub.
040
David Kouřil @dvdkouril.xyz · 27/02/2026
playing around with umap-js today.
031
David Kouřil @dvdkouril.xyz · 24/02/2026
A nice use case for Claude Code in my work: reviving old research prototypes. When it comes to surveying interactive features of past tools, we often have to rely on static figures and descriptions in text. Sometimes there’s a video. That can be pretty limiting.
A screenshot of a paper figure with caption. Highlighted text in the caption reads "Pink arrowheads indicate the 2D to 3D mapping of the highlighted region in Hi-C heat map on the 3D model. The green arrowhead indicats the 2D to 1D mapping of the selected region in 1D yeast genome (shown in orange for the recently selected region). Each selected region will be mapped to an individual 1D genome."
111
David Kouřil @dvdkouril.xyz · 23/02/2026
we’ve got some selections going!
020
David Kouřil @dvdkouril.xyz · 22/02/2026
revisiting my webgpu-based 3D scatterplot library after a year.
030
David Kouřil @dvdkouril.xyz · 18/02/2026
Just so you know: if you delete your twitter/x account, it will come back up at some point, and show that it’s been active from an arbitrary, impossible date. Reporting impersonation is also useless.
A screenshot of my previous twitter profile (@dvdkouril). Highlighted are two dates: one showing 'Joined January 2015' and the most recent repost of a post dated October 13, 2023.A screenshot of a fake profile using the same handle (@dvdkouril). Highlighted is: 'Joined April 2020'A screenshot of email conversation with X Support, showing that I reported Impersonation on this account. All the options are irrelevant as they are concerned with restoring my account.
100
David Kouřil @dvdkouril.xyz · 08/02/2026
TIL that Advent of Code was invented in Salem, Massachusetts www.youtube.com/watch?v=uZ8D...
youtube.com
Keynote: Advent of Code, Behind the Scenes - Eric Wastl
YouTube video by CppNorth
100
David Kouřil @dvdkouril.xyz · 08/02/2026
i can’t be the only one who procrastinates on work by making tools for tracking and visualizing work
011
David Kouřil @dvdkouril.xyz · 31/01/2026
photo of an ebook, with the following text highlighted: It is well known that the majority of the cost of software is not in its initial development, but in its ongoing maintenance.
020
David Kouřil @dvdkouril.xyz · 26/01/2026
haven’t seen that much snow in a while!
a snowed in carlarger street covered in snow, a snow plowing truck approaching an intersection a person knee deep in snow
010
David Kouřil @dvdkouril.xyz · 05/01/2026
Made a little visualization of my workouts from last year.
a calendar view of 2025, divided by months. each day is color coded based on exercise type or gray which means no exercising that day
010
David Kouřil @dvdkouril.xyz · 18/12/2025
hello, marimo
010
Reposted by David Kouřil
John Alexis Guerra Gomez @johnguerra.bsky.social · 02/11/2025
My #IEEEVIS 2025 paper explorer is live! 🎉 👉 johnguerra.co/viz/ieeevis2... 👈 An interactive #dataviz to explore 300+ papers by similarity. Perfect for: ✨ Discovering papers related to your interests ✨ Planning which sessions to attend ✨ Creating your own paper list (new!) Pls help me distribute it
13110
Reposted by David Kouřil
Jon Bois @jonbois.bsky.social · 15/10/2025
after spending all year behind the paywall, part 1 of my documentary series FOOL TIME is now unlocked and free to watch for everybody: www.patreon.com/posts/fool-t...
patreon.com
FOOL TIME, Part 1 of 4 | Pretty Good | Secret Base
Get more from Secret Base on Patreon
8708128
Reposted by David Kouřil
trevor manz @manzt.sh · 07/08/2025
if interested in creating anywidgets of your own, our tutorial was finally shared to youtube: www.youtube.com/watch?v=frEo...
youtube.com
Abdennur, Lekschas, & Manz - Bring your __repr__’s to life with anywidget | SciPy 2024
YouTube video by SciPy
273
David Kouřil @dvdkouril.xyz · 25/07/2025
I have been playing with filtering of 3D structures (represented as Arrow tables) via duckdb-wasm… It’s been going pretty well!
030
David Kouřil @dvdkouril.xyz · 13/06/2025
not completely done reading it yet, but this is definitely one of my favorite survey papers: onlinelibrary.wiley.com/doi/10.1111/... interactive browser: uclab.fh-potsdam.de/unfoldables/ @uclab.bsky.social
020
David Kouřil @dvdkouril.xyz · 23/05/2025
totally unrelated to anything happening these days, but I now have a CV on my webpage: davidkouril.com/cv
screenshot of a browser window showing an online CV
040
David Kouřil @dvdkouril.xyz · 18/05/2025
“boy do I have some bad news for you…this is gonna be a pie chart” reproduced this beauty from @jonbois.bsky.social
a…3D pie chart
110
Reposted by David Kouřil
Steve Klabnik @steveklabnik.com · 22/04/2025
IMHO, make this the default, github: github.com/ghostty-org/...
github.com
Why users cannot create Issues directly · Issue #3558 · ghostty-org/ghostty
Users are not allowed to create Issues directly in this repository - we ask that you create a Discussion first. Unlike some other projects, Ghostty does not use the issue tracker for discussion or ...
1719028
David Kouřil @dvdkouril.xyz · 05/04/2025
watch out, trevor’s about to drop some knowledge, now in a blog form
020
Reposted by David Kouřil
trevor manz @manzt.sh · 01/04/2025
i explored +130k artworks from the National Gallery of Art with polars, observableplot, anywidget, react... turns out there’s some neat public works history hiding in there. maybe you’ll find an (CC0!) upgrade for that default OS wallpaper 🙃
1215
Reposted by David Kouřil
trevor manz @manzt.sh · 11/03/2025
one of the first things I add to any ts project now is an `assert` utility: manzt.sh/assert.js type assertions (`foo as string`) blindly tell the type checker you know more than it does. `assert` is a real runtime check with the same narrowing effect. you'll thank me later when debugging!
A TypeScript example comparing type assertions vs. runtime assertions. The first approach (value as number) blindly tells the type checker that value is a number, risking runtime errors if it's null. The second approach uses an assert function to enforce the check at runtime, ensuring value is actually a number before proceeding.
072
David Kouřil @dvdkouril.xyz · 10/02/2025
this is pretty much as good as computer graphics gets. #webgpu
120
Reposted by David Kouřil
Nezar Abdennur @nvictus.bsky.social · 06/02/2025
A belated ode to 2024! lifeinbytes.substack.com/p/year-in-re...
lifeinbytes.substack.com
Year in Review
Code and composition in 2024
051
Reposted by David Kouřil
Deno @deno.land · 04/02/2025
Oracle justified its JavaScript trademark by claiming Node.js — now it wants that ignored #FreeJavaScript deno.com/blog/deno-v-...
deno.com
Oracle justified its JavaScript trademark with Node.js—now it wants that ignored
Oracle filed a motion to dismiss in response to Deno’s petition to cancel its “JavaScript” trademark. But instead of addressing the real issue—that JavaScript is an open standard with multiple indepen...
16308121
David Kouřil @dvdkouril.xyz · 04/02/2025
www.youtube.com/watch?v=-d3V...
youtube.com
Skater, Artist, Icon: The Rise of Nora Vasconcellos | Let it Kill You
YouTube video by VICE
000
Reposted by David Kouřil
Mark @mkeller7.bsky.social · 29/01/2025
We systematically analyzed the visualizations used in 1,846 subfigures from 45 human single-cell atlas publications in a survey on The State of Single-Cell Atlas Data Visualization in the Biological Literature. 📝: osf.io/preprints/os... 🔍: keller-mark.github.io/sc-star-site/
144
David Kouřil @dvdkouril.xyz · 23/01/2025
some children books are very relatable
drawing of a child face-planted on the ground with a bubble saying “no”
000
David Kouřil @dvdkouril.xyz · 15/01/2025
recorded a video about anywidget :) touches on how to develop in the early prototyping stage, when both the JS and Python parts change often www.youtube.com/watch?v=yL1k... @manzt.sh
youtube.com
anywidget setup: developing both the library and the widget
YouTube video by David Kouřil
030
Reposted by David Kouřil
trevor manz @manzt.sh · 15/01/2025
Released juv v0.3.0! 🎉 Brings uv's locking for standalone scripts to Jupyter notebooks. Lockfiles are embedded directly in metadata for self-contained, reproducible notebooks. - `juv lock` generates a lockfile - `juv tree` shows dependencies - `juv export` outputs pip-compatible format
printing out a lockfile in the terminal for a Jupyter notebook. Terminal command: cat Untitled.ipynb | jq -r '.metadata["uv.lock"]' | bat -l toml`juv tree` example printing the dependency tree for a notebook`juv export` command showing a pip-compatible lockfile for the notebook
1226
David Kouřil @dvdkouril.xyz · 07/01/2025
i’ve been working on rendering many (16+) scenes with threejs in a single page. the performance is…suboptimal.
100
David Kouřil @dvdkouril.xyz · 27/12/2024
two people (and adult and a toddler) looking from a pier into the oceanocean view with a boatdetail of small ocean waves
000
David Kouřil @dvdkouril.xyz · 15/12/2024
just got back from the 4D Nucleome annual meeting. always fun to be the one poster with fancy images but zero biological novelty (compared to the rest). folks couldn’t have been nicer and more welcoming though!
a man waiting for an elevator, taking a photo in a mirror with square parts in a way that covers his eyesview of a lecture hall from a single seat, on the table there are some snacks, coffee, and an eink tableta man in front of a scientific posterview from the airport, looks over an airplane behind prepared for boarding
010
David Kouřil @dvdkouril.xyz · 08/12/2024
making something physical really forces you to appreciate how easy we have it in the software world, with all the undos and things.
010
David Kouřil @dvdkouril.xyz · 27/11/2024
a surprisingly useful tool for paper reading, especially to quickly skim through a large number of publications! 8bitdo micro
hand holding a small bluetooth game controller
210
Reposted by David Kouřil
zach lieberman @zachlieberman.bsky.social · 26/11/2024
31036
David Kouřil @dvdkouril.xyz · 23/11/2024
i’ll start posting about work soon i promise
boston view from harvard bridge at sunsetboston view from harvard bridge at sunset, there are some boats thereboston view from harvard bridge again, this time rainy
020