Psychedelic Graphics 0: Introduction
Articles, projects, podcast by Ulysse Pence
Articles, projects, podcast by Ulysse Pence
Only the engineers who work on a large software system can meaningfully participate in the design process. That’s because you cannot do good software design…
Designer, builder, and visual storyteller. Now building Huxe. Previously led design on NotebookLM and contributed to Google AI projects like Gemini and Search. Also shoot photo/video for brands like Coachella, GoPro, and Rivian.
One of the weirdest “debates” I seem to perpetually have with framework-enthusiastic developers is whether or not a <div> is “just as good” as a <button>. Spoiler: it’s not. Let’s dig in. The problem Among the React crowd, and also among people who seem to enjoy HTMX, I see a lot this… <div onclick="showSignIn()">…
A less romantic truth is that aesthetic standards rarely travel alone; power tends to follow in their wake. An episode at the U.S. State Department this month makes exactly this point.
Conversational interfaces are a bit of a meme. Every couple of years a shiny new AI development emerges and people in tech go "This is it! The next computing paradigm is here! We'll only use natural language going forward!". But then nothing actually changes and we continue using computers the way w
How to build realtime blurs on the GPU and how the best blur algorithm works - "Dual Kawase"
A discussion on why forcing dark mode on users can lead to poor user experience, the impact of high contrast ratios on readability, and the need for better guidelines in dark mode design.
Supercharging Slack’s Reaction Icons
The “linear()” timing function is a game-changer; it allows us to model physics-based motion right in vanilla CSS! That said, there are some limitations and quirks to be aware of. I’ve been experimenting with this API for a while now, and in this post, I’ll share all of the tips and tricks I’ve learned for using it…
Discover the wild world of Ghanaian and Nigerian hand-painted movie posters. Created by local artists in the 1980s and 1990s, these bold, surreal artworks turned Hollywood films into folk art masterpieces that are so bad they’re brilliant.
In which we answer every question you've ever had about digital color, and some you haven't.
A common source of confusion that I experience when posting my artwork on social media is: _why?_ Why use a plotter when you could use a printer? It's slower. Less exact. More expensive. It fails, far too often. Inkjet printers became ubiquitous in the 1980s because they solved nearly all of these problems. So why are…
Recently, I modified anthes.is to use my own subsetted versions of Atkinson Hyperlegible Next and Atkinson Hyperlegible Mono. Following the principle of eating your own dog food , I also switched to Atkinson Hyperlegible Mono in my terminal. After a month of daily use, I can now assess this font’s practical advantages…
Design greatness is defined not by fame or recognition, but by how invisibly and effectively it serves human needs.
Documenting the evolution of macOS system icons over the past several decades.
Upon reflection, Myst has long been more analogous to a graph than a traditional linear game, owing to the relative freedom it affords players. This is…
A while back I attended a Cloudflare board meeting and carried my laptop in a brown paper bag from a grocery store. This elicited a few com...
These relatively small changes make HTML significantly more expressive, enabling far more web applications to be built with pure hypertext.
Or Why I Think Lean Software Development is Wrong
Why Icons Alone Aren't Enough.
The Adventures of Tintin officially entered the public domain in 2025. We now all own the alluring aesthetics of this timeless classic.
A website for old Macintosh themes and some background.
There's a small house in the moddle of IBM's Code Page 437. Why?
One of the simplest and best-known computing devices on the planet is a fascinating study in interface design.
Going “full CSS Zen Garden” with modern CSS.
The Nuberodesign Blog
When I first started using Claude Code, I had a naive approach to working with it. I would describe the task directly in the prompt, press Enter, and cross my fingers. If the agent made mistakes, I would tell it how to fix them. For small tasks, this can be good enough, but as the task grows in complexity, this…
An introduction to writing WebGL shaders using gradient noise and cool math.
Through her India Street Lettering project, Pooja Saxena re-examines the craft and its clichés.